187 lines
5.9 KiB
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.")
|