From 074a5069aa6e59c9391c0c27592d014157e0224b Mon Sep 17 00:00:00 2001 From: orwell Date: Sat, 14 Oct 2023 19:41:34 +0200 Subject: Add chicken kebab; add vegetables to doener craft recipe --- init.lua | 258 ++++++++++++++++++++++----------------- textures/kebab_chickendoener.png | Bin 0 -> 4496 bytes textures/kebab_chickenkebab.png | Bin 0 -> 4827 bytes textures/kebab_chickenmeat.png | Bin 0 -> 4872 bytes 4 files changed, 147 insertions(+), 111 deletions(-) create mode 100644 textures/kebab_chickendoener.png create mode 100644 textures/kebab_chickenkebab.png create mode 100644 textures/kebab_chickenmeat.png diff --git a/init.lua b/init.lua index c1c6239..3adbdd4 100644 --- a/init.lua +++ b/init.lua @@ -14,28 +14,22 @@ -- You should have received a copy of the GNU Affero General Public License -- along with this program. If not, see . +-- Functions and definitions kebab = {} -minetest.register_craftitem("kebab:kebab_meat", { - description = "Kebab Meat", - inventory_image = "kebab_meat.png", -}) -minetest.register_craftitem("kebab:doner_kebab", { - description = "Kebab Sandwich", - inventory_image = "kebab_doener.png", - on_use = minetest.item_eat(8), -}) + kebab.cut_kebab = function (pos) - local node = minetest.get_node(pos) - number = node.name:match("%d") - if tonumber(number) > 1 then - node.name = "kebab:kebab_"..number-1 - minetest.swap_node(pos, node) - return "kebab:kebab_meat" - elseif tonumber(number) == 1 then - minetest.set_node(pos, {name="air"}) - return "kebab:kebab_meat" - end + local node = minetest.get_node(pos) + local ndef = minetest.registered_nodes[node.name] + if not ndef then return nil end + if ndef.kebab_next_stage then + node.name = ndef.kebab_next_stage + minetest.swap_node(pos, node) + end + if ndef.kebab_cut_meat then + return ndef.kebab_cut_meat + end + return nil end local function player_cut_kebab(pos, node, player) @@ -45,105 +39,116 @@ local function player_cut_kebab(pos, node, player) end +function kebab.register_kebab_rotisserie(node_name, description, texture, cut_meat_item) + minetest.register_node(node_name.."_4", { + tiles = { + texture + }, + description = description, + drawtype = "nodebox", + paramtype = "light", + groups = { kebab_rotisserie = 4 }, + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 + {-0.1875, -0.375, -0.1875, 0.1875, 0.375, 0.1875}, -- NodeBox2 + {-0.3125, -0.0625, -0.3125, 0.3125, 0.375, 0.3125}, -- NodeBox3 + {-0.25, -0.25, -0.25, 0.25, 0.375, 0.25}, -- NodeBox4 + } + }, + on_punch = player_cut_kebab, + kebab_cut_meat = cut_meat_item, + kebab_next_stage = node_name.."_3" + }) + minetest.register_node(node_name.."_3", { + tiles = { + texture + }, + description = description, + drawtype = "nodebox", + paramtype = "light", + groups = { kebab_rotisserie = 3 }, + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 + {-0.1875, -0.375, -0.1875, 0.1875, 0.375, 0.1875}, -- NodeBox2 + -- {-0.3125, -0.0625, -0.3125, 0.3125, 0.375, 0.3125}, -- NodeBox3 + {-0.25, -0.25, -0.25, 0.25, 0.375, 0.25}, -- NodeBox4 + } + }, + on_punch = player_cut_kebab, + kebab_cut_meat = cut_meat_item, + kebab_next_stage = node_name.."_2" + }) + minetest.register_node(node_name.."_2", { + tiles = { + texture + }, + description = description, + drawtype = "nodebox", + paramtype = "light", + groups = { kebab_rotisserie = 2 }, + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 + {-0.1875, -0.25, -0.1875, 0.1875, 0.375, 0.1875}, -- NodeBox2 + {-0.125, -0.375, -0.125, 0.125, 0.375, 0.125}, -- NodeBox2 + -- {-0.3125, -0.0625, -0.3125, 0.3125, 0.375, 0.3125}, -- NodeBox3 + -- {-0.25, -0.25, -0.25, 0.25, 0.375, 0.25}, -- NodeBox4 + } + }, + on_punch = player_cut_kebab, + kebab_cut_meat = cut_meat_item, + kebab_next_stage = node_name.."_1" + }) + minetest.register_node(node_name.."_1", { + tiles = { + texture + }, + description = description, + drawtype = "nodebox", + paramtype = "light", + groups = { kebab_rotisserie = 1 }, + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 + {-0.125, -0.375, -0.125, 0.125, 0.375, 0.125}, -- NodeBox2 + -- {-0.3125, -0.0625, -0.3125, 0.3125, 0.375, 0.3125}, -- NodeBox3 + -- {-0.25, -0.25, -0.25, 0.25, 0.375, 0.25}, -- NodeBox4 + } + }, + on_punch = player_cut_kebab, + kebab_cut_meat = cut_meat_item, + kebab_next_stage = "air" + }) +end -minetest.register_node("kebab:kebab_4", { - tiles = { - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png" - }, - description = "Kebab rotisserie", - drawtype = "nodebox", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 - {-0.1875, -0.375, -0.1875, 0.1875, 0.375, 0.1875}, -- NodeBox2 - {-0.3125, -0.0625, -0.3125, 0.3125, 0.375, 0.3125}, -- NodeBox3 - {-0.25, -0.25, -0.25, 0.25, 0.375, 0.25}, -- NodeBox4 - } - }, - on_punch = player_cut_kebab, -}) -minetest.register_node("kebab:kebab_3", { - tiles = { - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png" - }, - drawtype = "nodebox", - description = "Kebab rotisserie", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 - {-0.1875, -0.375, -0.1875, 0.1875, 0.375, 0.1875}, -- NodeBox2 --- {-0.3125, -0.0625, -0.3125, 0.3125, 0.375, 0.3125}, -- NodeBox3 - {-0.25, -0.25, -0.25, 0.25, 0.375, 0.25}, -- NodeBox4 - } - }, - on_punch = player_cut_kebab, -}) -minetest.register_node("kebab:kebab_2", { - tiles = { - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png" - }, - drawtype = "nodebox", - paramtype = "light", - description = "Kebab rotisserie", - node_box = { - type = "fixed", - fixed = { - {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 - {-0.1875, -0.25, -0.1875, 0.1875, 0.375, 0.1875}, -- NodeBox2 - {-0.125, -0.375, -0.125, 0.125, 0.375, 0.125}, -- NodeBox2 --- {-0.3125, -0.0625, -0.3125, 0.3125, 0.375, 0.3125}, -- NodeBox3 --- {-0.25, -0.25, -0.25, 0.25, 0.375, 0.25}, -- NodeBox4 - } - }, - on_punch = player_cut_kebab, +-- Items + +-- Regular Kebab meat + +kebab.register_kebab_rotisserie("kebab:kebab", "Kebab rotisserie", "kebab_kebab.png", "kebab:kebab_meat") + +minetest.register_craftitem("kebab:kebab_meat", { + description = "Kebab Meat", + inventory_image = "kebab_meat.png", }) -minetest.register_node("kebab:kebab_1", { - tiles = { - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png", - "kebab_kebab.png" - }, - drawtype = "nodebox", - description = "Kebab rotisserie", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, -- NodeBox1 - {-0.125, -0.375, -0.125, 0.125, 0.375, 0.125}, -- NodeBox2 --- {-0.3125, -0.0625, -0.3125, 0.3125, 0.375, 0.3125}, -- NodeBox3 --- {-0.25, -0.25, -0.25, 0.25, 0.375, 0.25}, -- NodeBox4 - } - }, - on_punch = player_cut_kebab, + +minetest.register_craftitem("kebab:doner_kebab", { + description = "Doener Kebab Sandwich", + inventory_image = "kebab_doener.png", + on_use = minetest.item_eat(8), }) minetest.register_craft({ output = "kebab:doner_kebab", type = "shapeless", - recipe = {"kebab:kebab_meat", "farming:bread"} + recipe = {"kebab:kebab_meat", "farming:bread", + "farming:tomato", "farming:cucumber", "group:food_onion", "farming:lettuce"} }) minetest.register_craft({ @@ -153,3 +158,34 @@ minetest.register_craft({ {"", "default:stick", ""}} }) + + +-- Chicken Kebab + +kebab.register_kebab_rotisserie("kebab:chickenkebab", "Chicken Kebab rotisserie", "kebab_chickenkebab.png", "kebab:chickenkebab_meat") + +minetest.register_craftitem("kebab:chickenkebab_meat", { + description = "Chicken Kebab Meat", + inventory_image = "kebab_chickenmeat.png", +}) + +minetest.register_craftitem("kebab:chicken_doner_kebab", { + description = "Chicken Doener Kebab Sandwich", + inventory_image = "kebab_doener.png", + on_use = minetest.item_eat(8), +}) + +minetest.register_craft({ + output = "kebab:chicken_doner_kebab", + type = "shapeless", + recipe = {"kebab:chickenkebab_meat", "farming:bread", + "farming:tomato", "farming:cucumber", "group:food_onion", "farming:lettuce"} + +}) +minetest.register_craft({ + output = "kebab:chickenkebab_4", + recipe = {{"", "default:stick", ""}, + {"", "mobs:chicken_cooked", ""}, + {"", "default:stick", ""}} + +}) diff --git a/textures/kebab_chickendoener.png b/textures/kebab_chickendoener.png new file mode 100644 index 0000000..451e795 Binary files /dev/null and b/textures/kebab_chickendoener.png differ diff --git a/textures/kebab_chickenkebab.png b/textures/kebab_chickenkebab.png new file mode 100644 index 0000000..7d16274 Binary files /dev/null and b/textures/kebab_chickenkebab.png differ diff --git a/textures/kebab_chickenmeat.png b/textures/kebab_chickenmeat.png new file mode 100644 index 0000000..d23686a Binary files /dev/null and b/textures/kebab_chickenmeat.png differ -- cgit v1.2.3