123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- -- contains hay_mat, hay and hay bale
- -- (gives the pitchfork some work)
- --
- local S = cottages.S
- -- If default:dirt_with_grass is digged while wielding a pitchfork, it will
- -- turn into dirt and get some hay placed above it.
- -- The hay will disappear (decay) after a couple of minutes.
- if( minetest.registered_items["default:dirt_with_grass"]
- and minetest.registered_tools["cottages:pitchfork"]) then
- minetest.override_item("default:dirt_with_grass", {
- after_dig_node = function(pos, oldnode, oldmetadata, digger)
- if( not( pos ) or not( digger )) then
- return
- end
- local wielded = digger:get_wielded_item()
- if( not( wielded )
- or not( wielded:get_name() )
- or (wielded:get_name()~="cottages:pitchfork")) then
- return
- end
- local pos_above = {x=pos.x, y=pos.y+1, z=pos.z}
- local node_above = minetest.get_node_or_nil( pos_above)
- if( not(node_above) or not(node_above.name) or node_above.name ~= "air" ) then
- return nil
- end
- minetest.swap_node( pos, {name="default:dirt"})
- minetest.add_node( pos_above, {name="cottages:hay_mat", param2=math.random(2,25)})
- -- start a node timer so that the hay will decay after some time
- local timer = minetest.get_node_timer(pos_above)
- if not timer:is_started() then
- timer:start(math.random(60, 300))
- end
- -- TODO: prevent dirt from beeing multiplied this way (that is: give no dirt!)
- return
- end,
- })
- end
- -- more comparable to the straw mat than to a hay bale
- -- (can be created by digging dirt with grass with the pitchfork)
- minetest.register_node("cottages:hay_mat", {
- drawtype = "nodebox",
- paramtype2 = "leveled",
- description = S("Some hay"),
- tiles = {cottages.straw_texture.."^[multiply:#88BB88"},
- groups = {hay=3, snappy=2, oddly_breakable_by_hand=2, flammable=3},
- sounds = cottages.sounds.leaves,
- -- the bale is slightly smaller than a full node
- is_ground_content = false,
- node_box = {
- type = "leveled", --"fixed",
- fixed = {
- {-0.5,-0.5,-0.5, 0.5, 0.5, 0.5},
- }
- },
- -- make sure a placed hay block looks halfway reasonable
- after_place_node = function(pos, placer, itemstack, pointed_thing)
- minetest.swap_node( pos, {name="cottages:hay_mat", param2=math.random(2,25)})
- end,
- on_timer = function(pos, elapsed)
- local node = minetest.get_node(pos)
- if( node and node.name=="cottages:hay_mat") then
- minetest.remove_node(pos)
- minetest.check_for_falling(pos)
- end
- end,
- })
- -- hay block, similar to straw block
- minetest.register_node("cottages:hay", {
- description = S("Hay"),
- tiles = {cottages.straw_texture.."^[multiply:#88BB88"},
- groups = {hay=3, snappy=2, oddly_breakable_by_hand=2, flammable=3},
- sounds = cottages.sounds.leaves,
- is_ground_content = false,
- })
- -- hay bales for hungry animals
- minetest.register_node("cottages:hay_bale", {
- drawtype = "nodebox",
- description = S("Hay bale"),
- tiles = {"cottages_darkage_straw_bale.png^[multiply:#88BB88"},
- paramtype = "light",
- groups = {hay=3, snappy=2, oddly_breakable_by_hand=2, flammable=3},
- sounds = cottages.sounds.leaves,
- -- the bale is slightly smaller than a full node
- node_box = {
- type = "fixed",
- fixed = {
- {-0.45, -0.5,-0.45, 0.45, 0.45, 0.45},
- }
- },
- selection_box = {
- type = "fixed",
- fixed = {
- {-0.45, -0.5,-0.45, 0.45, 0.45, 0.45},
- }
- },
- is_ground_content = false,
- })
- --
- -- craft recipes
- --
- minetest.register_craft({
- output = "cottages:hay_mat 9",
- recipe = {
- {"cottages:hay"},
- },
- })
- minetest.register_craft({
- output = "cottages:hay",
- recipe = {
- {"cottages:hay_mat", "cottages:hay_mat", "cottages:hay_mat"},
- {"cottages:hay_mat", "cottages:hay_mat", "cottages:hay_mat"},
- {"cottages:hay_mat", "cottages:hay_mat", "cottages:hay_mat"},
- },
- })
- minetest.register_craft({
- output = "cottages:hay",
- recipe = {{"cottages:hay_bale"}},
- })
- minetest.register_craft({
- output = "cottages:hay_bale",
- recipe = {{"cottages:hay"}},
- })
|