--[[ Big thanks to PainterlyPack.net for allowing me to use these textures ]] local S = farming.intllib minetest.register_craftitem("farming:pumpkin_seed", { description = S("Pumpkin Seed"), inventory_image = "farming_pumpkin_seed.png", on_place = function(itemstack, placer, pointed_thing) return farming.place_seed(itemstack, placer, pointed_thing, "farming:pumpkin_1") end }) -- pumpkin minetest.register_node("farming:pumpkin", { description = S("Pumpkin"), tiles = { "farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png" }, groups = { choppy = 1, oddly_breakable_by_hand = 1, flammable = 2, plant = 1 }, drop = { items = { {items = {'farming:pumpkin_slice 9'}, rarity = 1}, } }, sounds = default.node_sound_wood_defaults(), }) -- pumpkin slice minetest.register_craftitem("farming:pumpkin_slice", { description = S("Pumpkin Slice"), inventory_image = "farming_pumpkin_slice.png", on_place = function(itemstack, placer, pointed_thing) return farming.place_seed(itemstack, placer, pointed_thing, "farming:pumpkin_1") end, on_use = minetest.item_eat(2), }) minetest.register_craft({ output = "farming:pumpkin", recipe = { {"farming:pumpkin_slice", "farming:pumpkin_slice", "farming:pumpkin_slice"}, {"farming:pumpkin_slice", "farming:pumpkin_slice", "farming:pumpkin_slice"}, {"farming:pumpkin_slice", "farming:pumpkin_slice", "farming:pumpkin_slice"}, } }) minetest.register_craft({ output = "farming:pumpkin_slice 9", recipe = { {"", "farming:pumpkin", ""}, } }) -- jack 'o lantern minetest.register_node("farming:jackolantern", { description = S("Jack 'O Lantern (punch to turn on and off)"), tiles = { "farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face_off.png" }, paramtype2 = "facedir", groups = {choppy = 1, oddly_breakable_by_hand = 1, flammable = 2}, sounds = default.node_sound_wood_defaults(), on_punch = function(pos, node, puncher) node.name = "farming:jackolantern_on" minetest.swap_node(pos, node) end, }) minetest.register_node("farming:jackolantern_on", { tiles = { "farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face_on.png" }, light_source = default.LIGHT_MAX - 1, paramtype2 = "facedir", groups = { choppy = 1, oddly_breakable_by_hand = 1, flammable = 2, not_in_creative_inventory = 1 }, sounds = default.node_sound_wood_defaults(), drop = "farming:jackolantern", on_punch = function(pos, node, puncher) node.name = "farming:jackolantern" minetest.swap_node(pos, node) end, }) minetest.register_craft({ output = "farming:jackolantern", recipe = { {"", "", ""}, {"", "default:torch", ""}, {"", "farming:pumpkin", ""}, } }) -- scarecrow local box1 = { {-1, -8, -1, 1, 8, 1}, } local box2 = { {-1, -8, -1, 1, 8, 1}, {-12, -8, -1, 12, -7, 1}, {-5, -2, -5, 5, 8, 5} } for j,list in ipairs(box1) do for i,int in ipairs(list) do list[i] = int/16 end box1[j] = list end for j,list in ipairs(box2) do for i,int in ipairs(list) do list[i] = int/16 end box2[j] = list end minetest.register_node("farming:scarecrow", { description = "Scarecrow", paramtype = "light", sunlight_propagates = true, paramtype2 = "facedir", tiles = {"farming_scarecrow_top.png", "farming_scarecrow_top.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_front.png"}, drawtype = "nodebox", node_box = { type = "fixed", fixed = box2 }, selection_box = { type = "fixed", fixed = { {-12/16, -1.5, -0.5, 12/16, 0.5, 0.5} } }, groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, after_place_node = function(pos, placer) local node = minetest.get_node(pos) local param2 = node.param2 pos.y = pos.y+1 if minetest.get_node(pos).name ~= "air" then pos.y = pos.y-1 minetest.remove_node(pos) minetest.after(0.1, function(placer) local inv = placer:get_inventory() local index = placer:get_wield_index() inv:set_stack("main", index, ItemStack("farming:scarecrow")) end, placer) return end minetest.set_node(pos, node) pos.y = pos.y-1 node.name = "farming:scarecrow_bottom" minetest.set_node(pos, node) end, after_destruct = function(pos, oldnode) pos.y = pos.y-1 if minetest.get_node(pos).name == "farming:scarecrow_bottom" then minetest.remove_node(pos) end end }) minetest.register_node("farming:scarecrow_bottom", { paramtype = "light", sunlight_propagates = true, paramtype2 = "facedir", tiles = {"default_wood.png"}, drawtype = "nodebox", node_box = { type = "fixed", fixed = box1 }, groups = {not_in_creative_inventory=1}, selection_box = { type = "fixed", fixed = { {0, 0, 0, 0, 0, 0} } } }) minetest.register_craft({ output = "farming:scarecrow", recipe = { {"", "farming:pumpkin_face", "",}, {"default:stick", "default:stick", "default:stick",}, {"", "default:stick", "",} } }) minetest.register_node("farming:scarecrow_light", { description = "Scarecrow With light", paramtype = "light", sunlight_propagates = true, paramtype2 = "facedir", light_source = LIGHT_MAX-2, tiles = {"farming_scarecrow_top.png", "farming_scarecrow_top.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_side.png", "farming_scarecrow_front_light.png"}, drawtype = "nodebox", node_box = { type = "fixed", fixed = box2 }, selection_box = { type = "fixed", fixed = { {-12/16, -1.5, -0.5, 12/16, 0.5, 0.5} } }, groups = {choppy=2, oddly_breakable_by_hand=2, flammable=2}, after_place_node = function(pos, placer) local node = minetest.get_node(pos) local param2 = node.param2 pos.y = pos.y+1 if minetest.get_node(pos).name ~= "air" then pos.y = pos.y-1 minetest.remove_node(pos) minetest.after(0.1, function(placer) local inv = placer:get_inventory() local index = placer:get_wield_index() inv:set_stack("main", index, ItemStack("farming:scarecrow_light")) end, placer) return end minetest.set_node(pos, node) pos.y = pos.y-1 node.name = "farming:scarecrow_bottom" minetest.set_node(pos, node) end, after_destruct = function(pos, oldnode) pos.y = pos.y-1 if minetest.get_node(pos).name == "farming:scarecrow_bottom" then minetest.remove_node(pos) end end }) minetest.register_craft({ output = "farming:scarecrow_light", recipe = { {"", "farming:pumpkin_face_light", "",}, {"default:stick", "default:stick", "default:stick",}, {"", "default:stick", "",} } }) -- pumpkin bread minetest.register_craftitem("farming:pumpkin_bread", { description = S("Pumpkin Bread"), inventory_image = "farming_pumpkin_bread.png", on_use = minetest.item_eat(8) }) minetest.register_craftitem("farming:pumpkin_dough", { description = S("Pumpkin Dough"), inventory_image = "farming_pumpkin_dough.png", }) minetest.register_craft({ output = "farming:pumpkin_dough", type = "shapeless", recipe = {"farming:flour", "farming:pumpkin_slice", "farming:pumpkin_slice"} }) minetest.register_craft({ type = "cooking", output = "farming:pumpkin_bread", recipe = "farming:pumpkin_dough", cooktime = 10 }) -- pumpkin definition local crop_def = { drawtype = "plantlike", tiles = {"farming_pumpkin_1.png"}, paramtype = "light", sunlight_propagates = true, waving = 1, walkable = false, buildable_to = true, drop = "", selection_box = farming.select, groups = { snappy = 3, flammable = 2, plant = 1, attached_node = 1, not_in_creative_inventory = 1, growing = 1 }, sounds = default.node_sound_leaves_defaults() } -- stage 1 minetest.register_node("farming:pumpkin_1", table.copy(crop_def)) -- stage 2 crop_def.tiles = {"farming_pumpkin_2.png"} minetest.register_node("farming:pumpkin_2", table.copy(crop_def)) -- stage 3 crop_def.tiles = {"farming_pumpkin_3.png"} minetest.register_node("farming:pumpkin_3", table.copy(crop_def)) -- stage 4 crop_def.tiles = {"farming_pumpkin_4.png"} minetest.register_node("farming:pumpkin_4", table.copy(crop_def)) -- stage 5 crop_def.tiles = {"farming_pumpkin_5.png"} minetest.register_node("farming:pumpkin_5", table.copy(crop_def)) -- stage 6 crop_def.tiles = {"farming_pumpkin_6.png"} minetest.register_node("farming:pumpkin_6", table.copy(crop_def)) -- stage 7 crop_def.tiles = {"farming_pumpkin_7.png"} minetest.register_node("farming:pumpkin_7", table.copy(crop_def)) -- stage 8 (final) crop_def.tiles = {"farming_pumpkin_8.png"} crop_def.groups.growing = 0 crop_def.drop = { items = { {items = {'farming:pumpkin_slice 9'}, rarity = 1}, {items = {'farming:pumpkin_slice 4'}, rarity = 1}, } } minetest.register_node("farming:pumpkin_8", table.copy(crop_def))