From ea9c4012d53fe85e1af839f70c601d86aba3930a Mon Sep 17 00:00:00 2001 From: Auke Kok Date: Fri, 2 Dec 2016 23:39:25 -0800 Subject: [PATCH] Farming: Change wheat into # shaped plant This changes the farming API such that any nodedef with paramtype2 and place_param2 are passed through to all the plant stages of the farming plant. This allows plants to use an alternative mesh for the plantlike drawtype, and provide a bit of graphical variation in plants. We enable this for wheat, using place_param2 = 3, which is the '#' shaped plant mesh. If you would actually be able to give yourself this plant in creative or through /give, you would also get the same '#' shape. --- mods/farming/api.lua | 15 +++++++++++++-- mods/farming/init.lua | 2 ++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/mods/farming/api.lua b/mods/farming/api.lua index 725cbc47..3ff182e9 100644 --- a/mods/farming/api.lua +++ b/mods/farming/api.lua @@ -213,7 +213,11 @@ farming.grow_plant = function(pos, elapsed) -- omitted is a check for light, we assume seeds can germinate in the dark. for _, v in pairs(def.fertility) do if minetest.get_item_group(soil_node.name, v) ~= 0 then - minetest.swap_node(pos, {name = def.next_plant}) + local placenode = {name = def.next_plant} + if def.place_param2 then + placenode.param2 = def.place_param2 + end + minetest.swap_node(pos, placenode) if minetest.registered_nodes[def.next_plant].next_plant then tick(pos) return @@ -239,7 +243,11 @@ farming.grow_plant = function(pos, elapsed) end -- grow - minetest.swap_node(pos, {name = def.next_plant}) + local placenode = {name = def.next_plant} + if def.place_param2 then + placenode.param2 = def.place_param2 + end + minetest.swap_node(pos, placenode) -- new timer needed? if minetest.registered_nodes[def.next_plant].next_plant then @@ -290,6 +298,7 @@ farming.register_plant = function(name, def) groups = g, paramtype = "light", paramtype2 = "wallmounted", + place_param2 = def.place_param2 or nil, -- this isn't actually used for placement walkable = false, sunlight_propagates = true, selection_box = { @@ -343,6 +352,8 @@ farming.register_plant = function(name, def) waving = 1, tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"}, paramtype = "light", + paramtype2 = def.paramtype2 or nil, + place_param2 = def.place_param2 or nil, walkable = false, buildable_to = true, drop = drop, diff --git a/mods/farming/init.lua b/mods/farming/init.lua index 796e9871..97dc9b4a 100644 --- a/mods/farming/init.lua +++ b/mods/farming/init.lua @@ -10,12 +10,14 @@ dofile(farming.path .. "/hoes.lua") -- WHEAT farming.register_plant("farming:wheat", { description = "Wheat seed", + paramtype2 = "meshoptions", inventory_image = "farming_wheat_seed.png", steps = 8, minlight = 13, maxlight = default.LIGHT_MAX, fertility = {"grassland"}, groups = {flammable = 4}, + place_param2 = 3, }) minetest.register_craftitem("farming:flour", { description = "Flour",