Allow grinding things besides wheat seeds on cottages:handmill

pull/14/head
Brandon 2015-07-25 14:35:30 -05:00
parent fab18119f7
commit 274f8eaad7
7 changed files with 31 additions and 61 deletions

View File

@ -245,7 +245,7 @@ minetest.register_node("cottages:threshing_floor", {
minetest.register_node("cottages:handmill", {
drawtype = "nodebox",
description = S("mill, powered by punching"),
description = S("Mill, powered by punching"),
tiles = {"default_stone.png"},
paramtype = "light",
paramtype2 = "facedir",
@ -297,15 +297,14 @@ minetest.register_node("cottages:handmill", {
meta:set_string("infotext", S("Mill, powered by punching (owned by %s)"):format(meta:get_string("owner") or ""));
meta:set_string("formspec",
"size[8,8]"..
"image[0,1;1,1;farming_wheat_seed.png]"..
"list[current_name;seeds;1,1;1,1;]"..
"list[current_name;flour;5,1;2,2;]"..
"label[0,0.5;"..S("Wheat seeds:").."]"..
"label[4,0.5;"..S("Flour:").."]"..
"label[0,-0.5;"..S("Mill").."]"..
"label[2.5,-0.5;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]"..
"label[0,0.5;"..S("Grind This:").."]"..
"label[4,0.5;"..S("Ground Object:").."]"..
"label[0,0.15;"..S("Mill").."]"..
"label[2.5,0.15;"..S("Owner: %s"):format(meta:get_string('owner') or "").."]"..
"label[0,2.5;"..S("Punch this hand-driven mill").."]"..
"label[0,3.0;"..S("to convert wheat seeds into flour.").."]"..
"label[0,3.0;"..S("to grind various items.").."]"..
"list[current_player;main;0,4;8,4;]");
end,
@ -335,14 +334,8 @@ minetest.register_node("cottages:handmill", {
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
local meta = minetest.get_meta(pos)
-- only accept input the threshing floor can use/process
if( listname=='flour'
or (listname=='seeds' and stack and stack:get_name() ~= 'farming:seed_wheat' )) then
return 0;
end
if( player and player:get_player_name() ~= meta:get_string('owner' )) then
return 0
if( player and player:get_player_name() ~= meta:get_string('owner' )) then
return 0
end
return stack:get_count()
end,
@ -369,33 +362,26 @@ minetest.register_node("cottages:handmill", {
local input = inv:get_list('seeds');
local stack1 = inv:get_stack( 'seeds', 1);
if( ( stack1:is_empty())
or( not( stack1:is_empty()) and stack1:get_name() ~= 'farming:seed_wheat')) then
if( ( stack1:is_empty()) or( not( stack1:is_empty()) and stack1:get_definition().ground == nil )) then
if not( stack1:is_empty() ) then
minetest.chat_send_player(name,"Nothing happens...")
end
return;
end
-- turning the mill is a slow process; 1-21 flour are generated per turn
local anz = 1 + math.random( 0, 20 );
-- we already made sure there is only wheat inside
local anz = 1 + math.random( 0, 3 );
local found = stack1:get_count();
-- do not process more wheat than present in the input slots
if( found < anz ) then
anz = found;
end
if( inv:room_for_item('flour',stack1:get_definition().ground.." "..tostring(anz))) then
inv:add_item("flour", stack1:get_definition().ground.." "..tostring(anz) );
inv:remove_item("seeds", stack1:get_name());
if( inv:room_for_item('flour','farming:flour '..tostring( anz ))) then
inv:add_item("flour",'farming:flour '..tostring( anz ));
inv:remove_item("seeds", 'farming:seed_wheat '..tostring( anz ));
local anz_left = found - anz;
local anz_left = found - 1;
if( anz_left > 0 ) then
minetest.chat_send_player( name, S('You have grinded %s wheat seeds (%s are left).'):format(anz,anz_left));
minetest.chat_send_player( name, S('You have ground a %s (%s are left).'):format(stack1:get_definition().description,(anz_left)));
else
minetest.chat_send_player( name, S('You have grinded the last %s wheat seeds.'):format(anz));
minetest.chat_send_player( name, S('You have ground the last %s.'):format(stack1:get_definition().description));
end
-- if the version of MT is recent enough, rotate the mill a bit

View File

@ -448,6 +448,7 @@ minetest.register_node("default:glass", {
is_ground_content = false,
groups = {cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(),
ground = "vessels:glass_fragments",
})
minetest.register_node("default:fence_wood", {

View File

@ -324,6 +324,7 @@ minetest.register_craftitem("farming:seed_wheat", {
on_place = function(itemstack, placer, pointed_thing)
return place_seed(itemstack, placer, pointed_thing, "farming:wheat_1")
end,
ground = "farming:flour",
})
minetest.register_craftitem("farming:wheat", {

View File

@ -140,4 +140,4 @@ function come_to(name)
end
mobs:register_spawn("mobs:jungle_spider", {"default:jungleleaves", "default:junglegrass"}, 22, -1, 5000, 4, 31000)
mobs:register_spawn("mobs:jungle_spider", {"default:jungleleaves", "default:junglegrass"}, 7, -1, 2000, 6, 31000)
mobs:register_spawn("mobs:jungle_spider", {"default:jungleleaves", "default:junglegrass"}, 10, -1, 2000, 6, 31000)

View File

@ -1,4 +1,6 @@
affects
bushes?
flowers?
bones?

View File

@ -129,8 +129,6 @@ local ground_items = {
{ "flowers:geranium", "ground_geranium", "Ground Geranium" },
{ "flowers:tulip", "ground_tulip", "Ground Tulip" },
{ "flowers:viola", "ground_viola", "Ground Viola" },
{ "flowers:seaweed", "ground_seaweed", "Ground Seaweed" },
{ "flowers:waterlily", "ground_waterlily", "Ground Waterlily" },
{ "bones:bones","ground_bones","Ground Bones" },
{ "flowers:magic", "ground_magic","Ground Magic Flower"}
}
@ -142,11 +140,15 @@ for _, data in pairs(ground_items) do
liquids_pointable = false,
inventory_image = "potions_"..data[2]..".png"
})
local gitem = "potions:"..data[2]
minetest.register_craft({
type="shapeless",
output="potions:"..data[2].." 2",
output=gitem,
recipe = {data[1]}
})
minetest.override_item(data[1], {
ground = gitem
})
end
minetest.register_craft({

View File

@ -15,6 +15,7 @@ minetest.register_node("vessels:glass_bottle", {
},
groups = {vessel=1,dig_immediate=3,attached_node=1},
sounds = default.node_sound_glass_defaults(),
ground = "vessels:glass_fragments",
})
minetest.register_craft( {
@ -40,6 +41,7 @@ minetest.register_node("vessels:drinking_glass", {
},
groups = {vessel=1,dig_immediate=3,attached_node=1},
sounds = default.node_sound_glass_defaults(),
ground = "vessels:glass_fragments",
})
minetest.register_craft( {
@ -84,30 +86,6 @@ minetest.register_craftitem("vessels:glass_fragments", {
inventory_image = "vessels_glass_fragments.png",
})
minetest.register_craft( {
type = "shapeless",
output = "vessels:glass_fragments",
recipe = {
"vessels:glass_bottle",
"vessels:glass_bottle",
},
})
minetest.register_craft( {
type = "shapeless",
output = "vessels:glass_fragments",
recipe = {
"vessels:drinking_glass",
"vessels:drinking_glass",
},
})
minetest.register_craft({
type = "cooking",
output = "default:glass",
recipe = "vessels:glass_fragments",
})
minetest.register_craft( {
type = "cooking",
output = "default:steel_ingot",