Allow grinding things besides wheat seeds on cottages:handmill
parent
fab18119f7
commit
274f8eaad7
|
@ -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
|
||||
|
|
|
@ -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", {
|
||||
|
|
|
@ -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", {
|
||||
|
|
|
@ -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)
|
|
@ -1,4 +1,6 @@
|
|||
affects
|
||||
bushes?
|
||||
flowers?
|
||||
bones?
|
||||
|
||||
|
||||
|
|
|
@ -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({
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue