100 lines
3.4 KiB
Lua
100 lines
3.4 KiB
Lua
local S = farming.intllib
|
|
|
|
farming.path = minetest.get_modpath("farming")
|
|
|
|
local crop_definition = {}
|
|
|
|
local file = io.open(farming.path .. "/crops.csv", "r")
|
|
for line in file:lines() do
|
|
local attribs = line:split(",", true)
|
|
local name,enabled,next_plant,rarety,steps,harvest_max,eat_hp,to_culture,has_harvest,on_soil,punchable,infectable,
|
|
seed_extractable,snappy,temperature_min,temperature_max,humidity_min,humidity_max,elevation_min,elevation_max,
|
|
infect_rate_base,infect_rate_monoculture,spread_rate = unpack(attribs)
|
|
if #name > 0 and name:sub(1,1) ~= "#" and #enabled > 0 and #steps > 0 then
|
|
biom_def={min_temp=tonumber(temperature_min) or 0,
|
|
max_temp=tonumber(temperature_max) or 100,
|
|
min_humidity=tonumber(humidity_min) or 0,
|
|
max_humidity=tonumber(humidity_max) or 100,
|
|
spawnon={spawn_min=tonumber(elevation_min) or 0,
|
|
spawn_max=tonumber(elevation_max)} or 31000,
|
|
}
|
|
crop_definition[name]={
|
|
paramtype2 = "meshoptions",
|
|
fertility = {"grassland"},
|
|
place_param2 = 3,
|
|
groups = {farming=1},
|
|
steps = tonumber(steps),
|
|
grow_time_mean=tonumber(grow_time_mean),
|
|
harvest_max=tonumber(harvest_max),
|
|
light_min=tonumber(light_min),
|
|
light_max=tonumber(light_max) or default.LIGHT_MAX,
|
|
temperature_min=tonumber(temperature_min),
|
|
temperature_max=tonumber(temperature_max),
|
|
humidity_min=tonumber(humidity_min),
|
|
humidity_max=tonumber(humidity_max),
|
|
elevation_min=tonumber(elevation_min),
|
|
elevation_max=tonumber(elevation_max),
|
|
description=S(name),
|
|
eat_hp=tonumber(eat_hp),
|
|
next_plant=next_plant,
|
|
spawnon = farming.change_soil or {"default:dirt_with_grass"},
|
|
next_plant="farming:culturewheat",
|
|
next_plant_rarity=12,
|
|
infect = {
|
|
base_rate = tonumber(infect_rate_base),
|
|
mono_rate = tonumber(infect_rate_monoculture),
|
|
},
|
|
spread = {spreadon = farming.change_soil or {"default:dirt_with_grass"},
|
|
base_rate = tonumber(spread_rate),
|
|
},
|
|
biomes=farming.get_biomes(biom_def),
|
|
}
|
|
if #on_soil > 0 then
|
|
crop_definition[name].groups["on_soil"]=tonumber(on_soil)
|
|
end
|
|
if #to_culture > 0 then
|
|
crop_definition[name].groups["to_culture"]=tonumber(to_culture)
|
|
end
|
|
if #punchable > 0 then
|
|
crop_definition[name].groups["punchable"]=tonumber(punchable)
|
|
end
|
|
if #has_harvest > 0 then
|
|
crop_definition[name].groups["has_harvest"]=tonumber(has_harvest)
|
|
end
|
|
if #infectable > 0 then
|
|
crop_definition[name].groups["infectable"]=tonumber(infectable)
|
|
end
|
|
if #seed_extractable > 0 then
|
|
crop_definition[name].groups["seed_extractable"]=tonumber(seed_extractable)
|
|
end
|
|
if #snappy > 0 then
|
|
crop_definition[name].groups["snappy"]=tonumber(snappy)
|
|
else
|
|
crop_definition[name].groups["snappy"]=3
|
|
end
|
|
end
|
|
end
|
|
|
|
if crop_definition["default"]~=nil then
|
|
local default_def = crop_definition["default"]
|
|
print(#crop_definition)
|
|
print(dump(default_def))
|
|
for i,tdef in ipairs(crop_definition) do
|
|
print(dump(tdef))
|
|
if tdef.name ~= "default" then
|
|
local tdef_name = tdef.name
|
|
for _,colu in ipairs({"rarety","harvest_max","temperature_min","temperature_max",
|
|
"humidity_min","humidity_max","elevation_min","elevation_max",
|
|
"infect_rate_base","infect_rate_monoculture","spread_rate"}) do
|
|
print(colu)
|
|
if crop_definition[tdef_name][colu] == nil then
|
|
print(colu)
|
|
print(default_def[colu])
|
|
crop_definition[tdef_name][colu] = default_def[colu]
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
-- print(dump(crop_definition))
|