check for old wheat/cotton seeds and grow to stage_1 via abm

This commit is contained in:
tenplus1 2023-04-07 14:41:51 +01:00
parent 02cf5688fa
commit b5f71d8025
5 changed files with 58 additions and 39 deletions

View File

@ -8,15 +8,16 @@ minetest.register_node("farming:seed_barley", {
inventory_image = "farming_barley_seed.png",
wield_image = "farming_barley_seed.png",
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1},
groups = {seed = 1, snappy = 3, attached_node = 1, growing = 1},
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
next_plant = "farming:barley_1",
selection_box = farming.select,
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:barley_1")
end
-- on_place = function(itemstack, placer, pointed_thing)
-- return farming.place_seed(itemstack, placer, pointed_thing, "farming:barley_1")
-- end
})
-- harvested barley

View File

@ -34,15 +34,16 @@ minetest.register_node("farming:seed_cotton", {
inventory_image = "farming_cotton_seed.png",
wield_image = "farming_cotton_seed.png",
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4},
groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4, growing = 1},
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:cotton_1")
end
next_plant = "farming:cotton_1",
-- on_place = function(itemstack, placer, pointed_thing)
-- return farming.place_seed(itemstack, placer, pointed_thing, "farming:cotton_1")
-- end
})
-- cotton

View File

@ -8,15 +8,16 @@ minetest.register_node("farming:seed_hemp", {
inventory_image = "farming_hemp_seed.png",
wield_image = "farming_hemp_seed.png",
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1},
groups = {seed = 1, snappy = 3, attached_node = 1, growing = 1},
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:hemp_1")
end
next_plant = "farming:hemp_1",
-- on_place = function(itemstack, placer, pointed_thing)
-- return farming.place_seed(itemstack, placer, pointed_thing, "farming:hemp_1")
-- end
})
-- harvested hemp

View File

@ -8,15 +8,16 @@ minetest.register_node("farming:seed_wheat", {
inventory_image = "farming_wheat_seed.png",
wield_image = "farming_wheat_seed.png",
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4},
groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 4, growing = 1},
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:wheat_1")
end
next_plant = "farming:wheat_1",
-- on_place = function(itemstack, placer, pointed_thing)
-- return farming.place_seed(itemstack, placer, pointed_thing, "farming:wheat_1")
-- end
})
-- harvested wheat

View File

@ -7,7 +7,7 @@
farming = {
mod = "redo",
version = "20230122",
version = "20230407",
path = minetest.get_modpath("farming"),
select = {
type = "fixed",
@ -198,30 +198,30 @@ local function reg_plant_stages(plant_name, stage, force_last)
local old_constr = node_def.on_construct
local old_destr = node_def.on_destruct
minetest.override_item(node_name,
{
on_construct = function(pos)
minetest.override_item(node_name, {
if old_constr then
old_constr(pos)
end
on_construct = function(pos)
farming.handle_growth(pos)
end,
if old_constr then
old_constr(pos)
end
on_destruct = function(pos)
farming.handle_growth(pos)
end,
minetest.get_node_timer(pos):stop()
on_destruct = function(pos)
if old_destr then
old_destr(pos)
end
end,
minetest.get_node_timer(pos):stop()
on_timer = function(pos, elapsed)
return farming.plant_growth_timer(pos, elapsed, node_name)
end,
})
if old_destr then
old_destr(pos)
end
end,
on_timer = function(pos, elapsed)
return farming.plant_growth_timer(pos, elapsed, node_name)
end,
})
end
elseif force_last then
@ -313,7 +313,22 @@ minetest.register_abm({
chance = 1,
catch_up = false,
action = function(pos, node)
farming.handle_growth(pos, node)
-- check if group:growing node is a seed
local def = minetest.registered_nodes[node.name]
if def.groups and def.groups.seed then
local next_stage = def.next_plant
local p2 = def.place_param2
-- change seed to stage_1 or crop
if next_stage then
minetest.set_node(pos, {name = next_stage, param2 = p2})
end
else
farming.handle_growth(pos, node)
end
end
})
@ -542,7 +557,7 @@ farming.register_plant = function(name, def)
inventory_image = def.inventory_image,
wield_image = def.inventory_image,
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 2},
groups = {seed = 1, snappy = 3, attached_node = 1, flammable = 2, growing = 1},
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
@ -552,8 +567,8 @@ farming.register_plant = function(name, def)
next_plant = mname .. ":" .. pname .. "_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer,
pointed_thing, mname .. ":" .. pname .. "_1")
return farming.place_seed(itemstack, placer, pointed_thing,
mname .. ":" .. pname .. "_1")
end
})