38
craft.lua
|
@ -1,8 +1,20 @@
|
||||||
local S = farming.intllib
|
local S = farming.intllib
|
||||||
local modname=minetest.get_current_modname()
|
local modname=minetest.get_current_modname()
|
||||||
|
|
||||||
|
-- generate "seed" out of harvest and trellis
|
||||||
|
farming.trellis_seed = function(grain_name)
|
||||||
|
local mname = grain_name:split(":")[1]
|
||||||
|
local pname = grain_name:split(":")[2]
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = mname..":seed_"..pname.." 1",
|
||||||
|
recipe = {
|
||||||
|
modname..":trellis",grain_name
|
||||||
|
},
|
||||||
|
})
|
||||||
|
end
|
||||||
-- define seed crafting
|
-- define seed crafting
|
||||||
local function seed_craft(grain_name)
|
function farming.seed_craft(grain_name)
|
||||||
local mname = grain_name:split(":")[1]
|
local mname = grain_name:split(":")[1]
|
||||||
local pname = grain_name:split(":")[2]
|
local pname = grain_name:split(":")[2]
|
||||||
|
|
||||||
|
@ -15,16 +27,6 @@ local function seed_craft(grain_name)
|
||||||
replacements = {{"group:food_flail", modname..":flail"},
|
replacements = {{"group:food_flail", modname..":flail"},
|
||||||
{"group:food_wheat","farming:straw"}},
|
{"group:food_wheat","farming:straw"}},
|
||||||
})
|
})
|
||||||
minetest.register_craft({
|
|
||||||
type = "shapeless",
|
|
||||||
output = mname..":seed_"..pname.." 1",
|
|
||||||
recipe = {
|
|
||||||
grain_name, modname..":flail"
|
|
||||||
},
|
|
||||||
replacements = {{"group:food_flail", modname..":flail"},
|
|
||||||
{"group:food_wheat","farming:straw"}},
|
|
||||||
additional_wear=0.5,
|
|
||||||
})
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type = "shapeless",
|
type = "shapeless",
|
||||||
output = mname..":seed_"..pname.." 1",
|
output = mname..":seed_"..pname.." 1",
|
||||||
|
@ -58,9 +60,6 @@ minetest.register_craft({
|
||||||
replacements = {{"group:food_mortar_pestle", modname..":mortar_pestle"}},
|
replacements = {{"group:food_mortar_pestle", modname..":mortar_pestle"}},
|
||||||
})
|
})
|
||||||
|
|
||||||
seed_craft("farming:wheat")
|
|
||||||
seed_craft("farming:culturewheat")
|
|
||||||
seed_craft("farming:barley")
|
|
||||||
|
|
||||||
roast_seed("farming:seed_barley","farming:seed_barley_roasted")
|
roast_seed("farming:seed_barley","farming:seed_barley_roasted")
|
||||||
roast_seed("farming:seed_wheat","farming_grain:seed_wheat_roasted")
|
roast_seed("farming:seed_wheat","farming_grain:seed_wheat_roasted")
|
||||||
|
@ -104,3 +103,14 @@ minetest.register_craftitem("farming:flour", {
|
||||||
groups = {food_flour = 1, flammable = 1},
|
groups = {food_flour = 1, flammable = 1},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem(modname..":urtica_water",{
|
||||||
|
description = "Urtica Water",
|
||||||
|
inventory_image = "farming_tool_glass_urtica.png",
|
||||||
|
groups = {desinfect = 1}
|
||||||
|
})
|
||||||
|
minetest.register_craft({
|
||||||
|
output=modname..":urtica_water 10",
|
||||||
|
type = "shapeless",
|
||||||
|
recipe {"vessels:glass_bottle 10","bucket_water",modname..":urtica"}
|
||||||
|
replacements = {{"bucket_water", "bucket_empty"}}
|
||||||
|
})
|
||||||
|
|
54
crops.csv
|
@ -1,27 +1,27 @@
|
||||||
#name,enabled,next_plant,rarety,steps,harvest_max,eat_hp,to_culture,to_dig,has_harvest,on_soil,punchable,infectable,seed_extractable,snappy,temperature_min,temperature_max,humidity_min,humidity_max,elevation_min,elevation_max,light_min,light_max,infect_rate_base,infect_rate_monoculture,spread_rate
|
#name,enabled,next_plant,rarety,steps,harvest_max,eat_hp,to_culture,to_dig,has_harvest,on_soil,punchable,infectable,seed_extractable,use_flail,use_trellis,snappy,temperature_min,temperature_max,humidity_min,humidity_max,elevation_min,elevation_max,light_min,light_max,infect_rate_base,infect_rate_monoculture,spread_rate
|
||||||
default,1,,10,8,2,1,,,,,,,,3,15,50,10,50,0,31000,11,14,1E-05,0.001,0.001
|
default,1,,10,8,2,1,,,,,,,,,,3,15,50,10,50,0,31000,11,14,1E-05,0.001,0.001
|
||||||
barley,1,,10,7,2,1,,,1,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
barley,1,,10,7,2,1,,,1,1,,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
beetroot,1,,10,5,2,2,,1,,1,,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
beetroot,1,,10,5,2,2,,1,,1,,,,,,3,15,50,10,50,0,100,9,14,1E-05,0.001,0.001
|
||||||
blackberry,1,,10,4,2,1,,,,,1,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
blackberry,1,,10,4,2,1,,,,,1,,,,,3,15,50,10,50,0,100,9,14,1E-05,0.001,0.001
|
||||||
blueberry,1,,10,4,2,1,,,,,1,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
blueberry,1,,10,4,2,1,,,,,1,,,,,3,15,50,10,50,0,100,9,14,1E-05,0.001,0.001
|
||||||
carrot,1,,10,8,2,2,,1,,1,,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
carrot,1,,10,8,2,2,,1,,1,,,,,,3,15,50,10,50,0,100,8,14,1E-05,0.001,0.001
|
||||||
chili,1,,20,8,2,1,,,,,1,,,3,25,50,10,50,50,1000,11,14,1E-05,0.001,0.001
|
chili,1,,20,8,2,1,,,,,1,,,,,3,25,50,10,50,50,1000,11,14,1E-05,0.001,0.001
|
||||||
coffee,1,,20,5,2,1,,,,,1,,,3,25,50,10,50,50,1000,11,14,1E-05,0.001,0.001
|
coffee,1,,20,5,2,1,,,,,1,,,,,3,50,120,40,150,50,1000,12,14,1E-05,0.001,0.001
|
||||||
cocoa,1,,20,4,2,1,,,,,1,,,3,25,50,10,50,50,1000,11,14,1E-05,0.001,0.001
|
cocoa,1,,20,4,2,1,,,,,1,,,,,3,50,120,40,150,50,1000,12,14,1E-05,0.001,0.001
|
||||||
corn,1,,10,8,2,2,,,,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
corn,1,,10,8,2,2,,,,1,,1,,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
cotton,1,,10,8,2,2,,,1,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
cotton,1,,10,8,2,2,,,1,1,,1,,1,,3,15,50,10,50,0,100,12,14,1E-05,0.001,0.001
|
||||||
culturewheat,1,,100,4,2,1,1,,1,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
culturewheat,1,,100,4,2,1,1,,1,1,,1,,1,,3,15,50,10,50,0,100,10,14,1E-05,0.001,0.001
|
||||||
garlic,,,10,5,2,2,,1,,1,,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
garlic,,,10,5,2,2,,1,,1,,,,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
hemp,,,10,8,2,2,,,1,1,,1,,3,,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
hemp,1,,10,8,2,2,,,1,1,,,,1,,3,15,120,10,90,0,100,6,14,1E-05,0.001,1E-05
|
||||||
hop,1,,10,7,2,1,,,1,1,1,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
hop,1,,10,7,2,1,,,1,1,1,1,,,1,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
mustard,1,,10,5,2,1,,,1,,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
mustard,1,,10,5,2,1,,,,,,1,,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
potato,1,,10,4,2,2,,,,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
potato,1,,10,4,2,2,,,,1,,1,,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
raspberry,1,,10,4,2,1,,,,,1,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
raspberry,1,,10,4,2,1,,,,,1,,,,,3,15,50,10,50,0,100,9,14,1E-05,0.001,0.001
|
||||||
rhubarb,1,,10,3,2,2,,1,,1,,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
rhubarb,1,,10,3,2,2,,1,,1,,,,,,3,15,50,10,50,0,100,9,14,1E-05,0.001,0.001
|
||||||
spelt,1,,10,7,2,1,,,1,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
spelt,1,,10,7,2,1,,,1,1,,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
strawberry,1,,10,4,2,1,,,,,1,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
strawberry,1,,10,4,2,1,,,,,1,,,,,3,15,50,10,50,0,100,9,14,1E-05,0.001,0.001
|
||||||
tea,,,20,5,2,1,,,,,1,,1,3,25,50,10,50,50,,11,14,1E-05,0.001,0.001
|
tea,,,20,5,2,1,,,,,1,,1,,,3,30,70,30,70,50,100,11,14,1E-05,0.001,0.001
|
||||||
tobaco,,,10,8,2,2,,,,1,,1,1,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
tobaco,,,10,8,2,2,,,,1,,1,1,,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
tomato,1,,10,8,2,1,,,1,1,1,1,,3,,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
tomato,1,,10,8,2,1,,,1,1,1,1,,,1,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
urtica,,,10,8,2,1,,,1,,,,,3,15,50,10,50,0,200,11,14,1E-05,0.001,0.01
|
urtica,1,,10,5,2,1,,,1,,,,,1,,3,5,150,10,100,0,2000,6,14,1E-05,0.001,0.001
|
||||||
wheat,1,culturewheat,10,8,2,1,,,1,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
wheat,1,culturewheat,10,8,2,1,,,1,1,,1,,1,,3,15,50,10,50,0,100,11,14,1E-05,0.001,0.001
|
||||||
|
|
|
49
crops.lua
|
@ -8,7 +8,7 @@ local crop_definition = {}
|
||||||
local file = io.open(farming.path .. "/crops.csv", "r")
|
local file = io.open(farming.path .. "/crops.csv", "r")
|
||||||
for line in file:lines() do
|
for line in file:lines() do
|
||||||
local attribs = line:split(",", true)
|
local attribs = line:split(",", true)
|
||||||
local name,enabled,next_plant,rarety,steps,harvest_max,eat_hp,to_culture,to_dig,has_harvest,on_soil,punchable,infectable,seed_extractable,snappy,temperature_min,temperature_max,humidity_min,humidity_max,elevation_min,elevation_max,light_min,light_max,infect_rate_base,infect_rate_monoculture,spread_rate = unpack(attribs)
|
local name,enabled,next_plant,rarety,steps,harvest_max,eat_hp,to_culture,to_dig,has_harvest,on_soil,punchable,infectable,seed_extractable,use_flail,use_trellis,snappy,temperature_min,temperature_max,humidity_min,humidity_max,elevation_min,elevation_max,light_min,light_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
|
if #name > 0 and name:sub(1,1) ~= "#" and #enabled > 0 and #steps > 0 then
|
||||||
crop_definition[name]={
|
crop_definition[name]={
|
||||||
paramtype2 = "meshoptions",
|
paramtype2 = "meshoptions",
|
||||||
|
@ -17,18 +17,20 @@ for line in file:lines() do
|
||||||
groups = {farming=1},
|
groups = {farming=1},
|
||||||
mod_name=minetest.get_current_modname(),
|
mod_name=minetest.get_current_modname(),
|
||||||
steps = tonumber(steps),
|
steps = tonumber(steps),
|
||||||
grow_time_mean=tonumber(grow_time_mean),
|
environment={
|
||||||
harvest_max=tonumber(harvest_max),
|
grow_time_mean=tonumber(grow_time_mean),
|
||||||
light_min=tonumber(light_min),
|
harvest_max=tonumber(harvest_max),
|
||||||
light_max=tonumber(light_max) or default.LIGHT_MAX,
|
light_min=tonumber(light_min),
|
||||||
temperature_min=tonumber(temperature_min),
|
light_max=tonumber(light_max) or default.LIGHT_MAX,
|
||||||
temperature_max=tonumber(temperature_max),
|
temperature_min=tonumber(temperature_min),
|
||||||
humidity_min=tonumber(humidity_min),
|
temperature_max=tonumber(temperature_max),
|
||||||
humidity_max=tonumber(humidity_max),
|
humidity_min=tonumber(humidity_min),
|
||||||
elevation_min=tonumber(elevation_min),
|
humidity_max=tonumber(humidity_max),
|
||||||
elevation_max=tonumber(elevation_max),
|
elevation_min=tonumber(elevation_min),
|
||||||
|
elevation_max=tonumber(elevation_max),
|
||||||
|
rarety=tonumber(rarety),
|
||||||
|
},
|
||||||
name=name,
|
name=name,
|
||||||
rarety=tonumber(rarety),
|
|
||||||
description=S(name),
|
description=S(name),
|
||||||
eat_hp=tonumber(eat_hp),
|
eat_hp=tonumber(eat_hp),
|
||||||
next_plant=next_plant,
|
next_plant=next_plant,
|
||||||
|
@ -59,6 +61,12 @@ for line in file:lines() do
|
||||||
if #seed_extractable > 0 then
|
if #seed_extractable > 0 then
|
||||||
crop_definition[name].groups["seed_extractable"]=tonumber(seed_extractable)
|
crop_definition[name].groups["seed_extractable"]=tonumber(seed_extractable)
|
||||||
end
|
end
|
||||||
|
if #use_flail > 0 then
|
||||||
|
crop_definition[name].groups["use_flail"]=tonumber(use_flail)
|
||||||
|
end
|
||||||
|
if #use_trellis > 0 then
|
||||||
|
crop_definition[name].groups["use_trellis"]=tonumber(use_trellis)
|
||||||
|
end
|
||||||
if #snappy > 0 then
|
if #snappy > 0 then
|
||||||
crop_definition[name].groups["snappy"]=tonumber(snappy)
|
crop_definition[name].groups["snappy"]=tonumber(snappy)
|
||||||
else
|
else
|
||||||
|
@ -66,6 +74,7 @@ for line in file:lines() do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
file:close()
|
||||||
|
|
||||||
-- voids are filled from default
|
-- voids are filled from default
|
||||||
if crop_definition["default"]~=nil then
|
if crop_definition["default"]~=nil then
|
||||||
|
@ -75,8 +84,8 @@ if crop_definition["default"]~=nil then
|
||||||
local tdef_name = tdef.name
|
local tdef_name = tdef.name
|
||||||
for _,colu in ipairs({"rarety","harvest_max","temperature_min","temperature_max",
|
for _,colu in ipairs({"rarety","harvest_max","temperature_min","temperature_max",
|
||||||
"humidity_min","humidity_max","elevation_min","elevation_max"}) do
|
"humidity_min","humidity_max","elevation_min","elevation_max"}) do
|
||||||
if crop_definition[tdef_name][colu] == nil then
|
if crop_definition[tdef_name].environment[colu] == nil then
|
||||||
crop_definition[tdef_name][colu] = default_def[colu]
|
crop_definition[tdef_name].environment[colu] = default_def.environment[colu]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if crop_definition[tdef_name].infect.base_rate == nil then
|
if crop_definition[tdef_name].infect.base_rate == nil then
|
||||||
|
@ -89,12 +98,12 @@ if crop_definition["default"]~=nil then
|
||||||
crop_definition[tdef_name].spread.base_rate = default_def.spread.base_rate or 0.001
|
crop_definition[tdef_name].spread.base_rate = default_def.spread.base_rate or 0.001
|
||||||
end
|
end
|
||||||
biom_def={
|
biom_def={
|
||||||
min_temp=crop_definition[tdef_name].temperature_min,
|
min_temp=crop_definition[tdef_name].environment.temperature_min,
|
||||||
max_temp=crop_definition[tdef_name].temperature_max,
|
max_temp=crop_definition[tdef_name].environment.temperature_max,
|
||||||
min_humidity=crop_definition[tdef_name].humidity_min,
|
min_humidity=crop_definition[tdef_name].environment.humidity_min,
|
||||||
max_humidity=crop_definition[tdef_name].humidity_max,
|
max_humidity=crop_definition[tdef_name].environment.humidity_max,
|
||||||
spawnon={spawn_min=crop_definition[tdef_name].elevation_min,
|
spawnon={spawn_min=crop_definition[tdef_name].environment.elevation_min,
|
||||||
spawn_max=crop_definition[tdef_name].elevation_max,
|
spawn_max=crop_definition[tdef_name].environment.elevation_max,
|
||||||
},}
|
},}
|
||||||
crop_definition[tdef_name].biomes=farming.get_biomes(biom_def)
|
crop_definition[tdef_name].biomes=farming.get_biomes(biom_def)
|
||||||
end
|
end
|
||||||
|
|
65
register.lua
|
@ -2,14 +2,20 @@ local S = farming.intllib
|
||||||
-- function to check definition
|
-- function to check definition
|
||||||
-- and set to defaults values
|
-- and set to defaults values
|
||||||
local register_plant_check_def = function(def)
|
local register_plant_check_def = function(def)
|
||||||
local default_def={temperature_min=0,temperature_max=100,humidity_min=0,humidity_max=100,
|
local default_def={harvest_max=2,place_param2 = 3,mod_name=minetest.get_current_modname()}
|
||||||
elevation_min=0,elevation_max=31000,light_min=10,light_max=default.LIGHT_MAX,rarety=10,harvest_max=2,
|
|
||||||
place_param2 = 3,grow_time_mean=120,mod_name=minetest.get_current_modname()}
|
|
||||||
for dn,dv in pairs(default_def) do
|
for dn,dv in pairs(default_def) do
|
||||||
if def[dn] == nil then
|
if def[dn] == nil then
|
||||||
def[dn] = dv
|
def[dn] = dv
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
local default_env={temperature_min=0,temperature_max=100,humidity_min=0,humidity_max=100,
|
||||||
|
elevation_min=0,elevation_max=31000,light_min=10,light_max=default.LIGHT_MAX,rarety=10,
|
||||||
|
grow_time_mean=120}
|
||||||
|
for dn,dv in pairs(default_env) do
|
||||||
|
if def.environment[dn] == nil then
|
||||||
|
def.environment[dn] = dv
|
||||||
|
end
|
||||||
|
end
|
||||||
if not def.description then
|
if not def.description then
|
||||||
def.description = "Seed"
|
def.description = "Seed"
|
||||||
end
|
end
|
||||||
|
@ -35,8 +41,8 @@ local register_plant_check_def = function(def)
|
||||||
else
|
else
|
||||||
def.infect = nil
|
def.infect = nil
|
||||||
end
|
end
|
||||||
def.grow_time_min=math.floor(def.grow_time_mean*0.75)
|
def.grow_time_min=math.floor(def.environment.grow_time_mean*0.75)
|
||||||
def.grow_time_max=math.floor(def.grow_time_mean*1.2)
|
def.grow_time_max=math.floor(def.environment.grow_time_mean*1.2)
|
||||||
return def
|
return def
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -72,16 +78,24 @@ farming.register_plant = function(def)
|
||||||
-- farming.register_mapgen(def)
|
-- farming.register_mapgen(def)
|
||||||
-- end
|
-- end
|
||||||
if (def.spread) and (not def.groups["to_culture"]) then
|
if (def.spread) and (not def.groups["to_culture"]) then
|
||||||
|
edef=def.environment
|
||||||
local spread_def={name=def.step_name.."_1",
|
local spread_def={name=def.step_name.."_1",
|
||||||
temp_min=def.temperature_min,temp_max=def.temperature_max,
|
temp_min=edef.temperature_min,temp_max=edef.temperature_max,
|
||||||
hum_min=def.humidity_min,hum_max=def.humidity_max,
|
hum_min=edef.humidity_min,hum_max=edef.humidity_max,
|
||||||
y_min=def.elevation_min,y_max=def.elevation_max,base_rate = def.spread.base_rate}
|
y_min=edef.elevation_min,y_max=edef.elevation_max,base_rate = def.spread.base_rate}
|
||||||
table.insert(farming.spreading_crops,1,spread_def)
|
table.insert(farming.spreading_crops,1,spread_def)
|
||||||
end
|
end
|
||||||
|
|
||||||
if def.groups["infectable"] then
|
if def.groups["infectable"] then
|
||||||
farming.register_infect(def)
|
farming.register_infect(def)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if def.groups["use_flail"] then
|
||||||
|
farming.seed_craft(def.harvest_name)
|
||||||
|
end
|
||||||
|
if def.groups["use_trellis"] then
|
||||||
|
farming.trellis_seed(def.harvest_name)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- helping function for getting biomes
|
-- helping function for getting biomes
|
||||||
|
@ -138,6 +152,12 @@ farming.register_harvest=function(hdef)
|
||||||
for _,coln in ipairs({"name","seed_name","harvest_name"}) do
|
for _,coln in ipairs({"name","seed_name","harvest_name"}) do
|
||||||
harvest_def[coln] = hdef[coln]
|
harvest_def[coln] = hdef[coln]
|
||||||
end
|
end
|
||||||
|
if hdef.groups["use_flail"] then
|
||||||
|
harvest_def.groups["use_flail"]=hdef.groups["use_flail"]
|
||||||
|
end
|
||||||
|
if hdef.groups["use_trellis"] then
|
||||||
|
harvest_def.groups["use_trellis"]=hdef.groups["use_trellis"]
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_craftitem(":" .. hdef.harvest_name, harvest_def)
|
minetest.register_craftitem(":" .. hdef.harvest_name, harvest_def)
|
||||||
end
|
end
|
||||||
|
@ -190,8 +210,7 @@ farming.register_seed=function(sdef)
|
||||||
on_timer = farming.seed_on_timer,
|
on_timer = farming.seed_on_timer,
|
||||||
}
|
}
|
||||||
for i,colu in ipairs({"inventory_image","place_param2","fertility","description","name","seed_name","harvest_name",
|
for i,colu in ipairs({"inventory_image","place_param2","fertility","description","name","seed_name","harvest_name",
|
||||||
"light_min","light_max","temperature_min","temperature_max","humidity_min","humidity_max","elevation_min","elevation_max",
|
"environment"}) do
|
||||||
"grow_time_min","grow_time_max"}) do
|
|
||||||
seed_def[colu] = sdef[colu]
|
seed_def[colu] = sdef[colu]
|
||||||
end
|
end
|
||||||
local seed_png = sdef.mod_name.."_"..sdef.name.."_seed.png"
|
local seed_png = sdef.mod_name.."_"..sdef.name.."_seed.png"
|
||||||
|
@ -223,6 +242,14 @@ farming.register_steps = function(sdef)
|
||||||
if sdef.groups["punchable"] then
|
if sdef.groups["punchable"] then
|
||||||
is_punchable = true
|
is_punchable = true
|
||||||
end
|
end
|
||||||
|
local seed_extractable = false
|
||||||
|
if sdef.groups["seed_extractable"] then
|
||||||
|
seed_extractable = true
|
||||||
|
end
|
||||||
|
local use_trellis = false
|
||||||
|
if sdef.groups["use_trellis"] then
|
||||||
|
use_trellis = true
|
||||||
|
end
|
||||||
-- check if cultured plant exist
|
-- check if cultured plant exist
|
||||||
local has_next_plant = false
|
local has_next_plant = false
|
||||||
if sdef.next_plant then
|
if sdef.next_plant then
|
||||||
|
@ -241,8 +268,7 @@ farming.register_steps = function(sdef)
|
||||||
sounds = default.node_sound_leaves_defaults(),
|
sounds = default.node_sound_leaves_defaults(),
|
||||||
}
|
}
|
||||||
-- copy some plant definition into definition of this steps
|
-- copy some plant definition into definition of this steps
|
||||||
for _,colu in ipairs({"paramtype2","place_param2","seed_name","name","harvest_name","light_min","light_max",
|
for _,colu in ipairs({"paramtype2","place_param2","seed_name","name","harvest_name","environment"}) do
|
||||||
"temperature_min","temperature_max","humidity_min","humidity_max"}) do
|
|
||||||
if sdef[colu] then
|
if sdef[colu] then
|
||||||
node_def[colu] = sdef[colu]
|
node_def[colu] = sdef[colu]
|
||||||
end
|
end
|
||||||
|
@ -282,7 +308,9 @@ farming.register_steps = function(sdef)
|
||||||
base_rarity = 8 - (i - 1) * 7 / (sdef.steps - 1)
|
base_rarity = 8 - (i - 1) * 7 / (sdef.steps - 1)
|
||||||
end
|
end
|
||||||
ndef.drop={items={{items={drop_item}}}}
|
ndef.drop={items={{items={drop_item}}}}
|
||||||
|
if use_trellis then
|
||||||
|
table.insert(ndef.drop.items,1,{items={"farming:trellis"}})
|
||||||
|
end
|
||||||
local base_rarity = 1
|
local base_rarity = 1
|
||||||
if sdef.steps ~= 1 then
|
if sdef.steps ~= 1 then
|
||||||
base_rarity = sdef.steps - i + 1
|
base_rarity = sdef.steps - i + 1
|
||||||
|
@ -555,7 +583,7 @@ farming.step_on_punch = function(pos, node, puncher, pointed_thing)
|
||||||
local meta = minetest.get_meta(pos)
|
local meta = minetest.get_meta(pos)
|
||||||
meta:set_int("farming:step",pre_def.groups[pre_def.plant_name])
|
meta:set_int("farming:step",pre_def.groups[pre_def.plant_name])
|
||||||
if pre_def.next_step then
|
if pre_def.next_step then
|
||||||
minetest.get_node_timer(pos):start(math.random(pre_def.min_grow_time or 100, pre_def.max_grow_time or 200))
|
minetest.get_node_timer(pos):start(math.random(pre_def.grow_time_min or 100, pre_def.grow_time_max or 200))
|
||||||
end
|
end
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
@ -669,16 +697,17 @@ farming.place_seed = function(itemstack, placer, pointed_thing, plantname)
|
||||||
if not is_correct_node then
|
if not is_correct_node then
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
|
local edef=pdef.environment
|
||||||
-- check for correct temperature
|
-- check for correct temperature
|
||||||
if pt.under.y < pdef.elevation_min or pt.under.y > pdef.elevation_max then
|
if pt.under.y < edef.elevation_min or pt.under.y > edef.elevation_max then
|
||||||
minetest.chat_send_player(player_name,"Elevation must be between "..pdef.elevation_min.." and "..pdef.elevation_max)
|
minetest.chat_send_player(player_name,"Elevation must be between "..edef.elevation_min.." and "..edef.elevation_max)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if minetest.get_heat(pt.under) < pdef.temperature_min or minetest.get_heat(pt.under) > pdef.temperature_max then
|
if minetest.get_heat(pt.under) < edef.temperature_min or minetest.get_heat(pt.under) > edef.temperature_max then
|
||||||
minetest.chat_send_player(player_name,"Temperature "..minetest.get_heat(pt.under).." is out of range for planting.")
|
minetest.chat_send_player(player_name,"Temperature "..minetest.get_heat(pt.under).." is out of range for planting.")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
if minetest.get_humidity(pt.under) < pdef.humidity_min or minetest.get_humidity(pt.under) > pdef.humidity_max then
|
if minetest.get_humidity(pt.under) < edef.humidity_min or minetest.get_humidity(pt.under) > edef.humidity_max then
|
||||||
minetest.chat_send_player(player_name,"Humidity "..minetest.get_humidity(pt.under).." is out of range for planting.")
|
minetest.chat_send_player(player_name,"Humidity "..minetest.get_humidity(pt.under).." is out of range for planting.")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
Before Width: | Height: | Size: 136 B After Width: | Height: | Size: 142 B |
Before Width: | Height: | Size: 618 B After Width: | Height: | Size: 394 B |
Before Width: | Height: | Size: 609 B After Width: | Height: | Size: 419 B |
After Width: | Height: | Size: 184 B |
After Width: | Height: | Size: 180 B |
After Width: | Height: | Size: 136 B |
After Width: | Height: | Size: 114 B |
After Width: | Height: | Size: 152 B |
After Width: | Height: | Size: 170 B |
After Width: | Height: | Size: 193 B |
After Width: | Height: | Size: 193 B |
After Width: | Height: | Size: 131 B |
17
utensils.lua
|
@ -21,7 +21,7 @@ minetest.register_craft({
|
||||||
minetest.register_craftitem(modname..":flail", {
|
minetest.register_craftitem(modname..":flail", {
|
||||||
description = S("Threshing Flail"),
|
description = S("Threshing Flail"),
|
||||||
inventory_image = "farming_tool_flail.png",
|
inventory_image = "farming_tool_flail.png",
|
||||||
groups = {food_flail = 1, flammable = 2},
|
groups = {farming_flail = 1, flammable = 2},
|
||||||
})
|
})
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
|
@ -32,6 +32,21 @@ minetest.register_craft({
|
||||||
{"group:stick", "", ""},
|
{"group:stick", "", ""},
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
-- Trellis
|
||||||
|
minetest.register_craftitem(modname..":trellis", {
|
||||||
|
description = S("Trellis"),
|
||||||
|
inventory_image = "farming_tool_trellis.png",
|
||||||
|
groups = {farming_trellis = 1, flammable = 2},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = modname..":trellis",
|
||||||
|
recipe = {
|
||||||
|
{"", "", ""},
|
||||||
|
{ "group:stick", "","group:stick"},
|
||||||
|
{ "","group:stick", ""},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
-- mortar and pestle -- definition from mod farming by tenplus1
|
-- mortar and pestle -- definition from mod farming by tenplus1
|
||||||
minetest.register_craftitem(modname..":mortar_pestle", {
|
minetest.register_craftitem(modname..":mortar_pestle", {
|
||||||
|
|