Signed-off-by: tenplus1

This commit is contained in:
tenplus1 2014-11-09 19:06:28 +00:00
commit d95be676d7
162 changed files with 2812 additions and 0 deletions

129
README.txt Normal file
View File

@ -0,0 +1,129 @@
Minetest Farming Redo Mod
by TenPlus1
based on
Minetest 0.4 mod: farming
=========================
License of source code:
-----------------------
Copyright (C) 2012-2013 PilzAdam
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.
License of media (textures):
----------------------------
Created by PilzAdam (License: WTFPL):
farming_bread.png
farming_soil.png
farming_soil_wet.png
farming_soil_wet_side.png
farming_string.png
Created by Calinou (License: CC BY-SA):
farming_tool_bronzehoe.png
farming_tool_steelhoe.png
farming_tool_stonehoe.png
farming_tool_woodhoe.png
farming_tool_mesehoe.png
farming_tool_diamondhoe.png
Created by VanessaE (License: WTFPL):
farming_cotton_seed.png
farming_wheat_seed.png
farming_flour.png
farming_wheat.png
farming_wheat_1.png
farming_wheat_2.png
farming_wheat_3.png
farming_wheat_4.png
farming_wheat_5.png
farming_wheat_5.png
farming_wheat_7.png
farming_wheat_8.png
farming_cotton_1.png
farming_cotton_2.png
farming_cotton_3.png
farming_cotton_4.png
farming_cotton_5.png
farming_cotton_6.png
farming_cotton_7.png
farming_cotton_8.png
Created by Doc (License: WTFPL):
farming_cucumber.png
farming_cucumber_1.png
farming_cucumber_2.png
farming_cucumber_3.png
farming_cucumber_4.png
farming_potato.png
farming_potato_1.png
farming_potato_2.png
farming_potato_3.png
farming_potato_4.png
farming_raspberries.png
farming_raspberry_1.png
farming_raspberry_2.png
farming_raspberry_3.png
farming_raspberry_4.png
Created by Gambit:
default_junglegrass.png
farming_carrot.png
farming_carrot_1.png
farming_carrot_2.png
farming_carrot_3.png
farming_carrot_4.png
farming_carrot_5.png
farming_carrot_6.png
farming_carrot_7.png
farming_carrot_8.png
Created by JoseTheCrafter and edited by TenPlus1:
farming_tomato.png
farming_tomato_1.png
farming_tomato_2.png
farming_tomato_3.png
farming_tomato_4.png
farming_tomato_5.png
farming_tomato_6.png
farming_tomato_7.png
farming_tomato_8.png
Created by GeMinecraft and edited by TenPlus1:
farming_corn.png
farming_corn_cob.png
farming_corn_1.png
farming_corn_2.png
farming_corn_3.png
farming_corn_4.png
farming_corn_5.png
farming_corn_6.png
farming_corn_7.png
farming_corn_8.png
Created by TenPlus1
farming_cocoa_1.png
farming_cocoa_2.png
farming_cocoa_3.png
farming_cocoa_beans.png
farming_cookie.png
farming_raspberry_smoothie.png
farming_rhubarb_1.png
farming_rhubarb_2.png
farming_rhubarb_3.png
farming_rhubarb.png
farming_rhubarb_pie.png

93
blueberry.lua Normal file
View File

@ -0,0 +1,93 @@
--= Blueberries
minetest.register_craftitem("farming:blueberries", {
description = "Blueberries",
inventory_image = "farming_blueberries.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:blueberry_1")
end,
on_use = minetest.item_eat(1),
})
-- Blueberry Muffin (Thanks to sosogirl123 for muffin image in deviantart.com)
minetest.register_craftitem("farming:muffin_blueberry", {
description = "Blueberry Muffin",
inventory_image = "farming_blueberry_muffin.png",
on_use = minetest.item_eat(2),
})
minetest.register_craft({
output = "farming:muffin_blueberry 2",
recipe = {
{"farming:blueberries", "farming:bread", "farming:blueberries"},
}
})
-- Define Blueberry growth stages
minetest.register_node("farming:blueberry_1", {
drawtype = "plantlike",
tiles = {"farming_blueberry_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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:blueberry_2", {
drawtype = "plantlike",
tiles = {"farming_blueberry_2.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:blueberry_3", {
drawtype = "plantlike",
tiles = {"farming_blueberry_3.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Blueberry growth does not have growing=1 so abm never has to check these
minetest.register_node("farming:blueberry_4", {
drawtype = "plantlike",
tiles = {"farming_blueberry_4.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:blueberries 2'},rarity=1},
{items = {'farming:blueberries'},rarity=2},
{items = {'farming:blueberries'},rarity=3},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

157
carrot.lua Normal file
View File

@ -0,0 +1,157 @@
--= Carrot (Original textures from PixelBox texture pack)
-- https://forum.minetest.net/viewtopic.php?id=4990
minetest.register_craftitem("farming:carrot", {
description = "Carrot",
inventory_image = "farming_carrot.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:carrot_1")
end,
on_use = minetest.item_eat(4),
})
-- Golden Carrot
minetest.register_craftitem("farming:carrot_gold", {
description = "Golden Carrot",
inventory_image = "farming_carrot_gold.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
output = "farming:carrot_gold",
recipe = {
{"", "default:gold_lump", ""},
{"default:gold_lump", "farming:carrot", "default:gold_lump"},
{"", "default:gold_lump", ""},
}
})
-- Define Carrot growth stages
minetest.register_node("farming:carrot_1", {
drawtype = "plantlike",
tiles = {"farming_carrot_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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:carrot_2", {
drawtype = "plantlike",
tiles = {"farming_carrot_2.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:carrot_3", {
drawtype = "plantlike",
tiles = {"farming_carrot_3.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:carrot_4", {
drawtype = "plantlike",
tiles = {"farming_carrot_4.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:carrot_5", {
drawtype = "plantlike",
tiles = {"farming_carrot_5.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:carrot_6", {
drawtype = "plantlike",
tiles = {"farming_carrot_6.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:carrot_7", {
drawtype = "plantlike",
tiles = {"farming_carrot_7.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:carrot'},rarity=1},
{items = {'farming:carrot 2'},rarity=3},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Carrot growth doesnnot have growing=1 so abm never has to check these
minetest.register_node("farming:carrot_8", {
drawtype = "plantlike",
tiles = {"farming_carrot_8.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:carrot 2'},rarity=1},
{items = {'farming:carrot 3'},rarity=2},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

157
cocoa.lua Normal file
View File

@ -0,0 +1,157 @@
-- Override default jungletree, add tree=2 for cocoa placement
minetest.override_item("default:jungletree", {groups = {tree=2,choppy=2,oddly_breakable_by_hand=1,flammable=2}})
-- Place Cocoa
function place_cocoa(itemstack, placer, pointed_thing, plantname)
local pt = pointed_thing
-- check if pointing at a node
if not pt and pt.type ~= "node" then
return
end
local under = minetest.get_node(pt.under)
-- return if any of the nodes is not registered
if not minetest.registered_nodes[under.name] then
return
end
-- check if pointing at jungletree
if minetest.get_item_group(under.name, "tree") ~= 2 then
return
end
-- add the node and remove 1 item from the itemstack
minetest.add_node(pt.above, {name=plantname})
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
end
return itemstack
end
--= Cocoa
minetest.register_craftitem("farming:cocoa_beans", {
description = "Cocoa Beans",
inventory_image = "farming_cocoa_beans.png",
on_place = function(itemstack, placer, pointed_thing)
return place_cocoa(itemstack, placer, pointed_thing, "farming:cocoa_1")
end,
})
minetest.register_craft( {
output = "dye:brown 2",
recipe = {
{ "farming:cocoa_beans" },
}
})
-- Cookie
minetest.register_craftitem("farming:cookie", {
description = "Cookie",
inventory_image = "farming_cookie.png",
on_use = minetest.item_eat(2),
})
minetest.register_craft( {
output = "farming:cookie 8",
recipe = {
{ "farming:wheat", "farming:cocoa_beans", "farming:wheat" },
}
})
-- Bar of Dark Chocolate (Thanks to Ice Pandora for her deviantart.com chocolate tutorial)
minetest.register_craftitem("farming:chocolate_dark", {
description = "Bar of Dark Chocolate",
inventory_image = "farming_chocolate_dark.png",
on_use = minetest.item_eat(3),
})
minetest.register_craft( {
output = "farming:chocolate_dark",
recipe = {
{ "farming:cocoa_beans", "farming:cocoa_beans", "farming:cocoa_beans" },
}
})
-- Define Coffee growth stages
minetest.register_node("farming:cocoa_1", {
drawtype = "plantlike",
tiles = {"farming_cocoa_1.png"},
paramtype = "light",
walkable = true,
drop = {
items = {
{items = {'farming:cocoa_beans 1'},rarity=2},
}
},
selection_box = {type = "fixed",fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:cocoa_2", {
drawtype = "plantlike",
tiles = {"farming_cocoa_2.png"},
paramtype = "light",
walkable = true,
drop = {
items = {
{items = {'farming:cocoa_beans 1'},rarity=1},
}
},
selection_box = {type = "fixed",fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Cocoa growth does not have growing=1 so abm never has to check these
minetest.register_node("farming:cocoa_3", {
drawtype = "plantlike",
tiles = {"farming_cocoa_3.png"},
paramtype = "light",
walkable = true,
drop = {
items = {
{items = {'farming:cocoa_beans 2'},rarity=1},
{items = {'farming:cocoa_beans 1'},rarity=2},
}
},
selection_box = {type = "fixed",fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Abm to add random Cocoa Pod to Jungle Tree trunks
minetest.register_abm({
nodenames = {"default:jungletree"},
neighbors = {"default:jungleleaves", "moretrees:jungletree_leaves_green"},
interval = 80,
chance = 20,
action = function(pos, node)
local dir = math.random(1,50)
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
else return
end
if minetest.get_node(pos).name == "air" and minetest.get_node_light(pos) > 11 then
-- print ("COCOA", pos.x, pos.y, pos.z)
minetest.set_node(pos,{name="farming:cocoa_"..tostring(math.random(1,3))})
end
end,
})

186
coffee.lua Normal file
View File

@ -0,0 +1,186 @@
--= Coffee
minetest.register_craftitem("farming:coffee_beans", {
description = "Coffee Beans",
inventory_image = "farming_coffee_beans.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:coffee_1")
end,
})
--= Glass Cup
--minetest.register_craftitem("farming:drinking_cup", {
-- description = "Drinking Cup",
-- inventory_image = "vessels_drinking_cup.png",
--})
minetest.register_node("farming:drinking_cup", {
description = "Drinking Cup (empty)",
drawtype = "plantlike",
tiles = {"vessels_drinking_cup.png"},
inventory_image = "vessels_drinking_cup.png",
wield_image = "vessels_drinking_cup.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25}
},
groups = {vessel=1,dig_immediate=3,attached_node=1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craft( {
output = "farming:drinking_cup 5",
recipe = {
{ "default:glass", "", "default:glass" },
{"", "default:glass",""},
}
})
--= Cold Cup of Coffee
--minetest.register_craftitem("farming:coffee_cup", {
-- description = "Cold Cup of Coffee",
-- inventory_image = "farming_coffee_cup.png",
-- on_use = minetest.item_eat(2, "farming:drinking_cup"),
--})
minetest.register_node("farming:coffee_cup", {
description = "Cup of Coffee (cold)",
drawtype = "plantlike",
tiles = {"farming_coffee_cup.png"},
inventory_image = "farming_coffee_cup.png",
wield_image = "farming_coffee_cup.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25}
},
groups = {vessel=1,dig_immediate=3,attached_node=1},
on_use = minetest.item_eat(2, "farming:drinking_cup"),
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craft( {
output = "farming:coffee_cup",
recipe = {
{"farming:drinking_cup", "farming:coffee_beans","bucket:bucket_water"},
{"","",""},
{"","",""}
},
replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}}
})
minetest.register_craft({
type = "cooking",
cooktime = 5,
output = "farming:coffee_cup_hot",
recipe = "farming:coffee_cup"
})
--= Hot Cup of Coffee
--minetest.register_craftitem("farming:coffee_cup_hot", {
-- description = "Hot Cup of Coffee",
-- inventory_image = "farming_coffee_cup_hot.png",
-- on_use = minetest.item_eat(3, "farming:drinking_cup"),
--})
minetest.register_node("farming:coffee_cup_hot", {
description = "Cup of Coffee (hot)",
drawtype = "plantlike",
tiles = {"farming_coffee_cup_hot.png"},
inventory_image = "farming_coffee_cup_hot.png",
wield_image = "farming_coffee_cup_hot.png",
paramtype = "light",
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.25, 0.25}
},
groups = {vessel=1,dig_immediate=3,attached_node=1},
on_use = minetest.item_eat(3, "farming:drinking_cup"),
sounds = default.node_sound_glass_defaults(),
})
-- Define Coffee growth stages
minetest.register_node("farming:coffee_1", {
drawtype = "plantlike",
tiles = {"farming_coffee_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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:coffee_2", {
drawtype = "plantlike",
tiles = {"farming_coffee_2.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:coffee_3", {
drawtype = "plantlike",
tiles = {"farming_coffee_3.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:coffee_4", {
drawtype = "plantlike",
tiles = {"farming_coffee_4.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Coffee growth doesnnot have growing=1 so abm never has to check these
minetest.register_node("farming:coffee_5", {
drawtype = "plantlike",
tiles = {"farming_coffee_5.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:coffee_beans 2'},rarity=1},
{items = {'farming:coffee_beans 2'},rarity=2},
{items = {'farming:coffee_beans 2'},rarity=3},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

97
compatibility.lua Normal file
View File

@ -0,0 +1,97 @@
-- is Ethereal mod installed?
local eth = minetest.get_modpath("ethereal") or nil
-- Banana
if eth then
minetest.register_alias("farming_plus:banana_sapling", "ethereal:banana_tree_sapling")
minetest.register_alias("farming_plus:banana_leaves", "ethereal:bananaleaves")
minetest.register_alias("farming_plus:banana", "ethereal:banana")
else
minetest.register_alias("farming_plus:banana_sapling", "default:sapling")
minetest.register_alias("farming_plus:banana_leaves", "default:leaves")
minetest.register_alias("farming_plus:banana", "default:apple")
end
-- Carrot
minetest.register_alias("farming_plus:carrot_seed", "farming:carrot")
minetest.register_alias("farming_plus:carrot_1", "farming:carrot_1")
minetest.register_alias("farming_plus:carrot_2", "farming:carrot_4")
minetest.register_alias("farming_plus:carrot_3", "farming:carrot_6")
minetest.register_alias("farming_plus:carrot", "farming:carrot_8")
-- Cocoa
minetest.register_alias("farming_plus:cocoa_sapling", "farming:cocoa_beans")
minetest.register_alias("farming_plus:cocoa_leaves", "default:leaves")
minetest.register_alias("farming_plus:cocoa", "default:apple")
minetest.register_alias("farming_plus:cocoa_bean", "farming:cocoa_beans")
-- Orange
minetest.register_alias("farming_plus:orange_1", "farming:tomato_1")
minetest.register_alias("farming_plus:orange_2", "farming:tomato_4")
minetest.register_alias("farming_plus:orange_3", "farming:tomato_6")
minetest.register_alias("farming_plus:orange", "farming:tomato_8")
if eth then
minetest.register_alias("farming_plus:orange_item", "ethereal:orange")
minetest.register_alias("farming_plus:orange_seed", "ethereal:orange_tree_sapling")
else
minetest.register_alias("farming_plus:orange_item", "default:apple")
minetest.register_alias("farming_plus:orange_seed", "default:sapling")
end
-- Potato
minetest.register_alias("farming_plus:potato_item", "farming:potato")
minetest.register_alias("farming_plus:potato_1", "farming:potato_1")
minetest.register_alias("farming_plus:potato_2", "farming:potato_2")
minetest.register_alias("farming_plus:potato", "farming:potato_3")
minetest.register_alias("farming_plus:potato_seed", "farming:potato")
-- Pumpkin
minetest.register_alias("farming:pumpkin_seed", "farming:pumpkin_slice")
minetest.register_alias("farming:pumpkin_face", "farming:pumpkin")
minetest.register_alias("farming:pumpkin_face_light", "farming:jackolantern")
minetest.register_alias("farming:big_pumpkin", "farming:pumpkin")
minetest.register_alias("farming:big_pumpkin_side", "air")
minetest.register_alias("farming:big_pumpkin_corner", "air")
minetest.register_alias("farming:big_pumpkin_top", "air")
minetest.register_alias("farming:scarecrow", "farming:pumpkin")
minetest.register_alias("farming:scarecrow_bottom", "default:fence_wood")
minetest.register_alias("farming:scarecrow_light", "farming:jackolantern")
minetest.register_alias("farming:pumpkin_flour", "farming:pumpkin_dough")
-- Rhubarb
minetest.register_alias("farming_plus:rhubarb_seed", "farming:rhubarb")
minetest.register_alias("farming_plus:rhubarb_1", "farming:rhubarb_1")
minetest.register_alias("farming_plus:rhubarb_2", "farming:rhubarb_2")
minetest.register_alias("farming_plus:rhubarb", "farming:rhubarb_3")
minetest.register_alias("farming_plus:rhubarb_item", "farming:rhubarb")
-- Strawberry
if eth then
minetest.register_alias("farming_plus:strawberry_item", "ethereal:strawberry")
minetest.register_alias("farming_plus:strawberry_seed", "ethereal:strawberry")
minetest.register_alias("farming_plus:strawberry_1", "ethereal:strawberry_1")
minetest.register_alias("farming_plus:strawberry_2", "ethereal:strawberry_3")
minetest.register_alias("farming_plus:strawberry_3", "ethereal:strawberry_5")
minetest.register_alias("farming_plus:strawberry", "ethereal:strawberry_7")
else
minetest.register_alias("farming_plus:strawberry_item", "farming:raspberries")
minetest.register_alias("farming_plus:strawberry_seed", "farming:raspberries")
minetest.register_alias("farming_plus:strawberry_1", "farming:raspberry_1")
minetest.register_alias("farming_plus:strawberry_2", "farming:raspberry_2")
minetest.register_alias("farming_plus:strawberry_3", "farming:raspberry_3")
minetest.register_alias("farming_plus:strawberry", "farming:raspberry_4")
end
-- Tomato
minetest.register_alias("farming_plus:tomato_seed", "farming:tomato")
minetest.register_alias("farming_plus:tomato_item", "farming:tomato")
minetest.register_alias("farming_plus:tomato_1", "farming:tomato_2")
minetest.register_alias("farming_plus:tomato_2", "farming:tomato_4")
minetest.register_alias("farming_plus:tomato_3", "farming:tomato_6")
minetest.register_alias("farming_plus:tomato", "farming:tomato_8")
-- Weed
minetest.register_alias("farming:weed", "default:grass_2")

175
corn.lua Normal file
View File

@ -0,0 +1,175 @@
--= Corn (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
minetest.register_craftitem("farming:corn", {
description = "Corn",
inventory_image = "farming_corn.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:corn_1")
end,
on_use = minetest.item_eat(3),
})
--= Corn on the Cob (Texture by TenPlus1)
minetest.register_craftitem("farming:corn_cob", {
description = "Corn on the Cob",
inventory_image = "farming_corn_cob.png",
on_use = minetest.item_eat(5),
})
minetest.register_craft({
type = "cooking",
cooktime = 10,
output = "farming:corn_cob",
recipe = "farming:corn"
})
--= Ethanol (Thanks to JKMurray for this idea)
minetest.register_craftitem("farming:bottle_ethanol", {
description = "Bottle of Ethanol",
inventory_image = "farming_bottle_ethanol.png",
})
minetest.register_craft( {
output = "farming:bottle_ethanol",
recipe = {
{ "vessels:glass_bottle", "farming:corn", "farming:corn"},
{ "farming:corn", "farming:corn", "farming:corn"},
}
})
minetest.register_craft({
type = "fuel",
recipe = "farming:bottle_ethanol",
burntime = 60,
replacements = {{ "farming:bottle_ethanol", "vessels:glass_bottle"}}
})
-- Define Corn growth stages
minetest.register_node("farming:corn_1", {
drawtype = "plantlike",
tiles = {"farming_corn_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:corn_2", {
drawtype = "plantlike",
tiles = {"farming_corn_2.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:corn_3", {
drawtype = "plantlike",
tiles = {"farming_corn_3.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:corn_4", {
drawtype = "plantlike",
tiles = {"farming_corn_4.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:corn_5", {
drawtype = "plantlike",
tiles = {"farming_corn_5.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:corn_6", {
drawtype = "plantlike",
tiles = {"farming_corn_6.png"},
visual_scale = 1.45,
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:corn_7", {
drawtype = "plantlike",
tiles = {"farming_corn_7.png"},
visual_scale = 1.45,
paramtype = "light",
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:corn'},rarity=1},
{items = {'farming:corn'},rarity=2},
{items = {'farming:corn'},rarity=3},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Corn growth doesnnot have growing=1 so abm never has to check these
minetest.register_node("farming:corn_8", {
drawtype = "plantlike",
tiles = {"farming_corn_8.png"},
visual_scale = 1.45,
paramtype = "light",
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:corn 2'},rarity=1},
{items = {'farming:corn 2'},rarity=2},
{items = {'farming:corn 2'},rarity=2},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

183
cotton.lua Normal file
View File

@ -0,0 +1,183 @@
-- Cotton Seed
--minetest.register_craftitem("farming:seed_cotton", {
-- description = "Cotton Seed",
-- inventory_image = "farming_cotton_seed.png",
-- on_place = function(itemstack, placer, pointed_thing)
-- return farming.place_seed(itemstack, placer, pointed_thing, "farming:cotton_1")
-- end,
--})
minetest.register_node("farming:seed_cotton", {
description = "Cotton Seed",
tiles = {"farming_cotton_seed.png"},
inventory_image = "farming_cotton_seed.png",
wield_image = "farming_cotton_seed.png",
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1},
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = {type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:cotton_1")
end,
})
-- Cotton
minetest.register_craftitem("farming:cotton", {
description = "Cotton",
inventory_image = "farming_cotton.png",
})
minetest.register_alias("farming:string", "farming:cotton")
-- String to Wool
minetest.register_craft({
output = "wool:white",
recipe = {
{"farming:string", "farming:string"},
{"farming:string", "farming:string"},
}
})
-- Define Cotton growth stages
minetest.register_node("farming:cotton_1", {
drawtype = "plantlike",
tiles = {"farming_cotton_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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:cotton_2", {
drawtype = "plantlike",
tiles = {"farming_cotton_2.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:cotton_3", {
drawtype = "plantlike",
tiles = {"farming_cotton_3.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:cotton_4", {
drawtype = "plantlike",
tiles = {"farming_cotton_4.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:cotton_5", {
drawtype = "plantlike",
tiles = {"farming_cotton_5.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
drop = {
items = {
{items = {"farming:seed_cotton"},rarity=1},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:cotton_6", {
drawtype = "plantlike",
tiles = {"farming_cotton_6.png"},
paramtype = "light",
waving = 1,
walkable = false,
buildable_to = true,
drop = {
items = {
{items = {"farming:cotton"},rarity=1},
{items = {"farming:cotton"},rarity=2},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:cotton_7", {
drawtype = "plantlike",
tiles = {"farming_cotton_7.png"},
paramtype = "light",
waving = 1,
walkable = false,
buildable_to = true,
drop = {
items = {
{items = {"farming:cotton"},rarity=1},
{items = {"farming:cotton"},rarity=2},
{items = {"farming:seed_cotton"},rarity=1},
{items = {"farming:seed_cotton"},rarity=2},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Define last stage of Cotton growth separate and without growing=1 so abm never has to check these
minetest.register_node("farming:cotton_8", {
drawtype = "plantlike",
tiles = {"farming_cotton_8.png"},
paramtype = "light",
waving = 1,
walkable = false,
buildable_to = true,
drop = {
items = {
{items = {"farming:string"},rarity=1},
{items = {"farming:string"},rarity=2},
{items = {"farming:string"},rarity=3},
{items = {"farming:seed_cotton"},rarity=1},
{items = {"farming:seed_cotton"},rarity=2},
{items = {"farming:seed_cotton"},rarity=3},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

74
cucumber.lua Normal file
View File

@ -0,0 +1,74 @@
--= Cucumber (Original textures from DocFarming mod)
-- https://forum.minetest.net/viewtopic.php?id=3948
minetest.register_craftitem("farming:cucumber", {
description = "Cucumber",
inventory_image = "farming_cucumber.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:cucumber_1")
end,
on_use = minetest.item_eat(4),
})
-- Define Cucumber growth stages
minetest.register_node("farming:cucumber_1", {
drawtype = "plantlike",
tiles = {"farming_cucumber_1.png"},
paramtype = "light",
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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:cucumber_2", {
drawtype = "plantlike",
tiles = {"farming_cucumber_2.png"},
paramtype = "light",
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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:cucumber_3", {
drawtype = "plantlike",
tiles = {"farming_cucumber_3.png"},
paramtype = "light",
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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Cucumber growth doesnnot have growing=1 so abm never has to check these
minetest.register_node("farming:cucumber_4", {
drawtype = "plantlike",
tiles = {"farming_cucumber_4.png"},
paramtype = "light",
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:cucumber'},rarity=1},
{items = {'farming:cucumber 2'},rarity=2},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

2
depends.txt Normal file
View File

@ -0,0 +1,2 @@
default
wool

45
donut.lua Normal file
View File

@ -0,0 +1,45 @@
-- Donut (thanks to Bockwurst for making the donut images)
minetest.register_craftitem("farming:donut", {
description = "Donut",
inventory_image = "farming_donut.png",
on_use = minetest.item_eat(4),
})
minetest.register_craft({
output = "farming:donut 3",
recipe = {
{'', 'farming:wheat', ''},
{'farming:wheat', '', 'farming:wheat'},
{'', 'farming:wheat', ''},
}
})
-- Chocolate Donut
minetest.register_craftitem("farming:donut_chocolate", {
description = "Chocolate Donut",
inventory_image = "farming_donut_chocolate.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
output = "farming:donut_chocolate",
recipe = {
{'farming:cocoa_beans'},
{'farming:donut'},
}
})
-- Apple Donut
minetest.register_craftitem("farming:donut_apple", {
description = "Apple Donut",
inventory_image = "farming_donut_apple.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
output = "farming:donut_apple",
recipe = {
{'default:apple'},
{'farming:donut'},
}
})

28
grass.lua Normal file
View File

@ -0,0 +1,28 @@
-- Override default grass and have it drop Wheat Seeds
for i=1,5 do
minetest.override_item("default:grass_"..i, {
drop = {
max_items = 1,
items = {
{items = {'farming:seed_wheat'},rarity = 5},
{items = {'default:grass_1'}},
}
},
})
end
-- Override default Jungle Grass and have it drop Cotton Seeds
minetest.override_item("default:junglegrass", {
drop = {
max_items = 1,
items = {
{items = {'farming:seed_cotton'},rarity = 8},
{items = {'default:junglegrass'}},
}
},
})

150
hoes.lua Normal file
View File

@ -0,0 +1,150 @@
-- Hoe registration function
farming.register_hoe = function(name, def)
-- Check for : prefix (register new hoes in your mod's namespace)
if name:sub(1,1) ~= ":" then
name = ":" .. name
end
-- Check def table
if def.description == nil then
def.description = "Hoe"
end
if def.inventory_image == nil then
def.inventory_image = "unknown_item.png"
end
if def.recipe == nil then
def.recipe = {
{"air","air",""},
{"","group:stick",""},
{"","group:stick",""}
}
end
if def.max_uses == nil then
def.max_uses = 30
end
-- Register the tool
minetest.register_tool(name, {
description = def.description,
inventory_image = def.inventory_image,
on_use = function(itemstack, user, pointed_thing)
return farming.hoe_on_use(itemstack, user, pointed_thing, def.max_uses)
end
})
-- Register its recipe
minetest.register_craft({
output = name:gsub(":", "", 1),
recipe = def.recipe
})
end
-- Turns dirt with group soil=1 into soil
function farming.hoe_on_use(itemstack, user, pointed_thing, uses)
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)
local upos = pointed_thing.under
if minetest.is_protected(upos, user:get_player_name()) then
minetest.record_protection_violation(upos, user:get_player_name())
return
end
local p = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z}
local above = minetest.get_node(p)
-- return if any of the nodes is not registered
if not minetest.registered_nodes[under.name]
or not minetest.registered_nodes[above.name] then
return
end
-- check if the node above the pointed thing is air
if above.name ~= "air" then
return
end
-- check if pointing at dirt
if minetest.get_item_group(under.name, "soil") ~= 1 then
return
end
-- turn the node into soil, wear out item and play sound
minetest.set_node(pt.under, {name="farming:soil"})
minetest.sound_play("default_dig_crumbly", {pos = pt.under, gain = 0.5,})
itemstack:add_wear(65535/(uses-1))
return itemstack
end
-- Define Hoes
farming.register_hoe(":farming:hoe_wood", {
description = "Wooden Hoe",
inventory_image = "farming_tool_woodhoe.png",
max_uses = 30,
recipe = {
{"group:wood", "group:wood"},
{"", "group:stick"},
{"", "group:stick"},
}
})
farming.register_hoe(":farming:hoe_stone", {
description = "Stone Hoe",
inventory_image = "farming_tool_stonehoe.png",
max_uses = 90,
recipe = {
{"group:stone", "group:stone"},
{"", "group:stick"},
{"", "group:stick"},
}
})
farming.register_hoe(":farming:hoe_steel", {
description = "Steel Hoe",
inventory_image = "farming_tool_steelhoe.png",
max_uses = 200,
recipe = {
{"default:steel_ingot", "default:steel_ingot"},
{"", "group:stick"},
{"", "group:stick"},
}
})
farming.register_hoe(":farming:hoe_bronze", {
description = "Bronze Hoe",
inventory_image = "farming_tool_bronzehoe.png",
max_uses = 220,
recipe = {
{"default:bronze_ingot", "default:bronze_ingot"},
{"", "group:stick"},
{"", "group:stick"},
}
})
farming.register_hoe(":farming:hoe_mese", {
description = "Mese Hoe",
inventory_image = "farming_tool_mesehoe.png",
max_uses = 350,
recipe = {
{"default:mese_crystal", "default:mese_crystal"},
{"", "group:stick"},
{"", "group:stick"},
}
})
farming.register_hoe(":farming:hoe_diamond", {
description = "Diamond Hoe",
inventory_image = "farming_tool_diamondhoe.png",
max_uses = 500,
recipe = {
{"default:diamond", "default:diamond"},
{"", "group:stick"},
{"", "group:stick"},
}
})

195
init.lua Normal file
View File

@ -0,0 +1,195 @@
--[[
Minetest Farming Redo Mod 1.10 (4th November 2014)
by TenPlus1
]]
farming = {}
farming.mod = "redo"
farming.hoe_on_use = default.hoe_on_use
dofile(minetest.get_modpath("farming").."/soil.lua")
dofile(minetest.get_modpath("farming").."/hoes.lua")
dofile(minetest.get_modpath("farming").."/grass.lua")
dofile(minetest.get_modpath("farming").."/wheat.lua")
dofile(minetest.get_modpath("farming").."/cotton.lua")
dofile(minetest.get_modpath("farming").."/carrot.lua")
dofile(minetest.get_modpath("farming").."/potato.lua")
dofile(minetest.get_modpath("farming").."/tomato.lua")
dofile(minetest.get_modpath("farming").."/cucumber.lua")
dofile(minetest.get_modpath("farming").."/corn.lua")
dofile(minetest.get_modpath("farming").."/coffee.lua")
dofile(minetest.get_modpath("farming").."/melon.lua")
dofile(minetest.get_modpath("farming").."/sugar.lua")
dofile(minetest.get_modpath("farming").."/pumpkin.lua")
dofile(minetest.get_modpath("farming").."/cocoa.lua")
dofile(minetest.get_modpath("farming").."/raspberry.lua")
dofile(minetest.get_modpath("farming").."/blueberry.lua")
dofile(minetest.get_modpath("farming").."/rhubarb.lua")
dofile(minetest.get_modpath("farming").."/donut.lua") -- sweet treat
dofile(minetest.get_modpath("farming").."/mapgen.lua")
dofile(minetest.get_modpath("farming").."/compatibility.lua") -- Farming Plus compatibility
-- Place Seeds on Soil
function farming.place_seed(itemstack, placer, pointed_thing, plantname)
local pt = pointed_thing
-- check if pointing at a node
if not pt and pt.type ~= "node" then
return
end
local under = minetest.get_node(pt.under)
local above = minetest.get_node(pt.above)
-- check if pointing at the top of the node
if pt.above.y ~= pt.under.y+1 then
return
end
-- return if any of the nodes is not registered
if not minetest.registered_nodes[under.name]
or not minetest.registered_nodes[above.name] then
return
end
-- can I replace above node, and am I pointing at soil
if not minetest.registered_nodes[above.name].buildable_to
or minetest.get_item_group(under.name, "soil") < 2 then
return
end
-- add the node and remove 1 item from the itemstack
minetest.add_node(pt.above, {name=plantname})
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
end
return itemstack
end
-- Single ABM Handles Growing of All Plants
minetest.register_abm({
nodenames = {"group:growing"},
neighbors = {"farming:soil_wet", "default:jungletree"},
interval = 60,
chance = 2,
action = function(pos, node)
-- get node type (e.g. farming:wheat_1)
local data = nil
data = string.split(node.name, '_', 2)
local plant = data[1].."_"
local numb = data[2]
-- check if fully grown
if not minetest.registered_nodes[plant..(numb + 1)] then return end
-- Check for Cocoa Pod
if plant == "farming:cocoa_" and minetest.find_node_near(pos, 1, {"default:jungletree"}) then
else
-- check if on wet soil
pos.y = pos.y-1
if minetest.get_node(pos).name ~= "farming:soil_wet" then return end
pos.y = pos.y+1
-- check light
if minetest.get_node_light(pos) < 13 then return end
end
-- grow
minetest.set_node(pos, {name=plant..(numb + 1)})
end
})
-- Function to register plants (for compatibility)
farming.register_plant = function(name, def)
local mname = name:split(":")[1]
local pname = name:split(":")[2]
-- Check def table
if not def.description then
def.description = "Seed"
end
if not def.inventory_image then
def.inventory_image = "unknown_item.png"
end
if not def.steps then
return nil
end
-- Register seed
minetest.register_node(":" .. mname .. ":seed_" .. pname, {
description = def.description,
tiles = {def.inventory_image},
inventory_image = def.inventory_image,
wield_image = def.inventory_image,
drawtype = "signlike",
groups = {seed = 1, snappy = 3, attached_node = 1},
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = {type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":"..pname.."_1")
end
})
-- Register harvest
minetest.register_craftitem(":" .. mname .. ":" .. pname, {
description = pname:gsub("^%l", string.upper),
inventory_image = mname .. "_" .. pname .. ".png",
})
-- Register growing steps
for i=1,def.steps do
local drop = {
items = {
{items = {mname .. ":" .. pname}, rarity = 9 - i},
{items = {mname .. ":" .. pname}, rarity= 18 - i * 2},
{items = {mname .. ":seed_" .. pname}, rarity = 9 - i},
{items = {mname .. ":seed_" .. pname}, rarity = 18 - i * 2},
}
}
local g = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1, growing = 1}
-- Last step doesn't need growing=1 so Abm never has to check these
if i == def.steps then
g = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1}
end
minetest.register_node(mname .. ":" .. pname .. "_" .. i, {
drawtype = "plantlike",
waving = 1,
tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"},
paramtype = "light",
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = drop,
selection_box = {type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = g,
sounds = default.node_sound_leaves_defaults(),
})
end
-- Return info
local r = {seed = mname .. ":seed_" .. pname, harvest = mname .. ":" .. pname}
return r
end
--[[ Cotton (example, is already registered in cotton.lua)
farming.register_plant("farming:cotton", {
description = "Cotton seed",
inventory_image = "farming_cotton_seed.png",
steps = 8,
})
--]]

14
license.txt Normal file
View File

@ -0,0 +1,14 @@
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
Version 2, December 2004
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
Everyone is permitted to copy and distribute verbatim or modified
copies of this license document, and changing it is allowed as long
as the name is changed.
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. You just DO WHAT THE FUCK YOU WANT TO.

85
mapgen.lua Normal file
View File

@ -0,0 +1,85 @@
-- Generate new foods on map
minetest.register_on_generated(function(minp, maxp, seed)
local perlin1 = minetest.get_perlin(329, 3, 0.6, 100)
-- Assume X and Z lengths are equal
local divlen = 16
local divs = (maxp.x-minp.x)/divlen+1;
for divx=0,divs-1 do
for divz=0,divs-1 do
local x0 = minp.x + math.floor((divx+0)*divlen)
local z0 = minp.z + math.floor((divz+0)*divlen)
local x1 = minp.x + math.floor((divx+1)*divlen)
local z1 = minp.z + math.floor((divz+1)*divlen)
-- Determine plant amount from perlin noise
local grass_amount = math.floor(perlin1:get2d({x=x0, y=z0}) ^ 3 * 9)
-- Find random positions for plant based on this random
local pr = PseudoRandom(seed+1)
for i=0,grass_amount do
local x = pr:next(x0, x1)
local z = pr:next(z0, z1)
-- Find ground level (0...15)
local ground_y = nil
for y=30,0,-1 do
if minetest.get_node({x=x,y=y,z=z}).name ~= "air" then
ground_y = y
break
end
end
if ground_y then
local p = {x=x,y=ground_y+1,z=z}
local nn = minetest.get_node(p).name
-- Check if the node can be replaced
if minetest.registered_nodes[nn] and
minetest.registered_nodes[nn].buildable_to then
nn = minetest.get_node({x=x,y=ground_y,z=z}).name
-- If dirt with grass, add plant in various stages of maturity
if nn == "default:dirt_with_grass" then
local type = math.random(1,11)
if type == 1 and ground_y > 15 then
minetest.set_node(p,{name="farming:potato_"..pr:next(3, 4)})
elseif type == 2 then
minetest.set_node(p,{name="farming:tomato_"..pr:next(7, 8)})
elseif type == 3 then
minetest.set_node(p,{name="farming:carrot_"..pr:next(7, 8)})
elseif type == 4 then
minetest.set_node(p,{name="farming:cucumber_4"})
elseif type == 5 then
minetest.set_node(p,{name="farming:corn_"..pr:next(7, 8)})
elseif type == 6 and ground_y > 20 then
minetest.set_node(p,{name="farming:coffee_5"})
elseif type == 7 and minetest.find_node_near(p, 3, {"group:water"}) then
minetest.set_node(p,{name="farming:melon_8"})
elseif type == 8 and ground_y > 15 then
minetest.set_node(p,{name="farming:pumpkin_8"})
elseif type == 9 and ground_y > 5 then
minetest.set_node(p,{name="farming:raspberry_4"})
elseif type == 10 and ground_y > 10 then
minetest.set_node(p,{name="farming:rhubarb_3"})
elseif type == 11 and ground_y > 5 then
minetest.set_node(p,{name="farming:blueberry_4"})
end
end
end
end
end
end
end
end)

141
melon.lua Normal file
View File

@ -0,0 +1,141 @@
--= Melon
minetest.register_craftitem("farming:melon_slice", {
description = "Melon Slice",
inventory_image = "farming_melon_slice.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:melon_1")
end,
on_use = minetest.item_eat(2),
})
minetest.register_craft({
output = "farming:melon_8",
recipe = {
{"farming:melon_slice", "farming:melon_slice", "farming:melon_slice"},
{"farming:melon_slice", "farming:melon_slice", "farming:melon_slice"},
{"farming:melon_slice", "farming:melon_slice", "farming:melon_slice"},
}
})
minetest.register_craft({
output = "farming:melon_slice 9",
recipe = {
{"", "farming:melon_8", ""},
}
})
-- Define Melon growth stages
minetest.register_node("farming:melon_1", {
drawtype = "plantlike",
tiles = {"farming_melon_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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:melon_2", {
drawtype = "plantlike",
tiles = {"farming_melon_2.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:melon_3", {
drawtype = "plantlike",
tiles = {"farming_melon_3.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:melon_4", {
drawtype = "plantlike",
tiles = {"farming_melon_4.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:melon_5", {
drawtype = "plantlike",
tiles = {"farming_melon_5.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:melon_6", {
drawtype = "plantlike",
tiles = {"farming_melon_6.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
drop = "",
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:melon_7", {
drawtype = "plantlike",
tiles = {"farming_melon_7.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
drop = "",
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Melon growth doesnnot have growing=1 so abm never has to check these
minetest.register_node("farming:melon_8", {
drawtype = "nodebox",
description = "Melon",
tiles = {"farming_melon_top.png", "farming_melon_top.png", "farming_melon_side.png"},
paramtype = "light",
walkable = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:melon_slice 9'},rarity=1},
}
},
groups = {snappy=3,flammable=2,plant=1},
sounds = default.node_sound_wood_defaults(),
})

97
potato.lua Normal file
View File

@ -0,0 +1,97 @@
--= Potato (Original textures from DocFarming mod)
-- https://forum.minetest.net/viewtopic.php?id=3948
minetest.register_craftitem("farming:potato", {
description = "Potato",
inventory_image = "farming_potato.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:potato_1")
end,
on_use = minetest.item_eat(1),
})
minetest.register_craftitem("farming:baked_potato", {
description = "Baked Potato",
inventory_image = "farming_baked_potato.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
type = "cooking",
cooktime = 10,
output = "farming:baked_potato",
recipe = "farming:potato"
})
-- Define Potato growth stages
minetest.register_node("farming:potato_1", {
drawtype = "plantlike",
tiles = {"farming_potato_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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:potato_2", {
drawtype = "plantlike",
tiles = {"farming_potato_2.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:potato_3", {
drawtype = "plantlike",
tiles = {"farming_potato_3.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:potato'},rarity=1},
{items = {'farming:potato'},rarity=3},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Potato growth doesnnot have growing=1 so abm never has to check these
minetest.register_node("farming:potato_4", {
drawtype = "plantlike",
tiles = {"farming_potato_4.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:potato 2'},rarity=1},
{items = {'farming:potato 3'},rarity=2},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

216
pumpkin.lua Normal file
View File

@ -0,0 +1,216 @@
--= Pumpkin (Big thanks to the PainterlyPack.net for Minecraft for allowing me to use these textures)
minetest.register_node("farming:pumpkin", {
description = "Pumpkin",
tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png"},
groups = {snappy=3,flammable=2,plant=1},
drop = {
items = {
{items = {'farming:pumpkin_slice 9'},rarity=1},
}
},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_craftitem("farming:pumpkin_slice", {
description = "Pumpkin Slice",
inventory_image = "farming_pumpkin_slice.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:pumpkin_1")
end,
on_use = minetest.item_eat(2),
})
minetest.register_craft({
output = "farming:pumpkin",
recipe = {
{"farming:pumpkin_slice", "farming:pumpkin_slice", "farming:pumpkin_slice"},
{"farming:pumpkin_slice", "farming:pumpkin_slice", "farming:pumpkin_slice"},
{"farming:pumpkin_slice", "farming:pumpkin_slice", "farming:pumpkin_slice"},
}
})
minetest.register_craft({
output = "farming:pumpkin_slice 9",
recipe = {
{"", "farming:pumpkin", ""},
}
})
-- Jack 'O Lantern
minetest.register_node("farming:jackolantern", {
description = "Jack 'O Lantern",
tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face_off.png"},
paramtype2 = "facedir",
groups = {snappy=3,flammable=2},
sounds = default.node_sound_wood_defaults(),
on_punch = function(pos, node, puncher)
node.name = "farming:jackolantern_on"
minetest.set_node(pos, node)
end,
})
minetest.register_node("farming:jackolantern_on", {
description = "Jack 'O Lantern",
tiles = {"farming_pumpkin_top.png", "farming_pumpkin_top.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_side.png", "farming_pumpkin_face_on.png"},
light_source = 14,
paramtype2 = "facedir",
groups = {snappy=3,flammable=2},
sounds = default.node_sound_wood_defaults(),
drop = "farming:jackolantern",
on_punch = function(pos, node, puncher)
node.name = "farming:jackolantern"
minetest.set_node(pos, node)
end,
})
minetest.register_craft({
output = "farming:jackolantern",
recipe = {
{"", "", ""},
{"", "default:torch", ""},
{"", "farming:pumpkin", ""},
}
})
-- Pumpkin Bread
minetest.register_craftitem("farming:pumpkin_bread", {
description = ("Pumpkin Bread"),
inventory_image = "farming_pumpkin_bread.png",
on_use = minetest.item_eat(8)
})
minetest.register_craftitem("farming:pumpkin_dough", {
description = "Pumpkin Dough",
inventory_image = "farming_pumpkin_dough.png",
})
minetest.register_craft({
output = "farming:pumpkin_dough",
type = "shapeless",
recipe = {"farming:flour", "farming:pumpkin_slice", "farming:pumpkin_slice"}
})
minetest.register_craft({
type = "cooking",
output = "farming:pumpkin_bread",
recipe = "farming:pumpkin_dough",
cooktime = 10
})
-- Define Pumpkin growth stages
minetest.register_node("farming:pumpkin_1", {
drawtype = "plantlike",
tiles = {"farming_pumpkin_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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:pumpkin_2", {
drawtype = "plantlike",
tiles = {"farming_pumpkin_2.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:pumpkin_3", {
drawtype = "plantlike",
tiles = {"farming_pumpkin_3.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:pumpkin_4", {
drawtype = "plantlike",
tiles = {"farming_pumpkin_4.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:pumpkin_5", {
drawtype = "plantlike",
tiles = {"farming_pumpkin_5.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:pumpkin_6", {
drawtype = "plantlike",
tiles = {"farming_pumpkin_6.png"},
paramtype = "light",
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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:pumpkin_7", {
drawtype = "plantlike",
tiles = {"farming_pumpkin_7.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
drop = "",
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Pumpkin growth does not have growing=1 so abm never has to check these
minetest.register_node("farming:pumpkin_8", {
drawtype = "plantlike",
tiles = {"farming_pumpkin_8.png"},
paramtype = "light",
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:pumpkin_slice 9'},rarity=1},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1},
sounds = default.node_sound_defaults(),
})

95
raspberry.lua Normal file
View File

@ -0,0 +1,95 @@
--= Raspberries
minetest.register_craftitem("farming:raspberries", {
description = "Raspberries",
inventory_image = "farming_raspberries.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:raspberry_1")
end,
on_use = minetest.item_eat(1),
})
-- Raspberry Smoothie
minetest.register_craftitem("farming:smoothie_raspberry", {
description = "Raspberry Smoothie",
inventory_image = "farming_raspberry_smoothie.png",
on_use = minetest.item_eat(2, "vessels:drinking_glass"),
})
minetest.register_craft({
output = "farming:smoothie_raspberry",
recipe = {
{"default:snow"},
{"farming:raspberries"},
{"vessels:drinking_glass"},
}
})
-- Define Raspberry growth stages
minetest.register_node("farming:raspberry_1", {
drawtype = "plantlike",
tiles = {"farming_raspberry_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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:raspberry_2", {
drawtype = "plantlike",
tiles = {"farming_raspberry_2.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:raspberry_3", {
drawtype = "plantlike",
tiles = {"farming_raspberry_3.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Raspberry growth does not have growing=1 so abm never has to check these
minetest.register_node("farming:raspberry_4", {
drawtype = "plantlike",
tiles = {"farming_raspberry_4.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:raspberries 2'},rarity=1},
{items = {'farming:raspberries'},rarity=2},
{items = {'farming:raspberries'},rarity=3},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

79
rhubarb.lua Normal file
View File

@ -0,0 +1,79 @@
--= Rhubarb
minetest.register_craftitem("farming:rhubarb", {
description = "Rhubarb",
inventory_image = "farming_rhubarb.png",
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:rhubarb_1")
end,
on_use = minetest.item_eat(1),
})
minetest.register_craftitem("farming:rhubarb_pie", {
description = "Rhubarb Pie",
inventory_image = "farming_rhubarb_pie.png",
on_use = minetest.item_eat(6),
})
minetest.register_craft({
output = "farming:rhubarb_pie",
recipe = {
{"", "farming:sugar", ""},
{"farming:rhubarb", "farming:rhubarb", "farming:rhubarb"},
{"farming:wheat", "farming:wheat", "farming:wheat"},
}
})
-- Define Rhubarb growth stages
minetest.register_node("farming:rhubarb_1", {
drawtype = "plantlike",
tiles = {"farming_rhubarb_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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("farming:rhubarb_2", {
drawtype = "plantlike",
tiles = {"farming_rhubarb_2.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 = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1,growing=1},
sounds = default.node_sound_leaves_defaults(),
})
-- Last stage of Rhubarb growth doesnnot have growing=1 so abm never has to check these
minetest.register_node("farming:rhubarb_3", {
drawtype = "plantlike",
tiles = {"farming_rhubarb_3.png"},
paramtype = "light",
sunlight_propagates = true,
waving = 1,
walkable = false,
buildable_to = true,
is_ground_content = true,
drop = {
items = {
{items = {'farming:rhubarb 2'},rarity=1},
{items = {'farming:rhubarb'},rarity=2},
{items = {'farming:rhubarb'},rarity=3},
}
},
selection_box = {type = "fixed",fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},},
groups = {snappy=3,flammable=2,plant=1,not_in_creative_inventory=1,attached_node=1},
sounds = default.node_sound_leaves_defaults(),
})

58
soil.lua Normal file
View File

@ -0,0 +1,58 @@
--= Soil Functions
-- Normal Soil
minetest.register_node("farming:soil", {
description = "Soil",
tiles = {"farming_soil.png", "default_dirt.png"},
drop = "default:dirt",
is_ground_content = true,
groups = {crumbly=3, not_in_creative_inventory=1, soil=2},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_alias("farming:desert_sand_soil", "farming:soil")
-- Wet Soil
minetest.register_node("farming:soil_wet", {
description = "Wet Soil",
tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"},
drop = "default:dirt",
is_ground_content = true,
groups = {crumbly=3, not_in_creative_inventory=1, soil=3},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_alias("farming:desert_sand_soil_wet", "farming:soil_wet")
-- If Water near Soil then turn into Wet Soil
minetest.register_abm({
nodenames = {"farming:soil", "farming:soil_wet"},
interval = 15,
chance = 4,
action = function(pos, node)
pos.y = pos.y+1
local nn = minetest.get_node(pos).name
pos.y = pos.y-1
-- what's on top of soil, if solid/not plant change soil to dirt
if minetest.registered_nodes[nn]
and minetest.registered_nodes[nn].walkable
and minetest.get_item_group(nn, "plant") == 0 then
minetest.set_node(pos, {name="default:dirt"})
end
-- check if there is water nearby and change soil accordingly
if minetest.find_node_near(pos, 3, {"group:water"}) then
if node.name == "farming:soil" then
minetest.set_node(pos, {name="farming:soil_wet"})
end
elseif node.name == "farming:soil_wet" then
minetest.set_node(pos, {name="farming:soil"})
elseif node.name == "farming:soil" then
minetest.set_node(pos, {name="default:dirt"})
end
end,
})

15
sugar.lua Normal file
View File

@ -0,0 +1,15 @@
--= Sugar
minetest.register_craftitem("farming:sugar", {
description = "Sugar",
inventory_image = "farming_sugar.png",
})
minetest.register_craft({
type = "cooking",
cooktime = 3,
output = "farming:sugar 2",
recipe = "default:papyrus",
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 B

BIN
textures/farming_bread.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

BIN
textures/farming_carrot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 244 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 253 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 B

BIN
textures/farming_cookie.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 566 B

BIN
textures/farming_corn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

BIN
textures/farming_corn_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 B

BIN
textures/farming_corn_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

BIN
textures/farming_corn_3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 B

BIN
textures/farming_corn_4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 B

BIN
textures/farming_corn_5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

BIN
textures/farming_corn_6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

BIN
textures/farming_corn_7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

BIN
textures/farming_corn_8.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 311 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 182 B

BIN
textures/farming_cotton.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 341 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 348 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 275 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 601 B

BIN
textures/farming_donut.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 B

BIN
textures/farming_flour.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 161 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 181 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 227 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

BIN
textures/farming_potato.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Some files were not shown because too many files have changed in this diff Show More