write something there

This commit is contained in:
N-Nachtigal 2025-05-04 16:01:41 +02:00
commit b4b6c08f4f
8546 changed files with 309825 additions and 0 deletions

View file

@ -0,0 +1,84 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:artichoke", {
description = S("Artichoke"),
inventory_image = "farming_artichoke.png",
groups = {compostability = 48, seed = 2, food_artichoke = 1},
on_use = minetest.item_eat(4),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:artichoke_1")
end
})
farming.add_eatable("farming:artichoke", 4)
-- crop definition
local def = {
description = S("Artichoke") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_artichoke_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:artichoke_1", table.copy(def))
-- stage 2
def.tiles = {"farming_artichoke_2.png"}
minetest.register_node("farming:artichoke_2", table.copy(def))
-- stage 3
def.tiles = {"farming_artichoke_3.png"}
minetest.register_node("farming:artichoke_3", table.copy(def))
-- stage 4
def.tiles = {"farming_artichoke_4.png"}
minetest.register_node("farming:artichoke_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_artichoke_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:artichoke 2"}, rarity = 1},
{items = {"farming:artichoke"}, rarity = 2}
}
}
minetest.register_node("farming:artichoke_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:artichoke"] = {
crop = "farming:artichoke",
seed = "farming:artichoke",
minlight = 13,
maxlight = 15,
steps = 5
}
-- mapgen
farming.register_decoration("artichoke",5)

View file

@ -0,0 +1,91 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:asparagus", {
description = S("Asparagus"),
inventory_image = "farming_asparagus.png",
groups = {compostability = 48, seed = 2, food_asparagus = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:asparagus_1")
end
})
farming.add_eatable("farming:asparagus", 1)
-- crop definition
local def = {
description = S("Asparagus") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_asparagus_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:asparagus_1", table.copy(def))
-- stage 2
def.tiles = {"farming_asparagus_2.png"}
minetest.register_node("farming:asparagus_2", table.copy(def))
-- stage 3
def.tiles = {"farming_asparagus_3.png"}
minetest.register_node("farming:asparagus_3", table.copy(def))
-- stage 4
def.tiles = {"farming_asparagus_4.png"}
def.drop = {
items = {
{items = {"farming:asparagus"}, rarity = 2}
}
}
minetest.register_node("farming:asparagus_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_asparagus_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:asparagus"}, rarity = 1},
{items = {"farming:asparagus 2"}, rarity = 2}
}
}
minetest.register_node("farming:asparagus_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:asparagus"] = {
crop = "farming:asparagus",
seed = "farming:asparagus",
minlight = 7,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
farming.register_decoration("asparagus",5)

View file

@ -0,0 +1,135 @@
local S = minetest.get_translator("farming")
-- seed
minetest.register_node("farming:seed_barley", {
description = S("Barley Seed"),
tiles = {"farming_barley_seed.png"},
inventory_image = "farming_barley_seed.png",
wield_image = "farming_barley_seed.png",
drawtype = "signlike",
groups = {
handy = 1, compostability = 48, seed = 1, snappy = 3, attached_node = 1,
growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
next_plant = "farming:barley_1",
selection_box = farming.select,
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_barley")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:barley_1", param2 = 3})
end
})
-- item
minetest.register_craftitem("farming:barley", {
description = S("Barley"),
inventory_image = "farming_barley.png",
groups = {food_barley = 1, flammable = 2, compostability = 65}
})
-- crop definition
local def = {
description = S("Barley") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_barley_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:barley_1", table.copy(def))
-- stage 2
def.tiles = {"farming_barley_2.png"}
minetest.register_node("farming:barley_2", table.copy(def))
-- stage 3
def.tiles = {"farming_barley_3.png"}
minetest.register_node("farming:barley_3", table.copy(def))
-- stage 4
def.tiles = {"farming_barley_4.png"}
minetest.register_node("farming:barley_4", table.copy(def))
-- stage 5
def.tiles = {"farming_barley_5.png"}
minetest.register_node("farming:barley_5", table.copy(def))
-- stage 6
def.tiles = {"farming_barley_6.png"}
def.drop = {
items = {
{items = {"farming:barley"}, rarity = 2},
{items = {"farming:seed_barley"}, rarity = 2}
}
}
minetest.register_node("farming:barley_6", table.copy(def))
-- stage 7
def.tiles = {"farming_barley_7.png"}
def.drop = {
items = {
{items = {"farming:barley"}, rarity = 2},
{items = {"farming:seed_barley"}, rarity = 1}
}
}
minetest.register_node("farming:barley_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_barley_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:barley"}, rarity = 1},
{items = {"farming:barley"}, rarity = 3},
{items = {"farming:seed_barley"}, rarity = 1},
{items = {"farming:seed_barley"}, rarity = 3}
}
}
minetest.register_node("farming:barley_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:barley"] = {
crop = "farming:barley",
seed = "farming:seed_barley",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}

View file

@ -0,0 +1,237 @@
-- All textures by (C) Auke Kok <sofar@foo-projects.org> CC-BY-SA-3.0
local S = minetest.get_translator("farming")
local a = farming.recipe_items
-- place beans helper
local function place_beans(itemstack, placer, pointed_thing, plantname)
local pt = pointed_thing
-- check if pointing at a node
if not pt or pt.type ~= "node" then return end
local under = minetest.get_node(pt.under)
-- return if any of the nodes are not registered
if not minetest.registered_nodes[under.name] then return end
-- am I right-clicking on something that has a custom on_place set?
-- thanks to Krock for helping with this issue :)
local def = minetest.registered_nodes[under.name]
if placer and itemstack and def and def.on_rightclick then
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
-- is player planting crop?
local name = placer and placer:get_player_name() or ""
-- check for protection
if minetest.is_protected(pt.under, name) then return end
-- check if pointing at bean pole
if under.name ~= "farming:beanpole" then return end
-- add the node and remove 1 item from the itemstack
minetest.set_node(pt.under, {name = plantname})
minetest.sound_play("default_place_node", {pos = pt.under, gain = 1.0}, true)
if placer or not farming.is_creative(placer:get_player_name()) then
itemstack:take_item()
-- check for refill
if itemstack:get_count() == 0 then
minetest.after(0.20,
farming.refill_plant, placer, "farming:beans", placer:get_wield_index())
end
end
return itemstack
end
-- item/seed
minetest.register_craftitem("farming:beans", {
description = S("Green Beans"),
inventory_image = "farming_beans.png",
groups = {compostability = 48, seed = 2, food_beans = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return place_beans(itemstack, placer, pointed_thing, "farming:beanpole_1")
end
})
farming.add_eatable("farming:beans", 1)
-- beanpole
minetest.register_node("farming:beanpole", {
description = S("Bean Pole (place on soil before planting beans)"),
drawtype = "plantlike",
tiles = {"farming_beanpole.png"},
inventory_image = "farming_beanpole.png",
visual_scale = 1.90,
paramtype = "light",
walkable = false,
buildable_to = true,
sunlight_propagates = true,
drop = "farming:beanpole",
selection_box = farming.select,
groups = {handy = 1, snappy = 3, flammable = 2, attached_node = 1},
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults(),
on_place = function(itemstack, placer, pointed_thing)
local pt = pointed_thing
-- check if pointing at a node
if not pt or pt.type ~= "node" then return end
local under = minetest.get_node(pt.under)
-- return if any of the nodes are not registered
if not minetest.registered_nodes[under.name] then return end
-- am I right-clicking on something that has a custom on_place set?
-- thanks to Krock for helping with this issue :)
local def = minetest.registered_nodes[under.name]
if def and def.on_rightclick then
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
if minetest.is_protected(pt.above, placer:get_player_name()) then
return
end
local nodename = under.name
if minetest.get_item_group(nodename, "soil") < 2 then return end
local top = {
x = pointed_thing.above.x,
y = pointed_thing.above.y + 1,
z = pointed_thing.above.z
}
nodename = minetest.get_node(top).name
if nodename ~= "air" then return end
minetest.set_node(pointed_thing.above, {name = "farming:beanpole"})
if not farming.is_creative(placer:get_player_name()) then
itemstack:take_item()
end
return itemstack
end
})
-- crop definition
local def = {
description = S("Green Beans") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_beanpole_1.png"},
visual_scale = 1.90,
paramtype = "light",
walkable = false,
buildable_to = true,
sunlight_propagates = true,
drop = {
items = {
{items = {"farming:beanpole"}, rarity = 1}
}
},
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 3, not_in_creative_inventory = 1,
attached_node = 1, growing = 1, plant = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:beanpole_1", table.copy(def))
-- stage2
def.tiles = {"farming_beanpole_2.png"}
minetest.register_node("farming:beanpole_2", table.copy(def))
-- stage 3
def.tiles = {"farming_beanpole_3.png"}
minetest.register_node("farming:beanpole_3", table.copy(def))
-- stage 4
def.tiles = {"farming_beanpole_4.png"}
minetest.register_node("farming:beanpole_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_beanpole_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:beanpole"}, rarity = 1},
{items = {"farming:beans 3"}, rarity = 1},
{items = {"farming:beans 2"}, rarity = 2},
{items = {"farming:beans 2"}, rarity = 3}
}
}
minetest.register_node("farming:beanpole_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:beans"] = {
trellis = "farming:beanpole",
crop = "farming:beanpole",
seed = "farming:beans",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- wild green bean bush (this is what you find on the map)
minetest.register_node("farming:beanbush", {
drawtype = "plantlike",
tiles = {"farming_beanbush.png"},
paramtype = "light",
waving = 1,
walkable = false,
buildable_to = true,
sunlight_propagates = true,
drop = {
items = {
{items = {"farming:beans 1"}, rarity = 1},
{items = {"farming:beans 1"}, rarity = 2},
{items = {"farming:beans 1"}, rarity = 3}
}
},
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
compostability = 35, not_in_creative_inventory = 1
},
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
})
-- mapgen
farming.register_decoration("beans",5,"farming:beanbush")

View file

@ -0,0 +1,87 @@
local S = minetest.get_translator("farming")
local a = farming.recipe_items
-- item/seed
minetest.register_craftitem("farming:beetroot", {
description = S("Beetroot"),
inventory_image = "farming_beetroot.png",
groups = {compostability = 48, seed = 2, food_beetroot = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:beetroot_1")
end
})
farming.add_eatable("farming:beetroot", 1)
-- crop definition
local def = {
description = S("Beetroot") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_beetroot_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:beetroot_1", table.copy(def))
-- stage 2
def.tiles = {"farming_beetroot_2.png"}
minetest.register_node("farming:beetroot_2", table.copy(def))
-- stage 3
def.tiles = {"farming_beetroot_3.png"}
minetest.register_node("farming:beetroot_3", table.copy(def))
-- stage 4
def.tiles = {"farming_beetroot_4.png"}
minetest.register_node("farming:beetroot_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_beetroot_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
max_items = 4, items = {
{items = {"farming:beetroot"}, rarity = 1},
{items = {"farming:beetroot"}, rarity = 2},
{items = {"farming:beetroot"}, rarity = 3},
{items = {"farming:beetroot"}, rarity = 4}
}
}
minetest.register_node("farming:beetroot_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:beetroot"] = {
crop = "farming:beetroot",
seed = "farming:beetroot",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
farming.register_decoration("beetroot",5)

View file

@ -0,0 +1,82 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:blackberry", {
description = S("Blackberries"),
inventory_image = "farming_blackberry.png",
groups = {
compostability = 48, seed = 2, food_blackberries = 1, food_blackberry = 1,
food_berry = 1
},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:blackberry_1")
end
})
farming.add_eatable("farming:blackberry", 1)
-- crop definition
local def = {
description = S("Blackberry") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_blackberry_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:blackberry_1", table.copy(def))
-- stage 2
def.tiles = {"farming_blackberry_2.png"}
minetest.register_node("farming:blackberry_2", table.copy(def))
-- stage 3
def.tiles = {"farming_blackberry_3.png"}
minetest.register_node("farming:blackberry_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_blackberry_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {'farming:blackberry 2'}, rarity = 1},
{items = {'farming:blackberry'}, rarity = 2},
{items = {'farming:blackberry'}, rarity = 3},
}
}
minetest.register_node("farming:blackberry_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:blackberry"] = {
crop = "farming:blackberry",
seed = "farming:blackberry",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
farming.register_decoration("blackberry",4)

View file

@ -0,0 +1,81 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:blueberries", {
description = S("Wild Blueberries"),
inventory_image = "farming_blueberries.png",
groups = {
compostability = 48,seed = 2, food_blueberries = 1, food_blueberry = 1,
food_berry = 1
},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:blueberry_1")
end
})
farming.add_eatable("farming:blueberries", 1)
-- ctop definition
local def = {
description = S("Blueberry") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_blueberry_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:blueberry_1", table.copy(def))
-- stage 2
def.tiles = {"farming_blueberry_2.png"}
minetest.register_node("farming:blueberry_2", table.copy(def))
-- stage 3
def.tiles = {"farming_blueberry_3.png"}
minetest.register_node("farming:blueberry_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_blueberry_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:blueberries 2"}, rarity = 1},
{items = {"farming:blueberries"}, rarity = 2},
{items = {"farming:blueberries"}, rarity = 3}
}
}
minetest.register_node("farming:blueberry_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:blueberries"] = {
crop = "farming:blueberry",
seed = "farming:blueberries",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
farming.register_decoration("blueberry",4)

View file

@ -0,0 +1,89 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:cabbage", {
description = S("Cabbage"),
inventory_image = "farming_cabbage.png",
groups = {compostability = 48, seed = 2, food_cabbage = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:cabbage_1")
end
})
farming.add_eatable("farming:cabbage", 1)
-- crop definition
local def = {
description = S("Cabbage") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_cabbage_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:cabbage_1", table.copy(def))
-- stage 2
def.tiles = {"farming_cabbage_2.png"}
minetest.register_node("farming:cabbage_2", table.copy(def))
-- stage 3
def.tiles = {"farming_cabbage_3.png"}
minetest.register_node("farming:cabbage_3", table.copy(def))
-- stage 4
def.tiles = {"farming_cabbage_4.png"}
minetest.register_node("farming:cabbage_4", table.copy(def))
-- stage 5
def.tiles = {"farming_cabbage_5.png"}
minetest.register_node("farming:cabbage_5", table.copy(def))
-- stage 6 (final)
def.tiles = {"farming_cabbage_6.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
max_items = 2, items = {
{items = {"farming:cabbage 2"}, rarity = 1},
{items = {"farming:cabbage 1"}, rarity = 2}
}
}
minetest.register_node("farming:cabbage_6", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:cabbage"] = {
crop = "farming:cabbage",
seed = "farming:cabbage",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 6
}
-- mapgen
farming.register_decoration("cabbage",6)

View file

@ -0,0 +1,109 @@
-- Original textures from PixelBox texture pack
-- https://forum.minetest.net/viewtopic.php?id=4990
local S = minetest.get_translator("farming")
local a = farming.recipe_items
-- item/seed
minetest.register_craftitem("farming:carrot", {
description = S("Carrot"),
inventory_image = "farming_carrot.png",
groups = {compostability = 48, seed = 2, food_carrot = 1},
on_use = minetest.item_eat(4),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:carrot_1")
end
})
farming.add_eatable("farming:carrot", 4)
-- crop definition
local def = {
description = S("Carrot") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_carrot_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:carrot_1", table.copy(def))
-- stage 2
def.tiles = {"farming_carrot_2.png"}
minetest.register_node("farming:carrot_2", table.copy(def))
-- stage 3
def.tiles = {"farming_carrot_3.png"}
minetest.register_node("farming:carrot_3", table.copy(def))
-- stage 4
def.tiles = {"farming_carrot_4.png"}
minetest.register_node("farming:carrot_4", table.copy(def))
-- stage 5
def.tiles = {"farming_carrot_5.png"}
minetest.register_node("farming:carrot_5", table.copy(def))
-- stage 6
def.tiles = {"farming_carrot_6.png"}
minetest.register_node("farming:carrot_6", table.copy(def))
-- stage 7
def.tiles = {"farming_carrot_7.png"}
def.drop = {
items = {
{items = {"farming:carrot"}, rarity = 1},
{items = {"farming:carrot 2"}, rarity = 3}
}
}
minetest.register_node("farming:carrot_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_carrot_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:carrot 2"}, rarity = 1},
{items = {"farming:carrot 3"}, rarity = 2}
}
}
minetest.register_node("farming:carrot_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:carrot"] = {
crop = "farming:carrot",
seed = "farming:carrot",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("carrot",8)

View file

@ -0,0 +1,100 @@
local S = minetest.get_translator("farming")
local a = farming.recipe_items
-- item/seed
minetest.register_craftitem("farming:chili_pepper", {
description = S("Chili Pepper"),
inventory_image = "farming_chili_pepper.png",
groups = {compostability = 48, seed = 2, food_chili_pepper = 1},
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:chili_1")
end
})
farming.add_eatable("farming:chili_pepper", 2)
-- crop definition
local def = {
description = S("Chili Pepper") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_chili_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 4, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:chili_1", table.copy(def))
-- stage 2
def.tiles = {"farming_chili_2.png"}
minetest.register_node("farming:chili_2", table.copy(def))
-- stage 3
def.tiles = {"farming_chili_3.png"}
minetest.register_node("farming:chili_3", table.copy(def))
-- stage 4
def.tiles = {"farming_chili_4.png"}
minetest.register_node("farming:chili_4", table.copy(def))
-- stage 5
def.tiles = {"farming_chili_5.png"}
minetest.register_node("farming:chili_5", table.copy(def))
-- stage 6
def.tiles = {"farming_chili_6.png"}
minetest.register_node("farming:chili_6", table.copy(def))
-- stage 7
def.tiles = {"farming_chili_7.png"}
minetest.register_node("farming:chili_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_chili_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:chili_pepper 3"}, rarity = 1},
{items = {"farming:chili_pepper 2"}, rarity = 2}
}
}
minetest.register_node("farming:chili_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:chili_pepper"] = {
crop = "farming:chili",
seed = "farming:chili_pepper",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("chili",8)

View file

@ -0,0 +1,186 @@
local S = minetest.get_translator("farming")
-- place cocoa
local function place_cocoa(itemstack, placer, pointed_thing, plantname)
local pt = pointed_thing
-- check if pointing at a node
if not pt or pt.type ~= "node" then return end
local under = minetest.get_node(pt.under)
-- return if any of the nodes are not registered
if not minetest.registered_nodes[under.name] then return end
-- am I right-clicking on something that has a custom on_place set?
-- thanks to Krock for helping with this issue :)
local def = minetest.registered_nodes[under.name]
if placer and itemstack and def and def.on_rightclick then
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
-- check if pointing at jungletree
if (under.name ~= "default:jungletree" and under.name ~= "mcl_core:jungletree")
or minetest.get_node(pt.above).name ~= "air" then
return
end
-- is player planting crop?
local name = placer and placer:get_player_name() or ""
-- check for protection
if minetest.is_protected(pt.above, name) then return end
-- add the node and remove 1 item from the itemstack
minetest.set_node(pt.above, {name = plantname})
minetest.sound_play("default_place_node", {pos = pt.above, gain = 1.0}, true)
if placer and not farming.is_creative(placer:get_player_name()) then
itemstack:take_item()
-- check for refill
if itemstack:get_count() == 0 then
minetest.after(0.20, farming.refill_plant, placer,
"farming:cocoa_beans_raw", placer:get_wield_index())
end
end
return itemstack
end
-- item/seed
minetest.register_craftitem("farming:cocoa_beans_raw", {
description = S("Raw Cocoa Beans"),
inventory_image = "farming_cocoa_beans.png^[brighten",
groups = {compostability = 48, seed = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return place_cocoa(itemstack, placer, pointed_thing, "farming:cocoa_1")
end
})
-- crop definition
local def = {
description = S("Cocoa Beans") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_cocoa_1.png"},
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
drop = {},
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, growing = 1,
not_in_creative_inventory = 1, leafdecay = 1, leafdecay_drop = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults(),
-- custom function that returns True when conditions are met
growth_check = function(pos, node_name)
if minetest.find_node_near(pos, 1,
{"default:jungletree", "mcl_core:jungletree"}) then
return true -- place next growth stage
end
return false -- condition not met, skip growth stage until next check
end
}
-- stage 1
minetest.register_node("farming:cocoa_1", table.copy(def))
-- stage 2
def.tiles = {"farming_cocoa_2.png"}
minetest.register_node("farming:cocoa_2", table.copy(def))
-- stage3
def.tiles = {"farming_cocoa_3.png"}
def.drop = {
items = {
{items = {"farming:cocoa_beans_raw 1"}, rarity = 1}
}
}
minetest.register_node("farming:cocoa_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_cocoa_4.png"}
def.groups.growing = nil
def.growth_check = nil
def.drop = {
items = {
{items = {"farming:cocoa_beans_raw 2"}, rarity = 1},
{items = {"farming:cocoa_beans_raw 1"}, rarity = 2},
{items = {"farming:cocoa_beans_raw 1"}, rarity = 4}
}
}
minetest.register_node("farming:cocoa_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:cocoa_beans"] = {
trellis = "default:jungletree",
crop = "farming:cocoa",
seed = "farming:cocoa_beans_raw",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- add random cocoa pods to jungle tree's
local random = math.random -- localise for speed
minetest.register_on_generated(function(minp, maxp)
if maxp.y < 0 then return end
local pos, dir
local cocoa = minetest.find_nodes_in_area(minp, maxp,
{"default:jungletree", "mcl_core:jungletree"})
for n = 1, #cocoa do
pos = cocoa[n]
if minetest.find_node_near(pos, 1,
{"default:jungleleaves", "moretrees:jungletree_leaves_green",
"mcl_core:jungleleaves"}) then
dir = random(80)
if dir == 1 then pos.x = pos.x + 1
elseif dir == 2 then pos.x = pos.x - 1
elseif dir == 3 then pos.z = pos.z + 1
elseif dir == 4 then pos.z = pos.z - 1
end
if dir < 5
and minetest.get_node(pos).name == "air"
and minetest.get_node_light(pos) > 12 then
--print ("Cocoa Pod added at " .. minetest.pos_to_string(pos))
minetest.set_node(pos, {
name = "farming:cocoa_" .. tostring(random(4))
})
end
end
end
end)

View file

@ -0,0 +1,107 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:coffee_beans", {
description = S("Coffee Beans"),
inventory_image = "farming_coffee_beans.png",
groups = {compostability = 48, seed = 2, food_coffee = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:coffee_1")
end
})
-- crop definition
local def = {
description = S("Coffee") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_coffee_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:coffee_1", table.copy(def))
-- stage 2
def.tiles = {"farming_coffee_2.png"}
minetest.register_node("farming:coffee_2", table.copy(def))
-- stage 3
def.tiles = {"farming_coffee_3.png"}
minetest.register_node("farming:coffee_3", table.copy(def))
-- stage 4
def.tiles = {"farming_coffee_4.png"}
minetest.register_node("farming:coffee_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_coffee_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:coffee_beans 2"}, rarity = 1},
{items = {"farming:coffee_beans 2"}, rarity = 2},
{items = {"farming:coffee_beans 2"}, rarity = 3}
}
}
minetest.register_node("farming:coffee_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:coffee"] = {
crop = "farming:coffee",
seed = "farming:coffee_beans",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
local spawn_on = {
"default:dirt_with_dry_grass", "default:dirt_with_rainforest_litter",
"default:dry_dirt_with_dry_grass", "mcl_core:dirt_with_grass",
"ethereal:prairie_dirt"
}
if farming.mapgen == "v6" then
spawn_on = {"default:dirt_with_grass"}
end
minetest.register_decoration({
deco_type = "simple",
place_on = spawn_on,
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.coffee,
spread = {x = 100, y = 100, z = 100},
seed = 12,
octaves = 3,
persist = 0.6
},
y_min = 20, y_max = 55,
decoration = "farming:coffee_5"
})

130
mods/farming/crops/corn.lua Normal file
View file

@ -0,0 +1,130 @@
--[[
Original textures from GeMinecraft
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/wip-mods/1440575-1-2-5-generation-minecraft-beta-1-2-farming-and
]]
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:corn", {
description = S("Corn"),
inventory_image = "farming_corn.png",
groups = {compostability = 45, seed = 2, food_corn = 1},
on_use = minetest.item_eat(3),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:corn_1")
end
})
farming.add_eatable("farming:corn", 3)
-- crop definition
local def = {
description = S("Corn") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_corn_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:corn_1", table.copy(def))
-- stage 2
def.tiles = {"farming_corn_2.png"}
minetest.register_node("farming:corn_2", table.copy(def))
-- stage 3
def.tiles = {"farming_corn_3.png"}
minetest.register_node("farming:corn_3", table.copy(def))
-- stage 4
def.tiles = {"farming_corn_4.png"}
minetest.register_node("farming:corn_4", table.copy(def))
-- stage 5
def.tiles = {"farming_corn_5.png"}
minetest.register_node("farming:corn_5", table.copy(def))
-- stage 6
def.tiles = {"farming_corn_6.png"}
def.visual_scale = 1.9
minetest.register_node("farming:corn_6", table.copy(def))
-- stage 7
def.tiles = {"farming_corn_7.png"}
def.drop = {
items = {
{items = {"farming:corn"}, rarity = 1},
{items = {"farming:corn"}, rarity = 2},
{items = {"farming:corn"}, rarity = 3}
}
}
minetest.register_node("farming:corn_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_corn_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:corn 2"}, rarity = 1},
{items = {"farming:corn 2"}, rarity = 2},
{items = {"farming:corn 2"}, rarity = 2}
}
}
minetest.register_node("farming:corn_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:corn"] = {
crop = "farming:corn",
seed = "farming:corn",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
minetest.register_decoration({
deco_type = "simple",
place_on = {
"default:dirt_with_grass", "mcl_core:dirt_with_grass", "ethereal:prairie_dirt"
},
sidelen = 16,
noise_params = {
offset = 0,
scale = farming.corn,
spread = {x = 100, y = 100, z = 100},
seed = 134,
octaves = 3,
persist = 0.6
},
y_min = 12, y_max = 27,
decoration = "farming:corn_7"
})

View file

@ -0,0 +1,174 @@
local S = minetest.get_translator("farming")
-- seed
minetest.register_node("farming:seed_cotton", {
description = S("Cotton Seed"),
tiles = {"farming_cotton_seed.png"},
inventory_image = "farming_cotton_seed.png",
wield_image = "farming_cotton_seed.png",
drawtype = "signlike",
groups = {
compostability = 48, seed = 1, snappy = 3, attached_node = 1,
flammable = 4, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:cotton_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_cotton")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:cotton_1", param2 = 1})
end
})
-- item
minetest.register_craftitem("farming:cotton", {
description = S("Cotton"),
inventory_image = "farming_cotton.png",
groups = {flammable = 4, compostability = 50}
})
-- crop definition
local def = {
description = S("Cotton") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_cotton_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 4, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:cotton_1", table.copy(def))
-- stage 2
def.tiles = {"farming_cotton_2.png"}
minetest.register_node("farming:cotton_2", table.copy(def))
-- stage 3
def.tiles = {"farming_cotton_3.png"}
minetest.register_node("farming:cotton_3", table.copy(def))
-- stage 4
def.tiles = {"farming_cotton_4.png"}
minetest.register_node("farming:cotton_4", table.copy(def))
-- stage 5
def.tiles = {"farming_cotton_5.png"}
def.drop = {
items = {
{items = {"farming:seed_cotton"}, rarity = 1}
}
}
minetest.register_node("farming:cotton_5", table.copy(def))
-- stage 6
def.tiles = {"farming_cotton_6.png"}
def.drop = {
items = {
{items = {"farming:cotton"}, rarity = 1},
{items = {"farming:cotton"}, rarity = 2}
}
}
minetest.register_node("farming:cotton_6", table.copy(def))
-- stage 7
def.tiles = {"farming_cotton_7.png"}
def.drop = {
items = {
{items = {"farming:cotton"}, rarity = 1},
{items = {"farming:cotton"}, rarity = 2},
{items = {"farming:seed_cotton"}, rarity = 1},
{items = {"farming:seed_cotton"}, rarity = 2}
}
}
minetest.register_node("farming:cotton_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_cotton_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:cotton"}, rarity = 1},
{items = {"farming:cotton"}, rarity = 2},
{items = {"farming:cotton"}, rarity = 3},
{items = {"farming:seed_cotton"}, rarity = 1},
{items = {"farming:seed_cotton"}, rarity = 2},
{items = {"farming:seed_cotton"}, rarity = 3}
}
}
minetest.register_node("farming:cotton_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:cotton"] = {
crop = "farming:cotton",
seed = "farming:seed_cotton",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- wild cotton (this is what you find on the map)
minetest.register_node("farming:cotton_wild", {
description = S("Wild Cotton"),
drawtype = "plantlike",
waving = 1,
tiles = {"farming_cotton_wild.png"},
inventory_image = "farming_cotton_wild.png",
wield_image = "farming_cotton_wild.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {handy = 1, snappy = 3, attached_node = 1, flammable = 4, compostability = 60},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
drop = {
items = {
{items = {"farming:cotton"}, rarity = 2},
{items = {"farming:seed_cotton"}, rarity = 1}
}
},
sounds = farming.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -8 / 16, -6 / 16, 6 / 16, 5 / 16, 6 / 16}
}
})
-- mapgen
farming.register_decoration("cotton",8)

View file

@ -0,0 +1,82 @@
--[[
Original textures from DocFarming mod
https://forum.minetest.net/viewtopic.php?id=3948
]]
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:cucumber", {
description = S("Cucumber"),
inventory_image = "farming_cucumber.png",
groups = {compostability = 48, seed = 2, food_cucumber = 1},
on_use = minetest.item_eat(4),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:cucumber_1")
end
})
farming.add_eatable("farming:cucumber", 4)
-- crop definition
local def = {
description = S("Cucumber") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_cucumber_1.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:cucumber_1", table.copy(def))
-- stage 2
def.tiles = {"farming_cucumber_2.png"}
minetest.register_node("farming:cucumber_2", table.copy(def))
-- stage 3
def.tiles = {"farming_cucumber_3.png"}
minetest.register_node("farming:cucumber_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_cucumber_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:cucumber 2"}, rarity = 1},
{items = {"farming:cucumber 2"}, rarity = 2}
}
}
minetest.register_node("farming:cucumber_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:cucumber"] = {
crop = "farming:cucumber",
seed = "farming:cucumber",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
farming.register_decoration("cucumber",4)

View file

@ -0,0 +1,86 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:eggplant", {
description = S("Eggplant"),
inventory_image = "farming_eggplant.png",
groups = {compostability = 48, seed = 2, food_eggplant = 1},
on_use = minetest.item_eat(3),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:eggplant_1")
end
})
farming.add_eatable("farming:eggplant", 3)
-- crop definition
local def = {
description = S("Eggplant") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_eggplant_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:eggplant_1", table.copy(def))
-- stage 2
def.tiles = {"farming_eggplant_2.png"}
minetest.register_node("farming:eggplant_2", table.copy(def))
-- stage 3
def.tiles = {"farming_eggplant_3.png"}
def.drop = {
items = {
{items = {"farming:eggplant"}, rarity = 1},
{items = {"farming:eggplant"}, rarity = 3}
}
}
minetest.register_node("farming:eggplant_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_eggplant_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:eggplant 2"}, rarity = 1},
{items = {"farming:eggplant 2"}, rarity = 2}
}
}
minetest.register_node("farming:eggplant_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:eggplant"] = {
crop = "farming:eggplant",
seed = "farming:eggplant",
minlight = 7,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
farming.register_decoration("eggplant",4)

View file

@ -0,0 +1,84 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:garlic_clove", {
description = S("Garlic clove"),
inventory_image = "crops_garlic_clove.png",
groups = {compostability = 35, seed = 2, food_garlic_clove = 1, flammable = 3},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:garlic_1")
end
})
-- crop definition
local def = {
description = S("Garlic") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"crops_garlic_plant_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 3, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:garlic_1", table.copy(def))
-- stage 2
def.tiles = {"crops_garlic_plant_2.png"}
minetest.register_node("farming:garlic_2", table.copy(def))
-- stage 3
def.tiles = {"crops_garlic_plant_3.png"}
minetest.register_node("farming:garlic_3", table.copy(def))
-- stage 4
def.tiles = {"crops_garlic_plant_4.png"}
minetest.register_node("farming:garlic_4", table.copy(def))
-- stage 5
def.tiles = {"crops_garlic_plant_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:garlic 3"}, rarity = 1},
{items = {"farming:garlic"}, rarity = 2},
{items = {"farming:garlic"}, rarity = 5}
}
}
minetest.register_node("farming:garlic_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:garlic"] = {
crop = "farming:garlic",
seed = "farming:garlic_clove",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
farming.register_decoration("garlic",5)

View file

@ -0,0 +1,85 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:ginger", {
description = S("Ginger"),
inventory_image = "farming_ginger.png",
groups = {compostability = 48, seed = 2, food_ginger = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:ginger_1")
end
})
farming.add_eatable("farming:ginger", 1)
-- crop definition
local def = {
description = S("Ginger") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_ginger_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:ginger_1", table.copy(def))
-- stage 2
def.tiles = {"farming_ginger_2.png"}
minetest.register_node("farming:ginger_2", table.copy(def))
-- stage 3
def.tiles = {"farming_ginger_3.png"}
def.drop = {
items = {
{items = {"farming:ginger"}, rarity = 1},
{items = {"farming:ginger"}, rarity = 3}
}
}
minetest.register_node("farming:ginger_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_ginger_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:ginger 2"}, rarity = 1},
{items = {"farming:ginger 2"}, rarity = 2}
}
}
minetest.register_node("farming:ginger_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:ginger"] = {
crop = "farming:ginger",
seed = "farming:ginger",
minlight = 5,
maxlight = minetest.LIGHT_MAX,
steps = 4
}
-- mapgen
farming.register_decoration("ginger",5)

View file

@ -0,0 +1,250 @@
local S = minetest.get_translator("farming")
-- place trellis helper
local function place_grapes(itemstack, placer, pointed_thing, plantname)
local pt = pointed_thing
-- check if pointing at a node
if not pt or pt.type ~= "node" then return end
local under = minetest.get_node(pt.under)
-- return if any of the nodes are not registered
if not minetest.registered_nodes[under.name] then return end
-- am I right-clicking on something that has a custom on_place set?
-- thanks to Krock for helping with this issue :)
local def = minetest.registered_nodes[under.name]
if placer and itemstack and def and def.on_rightclick then
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
-- is player planting seed?
local name = placer and placer:get_player_name() or ""
-- check for protection
if minetest.is_protected(pt.under, name) then return end
-- check if pointing at trellis
if under.name ~= "farming:trellis" then return end
-- add the node and remove 1 item from the itemstack
minetest.set_node(pt.under, {name = plantname})
minetest.sound_play("default_place_node", {pos = pt.under, gain = 1.0}, true)
if placer and not farming.is_creative(placer:get_player_name()) then
itemstack:take_item()
-- check for refill
if itemstack:get_count() == 0 then
minetest.after(0.20, farming.refill_plant, placer,
"farming:grapes", placer:get_wield_index()
)
end
end
return itemstack
end
-- item/seed
minetest.register_craftitem("farming:grapes", {
description = S("Grapes"),
inventory_image = "farming_grapes.png",
groups = {compostability = 48, seed = 2, food_grapes = 1},
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return place_grapes(itemstack, placer, pointed_thing, "farming:grapes_1")
end
})
farming.add_eatable("farming:grapes", 2)
-- trellis
minetest.register_node("farming:trellis", {
description = S("Trellis (place on soil before planting grapes)"),
drawtype = "plantlike",
tiles = {"farming_trellis.png"},
inventory_image = "farming_trellis.png",
visual_scale = 1.9,
paramtype = "light",
walkable = false,
buildable_to = true,
sunlight_propagates = true,
drop = "farming:trellis",
selection_box = farming.select,
groups = {handy = 1, snappy = 3, flammable = 2, attached_node = 1},
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults(),
on_place = function(itemstack, placer, pointed_thing)
local pt = pointed_thing
-- check if pointing at a node
if not pt or pt.type ~= "node" then return end
local under = minetest.get_node(pt.under)
-- return if any of the nodes are not registered
if not minetest.registered_nodes[under.name] then return end
-- am I right-clicking on something that has a custom on_place set?
-- thanks to Krock for helping with this issue :)
local def = minetest.registered_nodes[under.name]
if def and def.on_rightclick then
return def.on_rightclick(pt.under, under, placer, itemstack, pt)
end
if minetest.is_protected(pt.above, placer:get_player_name()) then
return
end
local nodename = under.name
if minetest.get_item_group(nodename, "soil") < 2 then return end
local top = {
x = pointed_thing.above.x,
y = pointed_thing.above.y + 1,
z = pointed_thing.above.z
}
nodename = minetest.get_node(top).name
if nodename ~= "air" then return end
minetest.set_node(pointed_thing.above, {name = "farming:trellis"})
if not farming.is_creative(placer:get_player_name()) then
itemstack:take_item()
end
return itemstack
end
})
-- crop definition
local def = {
description = S("Grapes") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_grapes_1.png"},
visual_scale = 1.9,
paramtype = "light",
walkable = false,
buildable_to = true,
sunlight_propagates = true,
drop = {
items = {
{items = {"farming:trellis"}, rarity = 1},
}
},
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 3, not_in_creative_inventory = 1,
attached_node = 1, growing = 1, plant = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:grapes_1", table.copy(def))
-- stage2
def.tiles = {"farming_grapes_2.png"}
minetest.register_node("farming:grapes_2", table.copy(def))
-- stage 3
def.tiles = {"farming_grapes_3.png"}
minetest.register_node("farming:grapes_3", table.copy(def))
-- stage 4
def.tiles = {"farming_grapes_4.png"}
minetest.register_node("farming:grapes_4", table.copy(def))
-- stage 5
def.tiles = {"farming_grapes_5.png"}
minetest.register_node("farming:grapes_5", table.copy(def))
-- stage 6
def.tiles = {"farming_grapes_6.png"}
minetest.register_node("farming:grapes_6", table.copy(def))
-- stage 7
def.tiles = {"farming_grapes_7.png"}
minetest.register_node("farming:grapes_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_grapes_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:trellis"}, rarity = 1},
{items = {"farming:grapes 3"}, rarity = 1},
{items = {"farming:grapes 1"}, rarity = 2},
{items = {"farming:grapes 1"}, rarity = 3}
}
}
minetest.register_node("farming:grapes_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:grapes"] = {
trellis = "farming:trellis",
crop = "farming:grapes",
seed = "farming:grapes",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- wild grape vine (this is what you find on the map)
minetest.register_node("farming:grapebush", {
drawtype = "plantlike",
tiles = {"farming_grapebush.png"},
paramtype = "light",
waving = 1,
walkable = false,
buildable_to = true,
sunlight_propagates = true,
drop = {
items = {
{items = {"farming:grapes 1"}, rarity = 1},
{items = {"farming:grapes 1"}, rarity = 2},
{items = {"farming:grapes 1"}, rarity = 3}
}
},
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, compostability = 35
},
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
})
-- mapgen
farming.register_decoration("grapes",8,"farming:grapebush")

138
mods/farming/crops/hemp.lua Normal file
View file

@ -0,0 +1,138 @@
local S = minetest.get_translator("farming")
-- seed
minetest.register_node("farming:seed_hemp", {
description = S("Hemp Seed"),
tiles = {"farming_hemp_seed.png"},
inventory_image = "farming_hemp_seed.png",
wield_image = "farming_hemp_seed.png",
drawtype = "signlike",
groups = {
handy = 1, compostability = 38, seed = 1, snappy = 3, attached_node = 1,
growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:hemp_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_hemp")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:hemp_1", param2 = 1})
end
})
-- item
minetest.register_craftitem("farming:hemp_leaf", {
description = S("Hemp Leaf"),
inventory_image = "farming_hemp_leaf.png",
groups = {compostability = 35}
})
-- crop definition
local def = {
description = S("Hemp") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_hemp_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:hemp_1", table.copy(def))
-- stage 2
def.tiles = {"farming_hemp_2.png"}
minetest.register_node("farming:hemp_2", table.copy(def))
-- stage 3
def.tiles = {"farming_hemp_3.png"}
minetest.register_node("farming:hemp_3", table.copy(def))
-- stage 4
def.tiles = {"farming_hemp_4.png"}
minetest.register_node("farming:hemp_4", table.copy(def))
-- stage 5
def.tiles = {"farming_hemp_5.png"}
minetest.register_node("farming:hemp_5", table.copy(def))
-- stage 6
def.tiles = {"farming_hemp_6.png"}
def.drop = {
items = {
{items = {"farming:hemp_leaf"}, rarity = 2},
{items = {"farming:seed_hemp"}, rarity = 1}
}
}
minetest.register_node("farming:hemp_6", table.copy(def))
-- stage 7
def.tiles = {"farming_hemp_7.png"}
def.drop = {
items = {
{items = {"farming:hemp_leaf"}, rarity = 1},
{items = {"farming:hemp_leaf"}, rarity = 3},
{items = {"farming:seed_hemp"}, rarity = 1},
{items = {"farming:seed_hemp"}, rarity = 3}
}
}
minetest.register_node("farming:hemp_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_hemp_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:hemp_leaf 2"}, rarity = 1},
{items = {"farming:hemp_leaf"}, rarity = 2},
{items = {"farming:seed_hemp"}, rarity = 1},
{items = {"farming:seed_hemp"}, rarity = 2}
}
}
minetest.register_node("farming:hemp_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:hemp"] = {
crop = "farming:hemp",
seed = "farming:seed_hemp",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("hemp",7)

View file

@ -0,0 +1,83 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:lettuce", {
description = S("Lettuce"),
inventory_image = "farming_lettuce.png",
groups = {compostability = 48, seed = 2, food_lettuce = 1},
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:lettuce_1")
end
})
farming.add_eatable("farming:lettuce", 2)
-- crop definition
local def = {
description = S("Lettuce") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_lettuce_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:lettuce_1", table.copy(def))
-- stage 2
def.tiles = {"farming_lettuce_2.png"}
minetest.register_node("farming:lettuce_2", table.copy(def))
-- stage 3
def.tiles = {"farming_lettuce_3.png"}
minetest.register_node("farming:lettuce_3", table.copy(def))
-- stage 4
def.tiles = {"farming_lettuce_4.png"}
minetest.register_node("farming:lettuce_4", table.copy(def))
-- stage 5
def.tiles = {"farming_lettuce_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:lettuce 2"}, rarity = 1},
{items = {"farming:lettuce 1"}, rarity = 2}
}
}
minetest.register_node("farming:lettuce_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:lettuce"] = {
crop = "farming:lettuce",
seed = "farming:lettuce",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
farming.register_decoration("lettuce",5)

View file

@ -0,0 +1,108 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:melon_slice", {
description = S("Melon Slice"),
inventory_image = "farming_melon_slice.png",
groups = {compostability = 48, seed = 2, food_melon_slice = 1},
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:melon_1")
end
})
farming.add_eatable("farming:melon_slice", 2)
-- crop definition
local def = {
description = S("Melon") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_melon_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:melon_1", table.copy(def))
-- stage 2
def.tiles = {"farming_melon_2.png"}
minetest.register_node("farming:melon_2", table.copy(def))
-- stage 3
def.tiles = {"farming_melon_3.png"}
minetest.register_node("farming:melon_3", table.copy(def))
-- stage 4
def.tiles = {"farming_melon_4.png"}
minetest.register_node("farming:melon_4", table.copy(def))
-- stage 5
def.tiles = {"farming_melon_5.png"}
minetest.register_node("farming:melon_5", table.copy(def))
-- stage 6
def.tiles = {"farming_melon_6.png"}
minetest.register_node("farming:melon_6", table.copy(def))
-- stage 7
def.tiles = {"farming_melon_7.png"}
minetest.register_node("farming:melon_7", table.copy(def))
-- stage 8 (final)
minetest.register_node("farming:melon_8", {
description = S("Melon"),
tiles = {
"farming_melon_top.png",
"farming_melon_bottom.png",
"farming_melon_side.png"
},
groups = {
food_melon = 1, handy = 1, snappy = 3, choppy = 3, oddly_breakable_by_hand = 2,
flammable = 2, plant = 1, compostability = 65
},
is_ground_content = false,
drop = "farming:melon_8",
sounds = farming.node_sound_wood_defaults(),
paramtype2 = "facedir",
on_place = minetest.rotate_node,
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
-- add to registered_plants
farming.registered_plants["farming:melon"] = {
crop = "farming:melon",
seed = "farming:melon_slice",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("melon",8)

103
mods/farming/crops/mint.lua Normal file
View file

@ -0,0 +1,103 @@
local S = minetest.get_translator("farming")
-- seed
minetest.register_node("farming:seed_mint", {
description = S("Mint Seeds"),
tiles = {"farming_mint_seeds.png"},
inventory_image = "farming_mint_seeds.png",
wield_image = "farming_mint_seeds.png",
drawtype = "signlike",
groups = {
compostability = 48, seed = 1, snappy = 3, attached_node = 1, growing = 1,
handy = 1, flammable = 2
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:mint_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_mint")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:mint_1", param2 = 1})
end
})
-- item
minetest.register_craftitem("farming:mint_leaf", {
description = S("Mint Leaf"),
inventory_image = "farming_mint_leaf.png",
groups = {food_mint = 1, flammable = 4, compostability = 48}
})
-- crop definition
local def = {
description = S("Mint") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_mint_1.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:mint_1", table.copy(def))
-- stage 2
def.tiles = {"farming_mint_2.png"}
minetest.register_node("farming:mint_2", table.copy(def))
-- stage 3
def.tiles = {"farming_mint_3.png"}
minetest.register_node("farming:mint_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_mint_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:mint_leaf 2"}, rarity = 1},
{items = {"farming:mint_leaf 2"}, rarity = 2},
{items = {"farming:seed_mint 1"}, rarity = 1},
{items = {"farming:seed_mint 2"}, rarity = 2}
}
}
minetest.register_node("farming:mint_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:mint"] = {
crop = "farming:mint",
seed = "farming:seed_mint",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
farming.register_decoration("mint",4)

View file

@ -0,0 +1,96 @@
--[[
Original textures from Crops Plus mod
Copyright (C) 2018 Grizzly Adam
https://forum.minetest.net/viewtopic.php?f=9&t=19488
]]
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:onion", {
description = S("Onion"),
inventory_image = "crops_onion.png",
groups = {compostability = 48, seed = 2, food_onion = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:onion_1")
end
})
farming.add_eatable("farming:onion", 1)
-- crop definition
local def = {
description = S("Onion") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"crops_onion_plant_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 3, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:onion_1", table.copy(def))
-- stage 2
def.tiles = {"crops_onion_plant_2.png"}
minetest.register_node("farming:onion_2", table.copy(def))
-- stage 3
def.tiles = {"crops_onion_plant_3.png"}
minetest.register_node("farming:onion_3", table.copy(def))
-- stage 4
def.tiles = {"crops_onion_plant_4.png"}
minetest.register_node("farming:onion_4", table.copy(def))
-- stage 5
def.tiles = {"crops_onion_plant_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
max_items = 5, items = {
{items = {"farming:onion"}, rarity = 1},
{items = {"farming:onion"}, rarity = 1},
{items = {"farming:onion"}, rarity = 2},
{items = {"farming:onion"}, rarity = 2},
{items = {"farming:onion"}, rarity = 5}
}
}
minetest.register_node("farming:onion_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:onion"] = {
crop = "farming:onion",
seed = "farming:onion",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
farming.register_decoration("onion",5)

View file

@ -0,0 +1,75 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:parsley", {
description = S("Parsley"),
inventory_image = "farming_parsley.png",
groups = {compostability = 48, seed = 2, food_parsley = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:parsley_1")
end
})
farming.add_eatable("farming:parsley", 1)
-- crop definition
local def = {
description = S("Parsley") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_parsley_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:parsley_1", table.copy(def))
-- stage 2
def.tiles = {"farming_parsley_2.png"}
minetest.register_node("farming:parsley_2", table.copy(def))
-- stage 3 (final)
def.tiles = {"farming_parsley_3.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:parsley 2"}, rarity = 1},
{items = {"farming:parsley"}, rarity = 2},
{items = {"farming:parsley"}, rarity = 3}
}
}
minetest.register_node("farming:parsley_3", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:parsley"] = {
crop = "farming:parsley",
seed = "farming:parsley",
minlight = 13,
maxlight = 15,
steps = 3
}
-- mapgen
farming.register_decoration("parsley",5)

View file

@ -0,0 +1,94 @@
-- Textures for peas and their crop were done by Andrey01
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:pea_pod", {
description = S("Pea Pod"),
inventory_image = "farming_pea_pod.png",
groups = {compostability = 48, seed = 2, food_peas = 1, food_pea_pod = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:pea_1")
end
})
farming.add_eatable("farming:pea_pod", 1)
-- replacement for separate peas item that was removed
minetest.register_alias("farming:peas", "farming:pea_pod")
-- crop definition
local def = {
description = S("Pea") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_pea_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:pea_1", table.copy(def))
-- stage 2
def.tiles = {"farming_pea_2.png"}
minetest.register_node("farming:pea_2", table.copy(def))
-- stage 3
def.tiles = {"farming_pea_3.png"}
minetest.register_node("farming:pea_3", table.copy(def))
-- stage 4
def.tiles = {"farming_pea_4.png"}
minetest.register_node("farming:pea_4", table.copy(def))
-- stage 5 (final)
def.tiles = {"farming_pea_5.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
max_items = 5, items = {
{items = {"farming:pea_pod"}, rarity = 1},
{items = {"farming:pea_pod"}, rarity = 2},
{items = {"farming:pea_pod"}, rarity = 3},
{items = {"farming:pea_pod"}, rarity = 5}
}
}
minetest.register_node("farming:pea_5", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:pea_pod"] = {
crop = "farming:pea",
seed = "farming:pea_pod",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 5
}
-- mapgen
farming.register_decoration("pea",5)

View file

@ -0,0 +1,154 @@
--[[
Original textures from Crops Plus mod
Copyright (C) 2018 Grizzly Adam
https://forum.minetest.net/viewtopic.php?f=9&t=19488
]]
local S = minetest.get_translator("farming")
-- seed
minetest.register_craftitem("farming:peppercorn", {
description = S("Peppercorn"),
inventory_image = "crops_peppercorn.png",
groups = {compostability = 48, seed = 1, food_peppercorn = 1, flammable = 3},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:pepper_1")
end
})
-- green pepper
minetest.register_craftitem("farming:pepper", {
description = S("Green Pepper"),
inventory_image = "crops_pepper.png",
on_use = minetest.item_eat(2),
groups = {food_pepper = 1, compostability = 55}
})
farming.add_eatable("farming:pepper", 2)
-- yellow pepper
minetest.register_craftitem("farming:pepper_yellow", {
description = S("Yellow Pepper"),
inventory_image = "crops_pepper_yellow.png",
on_use = minetest.item_eat(3),
groups = {food_pepper = 1, compostability = 55}
})
farming.add_eatable("farming:pepper_yellow", 3)
-- red pepper
minetest.register_craftitem("farming:pepper_red", {
description = S("Red Pepper"),
inventory_image = "crops_pepper_red.png",
on_use = minetest.item_eat(4),
groups = {food_pepper = 1, compostability = 55}
})
farming.add_eatable("farming:pepper_red", 4)
-- pepper to peppercorn recipe
minetest.register_craft({
output = "farming:peppercorn",
recipe = {{"group:food_pepper"}}
})
-- crop definition
local def = {
description = S("Pepper") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"crops_pepper_plant_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 1,
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 3, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:pepper_1", table.copy(def))
-- stage 2
def.tiles = {"crops_pepper_plant_2.png"}
minetest.register_node("farming:pepper_2", table.copy(def))
-- stage 3
def.tiles = {"crops_pepper_plant_3.png"}
minetest.register_node("farming:pepper_3", table.copy(def))
-- stage 4
def.tiles = {"crops_pepper_plant_4.png"}
minetest.register_node("farming:pepper_4", table.copy(def))
-- stage 5 (green pepper)
def.tiles = {"crops_pepper_plant_5.png"}
def.selection_box = farming.select_final
def.drop = {
max_items = 2, items = {
{items = {"farming:pepper 2"}, rarity = 1},
{items = {"farming:pepper"}, rarity = 2},
{items = {"farming:pepper"}, rarity = 3}
}
}
minetest.register_node("farming:pepper_5", table.copy(def))
-- stage 6 (yellow pepper)
def.tiles = {"crops_pepper_plant_6.png"}
def.drop = {
max_items = 2, items = {
{items = {"farming:pepper_yellow 2"}, rarity = 1},
{items = {"farming:pepper_yellow"}, rarity = 2},
{items = {"farming:pepper_yellow"}, rarity = 3}
}
}
minetest.register_node("farming:pepper_6", table.copy(def))
-- stage 7 (red pepper - final)
def.tiles = {"crops_pepper_plant_7.png"}
def.groups.growing = nil
def.drop = {
max_items = 2, items = {
{items = {"farming:pepper_red 2"}, rarity = 1},
{items = {"farming:pepper_red"}, rarity = 2},
{items = {"farming:pepper_red"}, rarity = 3}
}
}
minetest.register_node("farming:pepper_7", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:pepper"] = {
crop = "farming:pepper",
seed = "farming:peppercorn",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 7
}
-- mapgen
farming.register_decoration("pepper",7)

View file

@ -0,0 +1,119 @@
local S = minetest.get_translator("farming")
-- seed
minetest.register_craftitem("farming:pineapple_top", {
description = S("Pineapple Top"),
inventory_image = "farming_pineapple_top.png",
groups = {compostability = 48, seed = 2, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:pineapple_1")
end
})
-- item
minetest.register_node("farming:pineapple", {
description = S("Pineapple"),
drawtype = "plantlike",
tiles = {"farming_pineapple.png"},
inventory_image = "farming_pineapple.png",
wield_image = "farming_pineapple.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed", fixed = {-0.27, -0.37, -0.27, 0.27, 0.44, 0.27}
},
groups = {
food_pineapple = 1, fleshy = 3, dig_immediate = 3, flammable = 2,
compostability = 65
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false
})
-- crop definition
local def = {
description = S("Pineapple") .. S(" Crop"),
drawtype = "plantlike",
visual_scale = 1.5,
tiles = {"farming_pineapple_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:pineapple_1", table.copy(def))
-- stage 2
def.tiles = {"farming_pineapple_2.png"}
minetest.register_node("farming:pineapple_2", table.copy(def))
-- stage 3
def.tiles = {"farming_pineapple_3.png"}
minetest.register_node("farming:pineapple_3", table.copy(def))
-- stage 4
def.tiles = {"farming_pineapple_4.png"}
minetest.register_node("farming:pineapple_4", table.copy(def))
-- stage 5
def.tiles = {"farming_pineapple_5.png"}
minetest.register_node("farming:pineapple_5", table.copy(def))
-- stage 6
def.tiles = {"farming_pineapple_6.png"}
minetest.register_node("farming:pineapple_6", table.copy(def))
-- stage 7
def.tiles = {"farming_pineapple_7.png"}
minetest.register_node("farming:pineapple_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_pineapple_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:pineapple"}, rarity = 1},
{items = {"farming:pineapple"}, rarity = 2}
}
}
minetest.register_node("farming:pineapple_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:pineapple"] = {
crop = "farming:pineapple",
seed = "farming:pineapple_top",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("pineapple",8)

View file

@ -0,0 +1,102 @@
--[[
Original textures from DocFarming mod
https://forum.minetest.net/viewtopic.php?id=3948
]]
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:potato", {
description = S("Potato"),
inventory_image = "farming_potato.png",
groups = {compostability = 48, seed = 2, food_potato = 1},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:potato_1")
end,
-- 1 in 3 chance of being poisoned
on_use = function(itemstack, user, pointed_thing)
if user then
if math.random(3) == 1 then
return minetest.do_item_eat(-1, nil, itemstack, user, pointed_thing)
else
return minetest.do_item_eat(1, nil, itemstack, user, pointed_thing)
end
end
end
})
farming.add_eatable("farming:potato", 1)
-- crop definition
local def = {
description = S("Potato") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_potato_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:potato_1", table.copy(def))
-- stage 2
def.tiles = {"farming_potato_2.png"}
minetest.register_node("farming:potato_2", table.copy(def))
-- stage 3
def.tiles = {"farming_potato_3.png"}
def.drop = {
items = {
{items = {"farming:potato"}, rarity = 1},
{items = {"farming:potato"}, rarity = 3}
}
}
minetest.register_node("farming:potato_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_potato_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:potato 2"}, rarity = 1},
{items = {"farming:potato 3"}, rarity = 2}
}
}
minetest.register_node("farming:potato_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:potato"] = {
crop = "farming:potato",
seed = "farming:potato",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
farming.register_decoration("potato",3)

View file

@ -0,0 +1,110 @@
local S = minetest.get_translator("farming")
-- seed
minetest.register_craftitem("farming:pumpkin_slice", {
description = S("Pumpkin Slice"),
inventory_image = "farming_pumpkin_slice.png",
groups = {compostability = 48, seed = 2, food_pumpkin_slice = 1},
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:pumpkin_1")
end
})
farming.add_eatable("farming:pumpkin_slice", 2)
-- crop definition
local def = {
description = S("Pumpkin") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_pumpkin_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:pumpkin_1", table.copy(def))
-- stage 2
def.tiles = {"farming_pumpkin_2.png"}
minetest.register_node("farming:pumpkin_2", table.copy(def))
-- stage 3
def.tiles = {"farming_pumpkin_3.png"}
minetest.register_node("farming:pumpkin_3", table.copy(def))
-- stage 4
def.tiles = {"farming_pumpkin_4.png"}
minetest.register_node("farming:pumpkin_4", table.copy(def))
-- stage 5
def.tiles = {"farming_pumpkin_5.png"}
minetest.register_node("farming:pumpkin_5", table.copy(def))
-- stage 6
def.tiles = {"farming_pumpkin_6.png"}
minetest.register_node("farming:pumpkin_6", table.copy(def))
-- stage 7
def.tiles = {"farming_pumpkin_7.png"}
minetest.register_node("farming:pumpkin_7", table.copy(def))
-- stage 8 (final)
minetest.register_node("farming:pumpkin_8", {
description = S("Pumpkin"),
tiles = {
"farming_pumpkin_bottom.png^farming_pumpkin_top.png",
"farming_pumpkin_bottom.png",
"farming_pumpkin_side.png"
},
groups = {
food_pumpkin = 1, snappy = 3, choppy = 3, oddly_breakable_by_hand = 2,
flammable = 2, plant = 1, handy = 1
},
is_ground_content = false,
drop = "farming:pumpkin_8",
sounds = farming.node_sound_wood_defaults(),
paramtype2 = "facedir",
on_place = minetest.rotate_node,
_mcl_hardness = 0.8,
_mcl_blast_resistance = 1
})
minetest.register_alias("farming:pumpkin", "farming:pumpkin_8")
-- add to registered_plants
farming.registered_plants["farming:pumpkin"] = {
crop = "farming:pumpkin",
seed = "farming:pumpkin_slice",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("pumpkin",8)

View file

@ -0,0 +1,82 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:raspberries", {
description = S("Raspberries"),
inventory_image = "farming_raspberries.png",
groups = {
compostability = 48, seed = 2, food_raspberries = 1, food_raspberry = 1,
food_berry = 1
},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:raspberry_1")
end
})
farming.add_eatable("farming:raspberries", 1)
-- crop definition
local def = {
description = S("Raspberry") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_raspberry_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:raspberry_1", table.copy(def))
-- stage 2
def.tiles = {"farming_raspberry_2.png"}
minetest.register_node("farming:raspberry_2", table.copy(def))
-- stage 3
def.tiles = {"farming_raspberry_3.png"}
minetest.register_node("farming:raspberry_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_raspberry_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:raspberries 2"}, rarity = 1},
{items = {"farming:raspberries"}, rarity = 2},
{items = {"farming:raspberries"}, rarity = 3}
}
}
minetest.register_node("farming:raspberry_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:raspberries"] = {
crop = "farming:raspberry",
seed = "farming:raspberries",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
farming.register_decoration("raspberry",4)

View file

@ -0,0 +1,87 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:rhubarb", {
description = S("Rhubarb"),
inventory_image = "farming_rhubarb.png",
groups = {compostability = 48, seed = 2, food_rhubarb = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:rhubarb_1")
end
})
farming.add_eatable("farming:rhubarb", 1)
-- crop definition
local def = {
description = S("Rhubarb") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_rhubarb_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults(),
minlight = 10,
maxlight = 12
}
-- stage 1
minetest.register_node("farming:rhubarb_1", table.copy(def))
-- stage2
def.tiles = {"farming_rhubarb_2.png"}
minetest.register_node("farming:rhubarb_2", table.copy(def))
-- stage3
def.tiles = {"farming_rhubarb_3.png"}
def.drop = {
items = {
{items = {"farming:rhubarb"}, rarity = 1},
}
}
minetest.register_node("farming:rhubarb_3", table.copy(def))
-- stage 4 (final)
def.tiles = {"farming_rhubarb_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:rhubarb 2"}, rarity = 1},
{items = {"farming:rhubarb"}, rarity = 2},
{items = {"farming:rhubarb"}, rarity = 3}
}
}
minetest.register_node("farming:rhubarb_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:rhubarb"] = {
crop = "farming:rhubarb",
seed = "farming:rhubarb",
minlight = 10,
maxlight = 12,
steps = 4
}
-- mapgen
farming.register_decoration("rhubarb",3)

151
mods/farming/crops/rice.lua Normal file
View file

@ -0,0 +1,151 @@
local S = minetest.get_translator("farming")
-- rice seed
minetest.register_node("farming:seed_rice", {
description = S("Rice Seed"),
tiles = {"farming_rice_seed.png"},
inventory_image = "farming_rice_seed.png",
wield_image = "farming_rice_seed.png",
drawtype = "signlike",
groups = {
handy = 1, compostability = 48, seed = 1, snappy = 3, attached_node = 1,
flammable = 4, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:rice_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_rice")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:rice_1", param2 = 3})
end
})
-- rice item
minetest.register_craftitem("farming:rice", {
description = S("Rice"),
inventory_image = "farming_rice.png",
groups = {seed = 2, food_rice = 1, flammable = 2, compostability = 65},
})
-- dry rice seed to give edible rice
minetest.register_craft({
type = "cooking",
cooktime = 1,
output = "farming:rice",
recipe = "farming:seed_rice"
})
-- crop definition
local def = {
description = S("Rice") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_rice_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 4, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:rice_1", table.copy(def))
-- stage 2
def.tiles = {"farming_rice_2.png"}
minetest.register_node("farming:rice_2", table.copy(def))
-- stage 3
def.tiles = {"farming_rice_3.png"}
minetest.register_node("farming:rice_3", table.copy(def))
-- stage 4
def.tiles = {"farming_rice_4.png"}
minetest.register_node("farming:rice_4", table.copy(def))
-- stage 5
def.tiles = {"farming_rice_5.png"}
def.drop = {
items = {
{items = {"farming:rice"}, rarity = 2}
}
}
minetest.register_node("farming:rice_5", table.copy(def))
-- stage 6
def.tiles = {"farming_rice_6.png"}
def.drop = {
items = {
{items = {"farming:rice"}, rarity = 2}
}
}
minetest.register_node("farming:rice_6", table.copy(def))
-- stage 7
def.tiles = {"farming_rice_7.png"}
def.drop = {
items = {
{items = {"farming:seed_rice"}, rarity = 1},
{items = {"farming:seed_rice"}, rarity = 2},
{items = {"farming:seed_rice"}, rarity = 3}
}
}
minetest.register_node("farming:rice_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_rice_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:seed_rice 2"}, rarity = 1},
{items = {"farming:seed_rice 2"}, rarity = 2},
{items = {"farming:seed_rice"}, rarity = 3}
}
}
minetest.register_node("farming:rice_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:rice"] = {
crop = "farming:rice",
seed = "farming:seed_rice",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("rice",8)

View file

@ -0,0 +1,50 @@
local S = minetest.get_translator("farming")
--= A nice addition from Ademant's grain mod :)
-- Rye
farming.register_plant("farming:rye", {
description = S("Rye seed"),
paramtype2 = "meshoptions",
inventory_image = "farming_rye_seed.png",
steps = 8,
place_param2 = 3
})
-- override rye item
minetest.override_item("farming:rye", {
description = S("Rye"),
groups = {food_rye = 1, flammable = 4, compostability = 65}
})
-- override rye crop
minetest.override_item("farming:rye_1", {drop = {}})
minetest.override_item("farming:rye_2", {drop = {}})
minetest.override_item("farming:rye_3", {drop = {}})
-- Oats
farming.register_plant("farming:oat", {
description = S("Oat seed"),
paramtype2 = "meshoptions",
inventory_image = "farming_oat_seed.png",
steps = 8,
place_param2 = 3
})
-- override oat item
minetest.override_item("farming:oat", {
description = S("Oats"),
groups = {food_oats = 1, flammable = 4, compostability = 65}
})
-- override oat crop
minetest.override_item("farming:oat_1", {drop = {}})
minetest.override_item("farming:oat_2", {drop = {}})
minetest.override_item("farming:oat_3", {drop = {}})

112
mods/farming/crops/soy.lua Normal file
View file

@ -0,0 +1,112 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:soy_pod", {
description = S("Soy Pod"),
inventory_image = "farming_soy_pod.png",
groups = {compostability = 48, seed = 2, food_soy = 1, food_soy_pod = 1, flammable = 2},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:soy_1")
end
})
-- replacement for soy beans that was removed
minetest.register_alias("farming:soy_beans", "farming:soy_pod")
-- crop definition
local def = {
description = S("Soy") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_soy_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:soy_1", table.copy(def))
-- stage 2
def.tiles = {"farming_soy_2.png"}
minetest.register_node("farming:soy_2", table.copy(def))
-- stage 3
def.tiles = {"farming_soy_3.png"}
minetest.register_node("farming:soy_3", table.copy(def))
-- stage 4
def.tiles = {"farming_soy_4.png"}
minetest.register_node("farming:soy_4", table.copy(def))
-- stage 5
def.tiles = {"farming_soy_5.png"}
def.drop = {
max_items = 1, items = {
{items = {"farming:soy_pod"}, rarity = 1},
}
}
minetest.register_node("farming:soy_5", table.copy(def))
-- stage 6
def.tiles = {"farming_soy_6.png"}
def.drop = {
max_items = 3, items = {
{items = {"farming:soy_pod"}, rarity = 1},
{items = {"farming:soy_pod"}, rarity = 2},
{items = {"farming:soy_pod"}, rarity = 3}
}
}
minetest.register_node("farming:soy_6", table.copy(def))
-- stage 7 (final)
def.tiles = {"farming_soy_7.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
max_items = 5, items = {
{items = {"farming:soy_pod"}, rarity = 1},
{items = {"farming:soy_pod"}, rarity = 2},
{items = {"farming:soy_pod"}, rarity = 3},
{items = {"farming:soy_pod"}, rarity = 4},
{items = {"farming:soy_pod"}, rarity = 5}
}
}
minetest.register_node("farming:soy_7", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:soy_pod"] = {
crop = "farming:soy",
seed = "farming:soy_pod",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 7
}
-- mapgen
farming.register_decoration("soy",7)

View file

@ -0,0 +1,86 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:spinach", {
description = S("Spinach"),
inventory_image = "farming_spinach.png",
groups = {compostability = 48, seed = 2, food_spinach = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:spinach_1")
end
})
farming.add_eatable("farming:spinach", 1)
-- crop definition
local def = {
description = S("Spinach") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_spinach_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:spinach_1", table.copy(def))
-- stage 2
def.tiles = {"farming_spinach_2.png"}
minetest.register_node("farming:spinach_2", table.copy(def))
-- stage 3
def.tiles = {"farming_spinach_3.png"}
def.drop = {
items = {
{items = {"farming:spinach"}, rarity = 1},
{items = {"farming:spinach"}, rarity = 3}
}
}
minetest.register_node("farming:spinach_3", table.copy(def))
-- stage 4
def.tiles = {"farming_spinach_4.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:spinach 2"}, rarity = 1},
{items = {"farming:spinach 2"}, rarity = 2},
{items = {"farming:spinach 2"}, rarity = 3}
}
}
minetest.register_node("farming:spinach_4", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:spinach"] = {
crop = "farming:spinach",
seed = "farming:spinach",
minlight = 7,
maxlight = farming.max_light,
steps = 4
}
-- mapgen
farming.register_decoration("spinach",4)

View file

@ -0,0 +1,114 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem(":ethereal:strawberry", {
description = S("Strawberry"),
inventory_image = "ethereal_strawberry.png",
groups = {compostability = 48, seed = 2, food_strawberry = 1, food_berry = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "ethereal:strawberry_1")
end,
})
farming.add_eatable("ethereal:strawberry", 1)
-- crop definition
local def = {
description = S("Strawberry") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"ethereal_strawberry_1.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {
type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
},
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
--stage 1
minetest.register_node(":ethereal:strawberry_1", table.copy(def))
-- stage 2
def.tiles = {"ethereal_strawberry_2.png"}
minetest.register_node(":ethereal:strawberry_2", table.copy(def))
-- stage 3
def.tiles = {"ethereal_strawberry_3.png"}
minetest.register_node(":ethereal:strawberry_3", table.copy(def))
-- stage 4
def.tiles = {"ethereal_strawberry_4.png"}
minetest.register_node(":ethereal:strawberry_4", table.copy(def))
-- stage 5
def.tiles = {"ethereal_strawberry_5.png"}
minetest.register_node(":ethereal:strawberry_5", table.copy(def))
-- stage 6
def.tiles = {"ethereal_strawberry_6.png"}
def.drop = {
items = {
{items = {"ethereal:strawberry 1"}, rarity = 2},
{items = {"ethereal:strawberry 2"}, rarity = 3}
}
}
minetest.register_node(":ethereal:strawberry_6", table.copy(def))
-- stage 7
def.tiles = {"ethereal_strawberry_7.png"}
def.drop = {
items = {
{items = {"ethereal:strawberry 1"}, rarity = 1},
{items = {"ethereal:strawberry 2"}, rarity = 3}
}
}
minetest.register_node(":ethereal:strawberry_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"ethereal_strawberry_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"ethereal:strawberry 2"}, rarity = 1},
{items = {"ethereal:strawberry 3"}, rarity = 3}
}
}
minetest.register_node(":ethereal:strawberry_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["ethereal:strawberry"] = {
crop = "ethereal:strawberry",
seed = "ethereal:strawberry",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("strawberry",7)

View file

@ -0,0 +1,132 @@
local S = minetest.get_translator("farming")
-- seed
minetest.register_node("farming:seed_sunflower", {
description = S("Sunflower Seeds"),
tiles = {"farming_sunflower_seeds.png"},
inventory_image = "farming_sunflower_seeds.png",
wield_image = "farming_sunflower_seeds.png",
drawtype = "signlike",
groups = {
compostability = 48, seed = 1, snappy = 3, attached_node = 1, growing = 1,
handy = 1, food_sunflower_seeds = 1, flammable = 2
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:sunflower_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_sunflower")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:sunflower_1", param2 = 1})
end
})
minetest.register_alias("farming:sunflower_seeds", "farming:seed_sunflower")
-- item
minetest.register_craftitem("farming:sunflower", {
description = S("Sunflower"),
inventory_image = "farming_sunflower.png",
groups = {flammable = 2}
})
-- turn item into seeds
minetest.register_craft({
output = "farming:seed_sunflower 5",
recipe = {{"farming:sunflower"}}
})
-- crop definition
local def = {
description = S("Sunflower") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_sunflower_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:sunflower_1", table.copy(def))
-- stage 2
def.tiles = {"farming_sunflower_2.png"}
minetest.register_node("farming:sunflower_2", table.copy(def))
-- stage 3
def.tiles = {"farming_sunflower_3.png"}
minetest.register_node("farming:sunflower_3", table.copy(def))
-- stage 4
def.tiles = {"farming_sunflower_4.png"}
minetest.register_node("farming:sunflower_4", table.copy(def))
-- stage 5
def.tiles = {"farming_sunflower_5.png"}
minetest.register_node("farming:sunflower_5", table.copy(def))
-- stage 6
def.tiles = {"farming_sunflower_6.png"}
def.visual_scale = 1.9
minetest.register_node("farming:sunflower_6", table.copy(def))
-- stage 7
def.tiles = {"farming_sunflower_7.png"}
minetest.register_node("farming:sunflower_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_sunflower_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:sunflower"}, rarity = 1},
{items = {"farming:sunflower"}, rarity = 6}
}
}
minetest.register_node("farming:sunflower_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:sunflower"] = {
crop = "farming:sunflower",
seed = "farming:seed_sunflower",
minlight = 14,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("sunflower",8)

View file

@ -0,0 +1,111 @@
--[[
Textures edited from:
http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-mods/1288375-food-plus-mod-more-food-than-you-can-imagine-v2-9)
]]
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:tomato", {
description = S("Tomato"),
inventory_image = "farming_tomato.png",
groups = {compostability = 45, seed = 2, food_tomato = 1},
on_use = minetest.item_eat(4),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:tomato_1")
end
})
farming.add_eatable("farming:tomato", 4)
-- crop definition
local def = {
description = S("Tomato") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_tomato_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:tomato_1", table.copy(def))
-- stage2
def.tiles = {"farming_tomato_2.png"}
minetest.register_node("farming:tomato_2", table.copy(def))
-- stage 3
def.tiles = {"farming_tomato_3.png"}
minetest.register_node("farming:tomato_3", table.copy(def))
-- stage 4
def.tiles = {"farming_tomato_4.png"}
minetest.register_node("farming:tomato_4", table.copy(def))
-- stage 5
def.tiles = {"farming_tomato_5.png"}
minetest.register_node("farming:tomato_5", table.copy(def))
-- stage 6
def.tiles = {"farming_tomato_6.png"}
minetest.register_node("farming:tomato_6", table.copy(def))
-- stage 7
def.tiles = {"farming_tomato_7.png"}
def.drop = {
items = {
{items = {"farming:tomato"}, rarity = 1},
{items = {"farming:tomato"}, rarity = 3}
}
}
minetest.register_node("farming:tomato_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_tomato_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:tomato 3"}, rarity = 1},
{items = {"farming:tomato 2"}, rarity = 2},
{items = {"farming:tomato 1"}, rarity = 3}
}
}
minetest.register_node("farming:tomato_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:tomato"] = {
crop = "farming:tomato",
seed = "farming:tomato",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("tomato",8)

View file

@ -0,0 +1,109 @@
local S = minetest.get_translator("farming")
-- item/seed
minetest.register_craftitem("farming:vanilla", {
description = S("Vanilla"),
inventory_image = "farming_vanilla.png",
groups = {compostability = 48, seed = 2, food_vanilla = 1},
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:vanilla_1")
end
})
farming.add_eatable("farming:vanilla", 1)
-- crop definition
local def = {
description = S("Vanilla") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_vanilla_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
handy = 1, snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:vanilla_1", table.copy(def))
-- stage 2
def.tiles = {"farming_vanilla_2.png"}
minetest.register_node("farming:vanilla_2", table.copy(def))
-- stage 3
def.tiles = {"farming_vanilla_3.png"}
minetest.register_node("farming:vanilla_3", table.copy(def))
-- stage 4
def.tiles = {"farming_vanilla_4.png"}
minetest.register_node("farming:vanilla_4", table.copy(def))
-- stage 5
def.tiles = {"farming_vanilla_5.png"}
minetest.register_node("farming:vanilla_5", table.copy(def))
-- stage 6
def.tiles = {"farming_vanilla_6.png"}
def.visual_scale = 1.9
minetest.register_node("farming:vanilla_6", table.copy(def))
-- stage 7
def.tiles = {"farming_vanilla_7.png"}
def.drop = {
items = {
{items = {"farming:vanilla"}, rarity = 1},
{items = {"farming:vanilla"}, rarity = 2},
{items = {"farming:vanilla"}, rarity = 3}
}
}
minetest.register_node("farming:vanilla_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_vanilla_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:vanilla 2"}, rarity = 1},
{items = {"farming:vanilla 2"}, rarity = 2},
{items = {"farming:vanilla 2"}, rarity = 2},
{items = {"farming:vanilla 2"}, rarity = 3}
}
}
minetest.register_node("farming:vanilla_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:vanilla"] = {
crop = "farming:vanilla",
seed = "farming:vanilla",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("vanilla",8)

View file

@ -0,0 +1,144 @@
local S = minetest.get_translator("farming")
-- seed
minetest.register_node("farming:seed_wheat", {
description = S("Wheat Seed"),
tiles = {"farming_wheat_seed.png"},
inventory_image = "farming_wheat_seed.png",
wield_image = "farming_wheat_seed.png",
drawtype = "signlike",
groups = {
handy = 1, seed = 1, snappy = 3, attached_node = 1, flammable = 4, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
next_plant = "farming:wheat_1",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:seed_wheat")
end,
on_timer = function(pos, elapsed)
minetest.set_node(pos, {name = "farming:wheat_1", param2 = 3})
end
})
-- item
minetest.register_craftitem("farming:wheat", {
description = S("Wheat"),
inventory_image = "farming_wheat.png",
groups = {food_wheat = 1, flammable = 4}
})
-- crop definition
local def = {
description = S("Wheat") .. S(" Crop"),
drawtype = "plantlike",
tiles = {"farming_wheat_1.png"},
paramtype = "light",
paramtype2 = "meshoptions",
place_param2 = 3,
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
waving = 1,
selection_box = farming.select,
groups = {
snappy = 3, flammable = 4, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
_mcl_hardness = farming.mcl_hardness,
is_ground_content = false,
sounds = farming.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:wheat_1", table.copy(def))
-- stage 2
def.tiles = {"farming_wheat_2.png"}
minetest.register_node("farming:wheat_2", table.copy(def))
-- stage 3
def.tiles = {"farming_wheat_3.png"}
minetest.register_node("farming:wheat_3", table.copy(def))
-- stage 4
def.tiles = {"farming_wheat_4.png"}
minetest.register_node("farming:wheat_4", table.copy(def))
-- stage 5
def.tiles = {"farming_wheat_5.png"}
def.drop = {
items = {
{items = {"farming:wheat"}, rarity = 2},
{items = {"farming:seed_wheat"}, rarity = 2}
}
}
minetest.register_node("farming:wheat_5", table.copy(def))
-- stage 6
def.tiles = {"farming_wheat_6.png"}
def.drop = {
items = {
{items = {"farming:wheat"}, rarity = 2},
{items = {"farming:seed_wheat"}, rarity = 1}
}
}
minetest.register_node("farming:wheat_6", table.copy(def))
-- stage 7
def.tiles = {"farming_wheat_7.png"}
def.drop = {
items = {
{items = {"farming:wheat"}, rarity = 1},
{items = {"farming:wheat"}, rarity = 3},
{items = {"farming:seed_wheat"}, rarity = 1},
{items = {"farming:seed_wheat"}, rarity = 3}
}
}
minetest.register_node("farming:wheat_7", table.copy(def))
-- stage 8 (final)
def.tiles = {"farming_wheat_8.png"}
def.groups.growing = nil
def.selection_box = farming.select_final
def.drop = {
items = {
{items = {"farming:wheat"}, rarity = 1},
{items = {"farming:wheat"}, rarity = 3},
{items = {"farming:seed_wheat"}, rarity = 1},
{items = {"farming:seed_wheat"}, rarity = 3}
}
}
minetest.register_node("farming:wheat_8", table.copy(def))
-- add to registered_plants
farming.registered_plants["farming:wheat"] = {
crop = "farming:wheat",
seed = "farming:seed_wheat",
minlight = farming.min_light,
maxlight = farming.max_light,
steps = 8
}
-- mapgen
farming.register_decoration("wheat",8)