EinsDreiDreiSieben/mods/potted_farming/init.lua

187 lines
5.9 KiB
Lua

potted_farming = {}
local pf = potted_farming
pf.version = 4.2
pf.modname = minetest.get_current_modname()
pf.path = minetest.get_modpath(pf.modname)
pf.plant_settings = {}
pf.watering_can_max_uses = 5
local S
if(minetest.get_translator) then
S = minetest.get_translator(pf.modname)
else
S = function ( s ) return s end
end
pf.S = S
dofile(pf.path .. "/settings.lua")
dofile(pf.path .. "/lib.lua")
dofile(pf.path .. "/nodes.lua")
dofile(pf.path .. "/items.lua")
dofile(pf.path .. "/tools.lua")
dofile(pf.path .. "/recipes.lua")
pf.plant_list = {
-- name, wild parameters: place_on (found on)
["basil"] = { { "default:dirt_with_grass",
"default:dirt",
"ethereal:praire_dirt",
"ethereal:grove_dirt",
},},
["rosemary"] = { { "default:dirt_with_coniferous_litter",
"default:dirt_with_snow",
"ethereal:gray_dirt",
"ethereal:cold_dirt",
},},
["sage"] = { { "default:dirt_with_grass",
"default:permafrost_with_moss",
"default:permafrost_with_stones",
"ethereal:cold_dirt",
},},
["parsley"] = { { "default:dirt_with_grass",
"default:dirt_with_dry_grass",
"default:dry_dirt_with_dry_grass",
"ethereal:praire_dirt",
},},
["mint"] = { { "default:dirt_with_grass",
"default:dirt_with_snow",
"ethereal:praire_dirt",
"ethereal:jungle_dirt",
},},
["oregano"] = { { "default:dirt_with_grass",
"default:dirt_with_dry_grass",
"ethereal:praire_dirt",
"ethereal:jungle_dirt",
},},
}
for k, v in pairs(pf.plant_list) do
local ps = pf.plant_settings[k]
if ps ~= nil and ps.definable then
pf.register_plant(k)
pf.register_wild_variant(k, v[1], ps.scale, ps.min_hight, ps.max_hight )
end
end
pf.mushroom_list = {
--name full_mushroom_name
["brown"] = {"flowers:mushroom_brown",},
["cantharellus"] = {"herbs:mushroom_cantharellus",},
["boletus"] = {"herbs:mushroom_boletus",},
}
for k, v in pairs(pf.mushroom_list) do
local ps = pf.plant_settings[k]
if ps ~= nil and ps.definable and minetest.registered_items[v[1]] then
pf.register_mushroom(k, v[1])
end
end
local shrub = pf.modname ..":pot_with_shrub"
local b_shrub = pf.modname ..":pot_with_plantain"
pf.fruit_tree_list = {
--name sapling_name, fruit_name, leaves_name,
["lemon"] = {"ethereal:lemon_tree_sapling",
"ethereal:lemon",
"ethereal_lemon_leaves.png",
shrub,
},
["orange"] = {"ethereal:orange_tree_sapling",
"ethereal:orange",
"ethereal_orange_leaves.png",
shrub,
},
["apple"] = {"default:sapling",
"default:apple",
"default_leaves.png",
shrub,
},
["cherry"] = {"cherrytree:sapling",
"cherrytree:cherries",
"cherrytree_leaves.png",
shrub,
},
["plum"] = {"plumtree:sapling",
"plumtree:plum",
"plumtree_leaves.png",
shrub,
},
["pomegranate"] = {"pomegranate:sapling",
"pomegranate:pomegranate",
"pomegranate_leaves.png",
shrub,
},
["banana"] = {"ethereal:banana_tree_sapling",
"ethereal:banana",
"ethereal_banana_leaf.png",
b_shrub,
},
}
local fruit_tree_alternatives = {
--name sapling_name, fruit_name, leaves_name,
["lemon"] = { "lemontree",
{ "lemontree:sapling",
"lemontree:lemon",
"lemontree_leaves.png",
shrub,
},
},
["orange"] = { "clementinetree",
{ "clementinetree:sapling",
"clementinetree:clementine",
"clementinetree_leaves.png",
shrub,
},
},
["apple"] = { "moretrees",
{ "moretrees:apple_tree_sapling",
"default:apple",
"moretrees_apple_tree_leaves.png^nature_blossom.png",
shrub,
},
},
["cherry"] = { "cherrytree",
{ "cherrytree:sapling",
"cherrytree:cherries",
"cherrytree_blossom_leaves.png",
shrub,
},
},
}
-- can items be swapped? need to check and modify fruit_tree_list before register
for k,v in pairs(pf.fruit_tree_list) do
local modname = v[1]:split(":")[1]
if minetest.get_modpath(modname) then
local s = pf.plant_settings.support
if s[k] ~= nil and s[k].can_swap == true then
local f = fruit_tree_alternatives[k]
if minetest.get_modpath(f[1]) then
pf.fruit_tree_list[k] = f[2]
end -- if the alternative mod is present
end -- if fruit is in the main list, and can swap
end-- if mod with fruit is present
end -- for fruit_tree_list
for k, v in pairs(pf.fruit_tree_list) do
local ps = pf.plant_settings[k]
-- i still need to check if the item exists, just in case.
if ps ~= nil and ps.definable == true and minetest.registered_items[v[2]] then
pf.register_fruit_tree(k, v[1], v[2], v[3], v[4])
end
end
minetest.log("ACTION", "[MOD] " .. pf.modname .. " successfully loaded.")