added urtica #1 which can be used to cure infected plants #4

master
ademant 2018-10-10 14:37:07 +02:00
parent 149d4ce2df
commit 579f42cdbe
17 changed files with 143 additions and 80 deletions

View File

@ -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"}}
})

View File

@ -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

1 #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
2 default 1 10 8 2 1 3 15 50 10 50 0 31000 11 14 1E-05 0.001 0.001
3 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
4 beetroot 1 10 5 2 2 1 1 3 15 50 10 50 0 100 11 9 14 1E-05 0.001 0.001
5 blackberry 1 10 4 2 1 1 3 15 50 10 50 0 100 11 9 14 1E-05 0.001 0.001
6 blueberry 1 10 4 2 1 1 3 15 50 10 50 0 100 11 9 14 1E-05 0.001 0.001
7 carrot 1 10 8 2 2 1 1 3 15 50 10 50 0 100 11 8 14 1E-05 0.001 0.001
8 chili 1 20 8 2 1 1 3 25 50 10 50 50 1000 11 14 1E-05 0.001 0.001
9 coffee 1 20 5 2 1 1 3 25 50 50 120 10 40 50 150 50 1000 11 12 14 1E-05 0.001 0.001
10 cocoa 1 20 4 2 1 1 3 25 50 50 120 10 40 50 150 50 1000 11 12 14 1E-05 0.001 0.001
11 corn 1 10 8 2 2 1 1 3 15 50 10 50 0 100 11 14 1E-05 0.001 0.001
12 cotton 1 10 8 2 2 1 1 1 1 3 15 50 10 50 0 100 11 12 14 1E-05 0.001 0.001
13 culturewheat 1 100 4 2 1 1 1 1 1 1 3 15 50 10 50 0 100 11 10 14 1E-05 0.001 0.001
14 garlic 10 5 2 2 1 1 3 15 50 10 50 0 100 11 14 1E-05 0.001 0.001
15 hemp 1 10 8 2 2 1 1 1 1 3 15 50 120 10 50 90 0 100 11 6 14 1E-05 0.001 0.001 1E-05
16 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
17 mustard 1 10 5 2 1 1 1 3 15 50 10 50 0 100 11 14 1E-05 0.001 0.001
18 potato 1 10 4 2 2 1 1 3 15 50 10 50 0 100 11 14 1E-05 0.001 0.001
19 raspberry 1 10 4 2 1 1 3 15 50 10 50 0 100 11 9 14 1E-05 0.001 0.001
20 rhubarb 1 10 3 2 2 1 1 3 15 50 10 50 0 100 11 9 14 1E-05 0.001 0.001
21 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
22 strawberry 1 10 4 2 1 1 3 15 50 10 50 0 100 11 9 14 1E-05 0.001 0.001
23 tea 20 5 2 1 1 1 3 25 30 50 70 10 30 50 70 50 100 11 14 1E-05 0.001 0.001
24 tobaco 10 8 2 2 1 1 1 3 15 50 10 50 0 100 11 14 1E-05 0.001 0.001
25 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
26 urtica 1 10 8 5 2 1 1 1 3 15 5 50 150 10 50 100 0 200 2000 11 6 14 1E-05 0.001 0.01 0.001
27 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

View File

@ -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

View File

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 B

After

Width:  |  Height:  |  Size: 142 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 618 B

After

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 609 B

After

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 B

BIN
textures/farming_tool_trellis.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 170 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

View File

@ -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", {