Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • Illuna-Minetest/farming
1 result
Show changes
Commits on Source (32)
......@@ -13,6 +13,9 @@ This mod works by adding your new plant to the {growing=1} group and numbering t
Changelog:
1.26 - Added support for [toolranks] mod when using hoe's
1.25 - Added check for farming.conf setting file to disable specific crops globally (inside mod folder) or world specific (inside world folder)
1.24 - Added Hemp which can be crafted into fibre, paper, string, rope and oil.
1.23 - Huge code tweak and tidy done and added barley seeds to be found in dry grass, barley can make flour for bread also.
1.22 - Added grape bushes at high climates which can be cultivated into grape vines using trellis (9 sticks).
1.21 - Added auto-refill code for planting crops (thanks crabman77), also fixed a few bugs
......@@ -45,6 +48,9 @@ Changelog:
0.1 - Fixed growing bug
0.0 - Initial release
Lucky Blocks: 11 (plus 3 for default farming items)
License of media (textures):
----------------------------
Created by PilzAdam (License: WTFPL):
......@@ -147,4 +153,5 @@ Created by TenPlus1
farming_rhubarb_2.png
farming_rhubarb_3.png
farming_rhubarb.png
farming_rhubarb_pie.png
\ No newline at end of file
farming_rhubarb_pie.png
farming_hemp*.png
......@@ -68,3 +68,9 @@ minetest.register_node("farming:banana", {
on_use = minetest.item_eat(6),
})
default.register_leafdecay({
trunks = {"default:tree"},
leaves = {"farming:banana_leaves"},
radius = 3
})
......@@ -6,46 +6,69 @@
local S = farming.intllib
-- beans
minetest.register_craftitem("farming:beans", {
description = S("Green Beans"),
inventory_image = "farming_beans.png",
on_use = minetest.item_eat(1),
-- place beans
function place_beans(itemstack, placer, pointed_thing, plantname)
on_place = function(itemstack, placer, pointed_thing)
local pt = pointed_thing
if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
return
end
-- check if pointing at a node
if not pt or pt.type ~= "node" then
local nodename = minetest.get_node(pointed_thing.under).name
return
end
if nodename == "farming:beanpole" then
minetest.set_node(pointed_thing.under, {name = "farming:beanpole_1"})
local under = minetest.get_node(pt.under)
minetest.sound_play("default_place_node", {pos = pointed_thing.above, gain = 1.0})
else
return
end
-- return if any of the nodes are not registered
if not minetest.registered_nodes[under.name] then
return
end
if not minetest.setting_getbool("creative_mode") then
-- 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)
end
itemstack:take_item()
-- check if pointing at bean pole
if under.name ~= "farming:beanpole" then
return
end
-- check for refill
if itemstack:get_count() == 0 then
-- add the node and remove 1 item from the itemstack
minetest.set_node(pt.under, {name = plantname})
minetest.after(0.20,
farming.refill_plant,
placer,
"farming:beans",
placer:get_wield_index()
)
end
end
minetest.sound_play("default_place_node", {pos = pt.under, gain = 1.0})
return itemstack
if not minetest.setting_getbool("creative_mode") 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
-- beans
minetest.register_craftitem("farming:beans", {
description = S("Green Beans"),
inventory_image = "farming_beans.png",
on_use = minetest.item_eat(1),
on_place = function(itemstack, placer, pointed_thing)
return place_beans(itemstack, placer, pointed_thing, "farming:beanpole_1")
end,
})
-- beans can be used for green dye
......@@ -62,7 +85,7 @@ minetest.register_node("farming:beanpole", {
drawtype = "plantlike",
tiles = {"farming_beanpole.png"},
inventory_image = "farming_beanpole.png",
visual_scale = 1.45,
visual_scale = 1.90, -- 1.45,
paramtype = "light",
walkable = false,
buildable_to = true,
......@@ -125,7 +148,7 @@ minetest.register_craft({
local crop_def = {
drawtype = "plantlike",
tiles = {"farming_beanpole_1.png"},
visual_scale = 1.45,
visual_scale = 1.90, -- 1.45,
paramtype = "light",
walkable = false,
buildable_to = true,
......
......@@ -10,14 +10,21 @@ function place_cocoa(itemstack, placer, pointed_thing, plantname)
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)
end
-- check if pointing at jungletree
if under.name ~= "default:jungletree"
or minetest.get_node(pt.above).name ~= "air" then
......
-- Banana
minetest.register_alias("farming_plus:banana_sapling", "farming:banana_sapling")
minetest.register_alias("farming_plus:banana_leaves", "farming:banana_leaves")
minetest.register_alias("farming_plus:banana", "farming: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_node(":ethereal:banana", {
description = "Banana",
drawtype = "torchlike",
tiles = {"banana_single.png"},
inventory_image = "banana_single.png",
wield_image = "banana_single.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.5, -0.2, 0.2, 0.2, 0.2}
},
groups = {fleshy = 3, dig_immediate = 3, flammable = 2},
on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_alias("farming_plus:banana_sapling", "default:sapling")
minetest.register_alias("farming_plus:banana_leaves", "default:leaves")
minetest.register_alias("farming_plus:banana", "ethereal:banana")
end
-- Carrot
minetest.register_alias("farming_plus:carrot_seed", "farming:carrot_seed")
......@@ -12,20 +36,45 @@ minetest.register_alias("farming_plus:carrot", "farming:carrot_8")
minetest.register_alias("farming_plus:carrot_item", "farming:carrot")
-- Cocoa
minetest.register_alias("farming_plus:cocoa_sapling", "farming:cocoa_beans")
minetest.register_alias("farming_plus:cocoa_sapling", "farming:cocoa_2")
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:orange_1")
minetest.register_alias("farming_plus:orange_2", "farming:orange_2")
minetest.register_alias("farming_plus:orange_3", "farming:orange_3")
minetest.register_alias("farming_plus:orange", "farming:orange_4")
minetest.register_alias("farming_plus:orange_8", "farming:orange")
minetest.register_alias("farming_plus:orange_item", "farming:orange_item")
minetest.register_alias("farming_plus:orange_seed", "farming:orange_seed")
minetest.register_alias("farming:orange", "farming:orange_4")
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", "farming:orange")
minetest.register_alias("farming_plus:orange", "farming:orange")
minetest.register_alias("farming_plus:orange_seed", "farming:orange_tree_sapling")
end
--[[else
minetest.register_node(":ethereal:orange", {
description = "Orange",
drawtype = "plantlike",
tiles = {"farming_orange.png"},
inventory_image = "farming_orange.png",
wield_image = "farming_orange.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.2, -0.3, -0.2, 0.2, 0.2, 0.2}
},
groups = {fleshy = 3, dig_immediate = 3, flammable = 2},
on_use = minetest.item_eat(4),
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_alias("farming_plus:orange_item", "ethereal:orange")
minetest.register_alias("farming_plus:orange", "ethereal:orange")
minetest.register_alias("farming_plus:orange_seed", "default:sapling")
end]]
-- Potato
minetest.register_alias("farming_plus:potato_item", "farming:potato")
......@@ -36,12 +85,15 @@ minetest.register_alias("farming_plus:potato_seed", "farming:potato_seed")
-- 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:pumpkin_face", "farming:jackolantern")
minetest.register_alias("farming:pumpkin_face_light", "farming:jackolantern_on")
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:jackolantern")
minetest.register_alias("farming:scarecrow_bottom", "default:fence_wood")
minetest.register_alias("farming:scarecrow_light", "farming:jackolantern_on")
minetest.register_alias("farming:pumpkin_flour", "farming:pumpkin_dough")
-- Rhubarb
......@@ -52,15 +104,28 @@ minetest.register_alias("farming_plus:rhubarb", "farming:rhubarb_3")
minetest.register_alias("farming_plus:rhubarb_item", "farming:rhubarb")
-- Strawberry
minetest.register_alias("farming_plus:strawberry_item", "farming:strawberry_item")
minetest.register_alias("farming_plus:strawberry_seed", "farming:strawberry_seed")
minetest.register_alias("farming_plus:strawberry_1", "farming:strawberry_1")
minetest.register_alias("farming_plus:strawberry_2", "farming:strawberry_2")
minetest.register_alias("farming_plus:strawberry_3", "farming:strawberry_3")
minetest.register_alias("farming_plus:strawberry", "farming:strawberry_3")
minetest.register_alias("farming:strawberry", "farming:strawberry_item")
minetest.register_alias("farming_plus:strawberry", "farming:strawberry_3")
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_craftitem(":ethereal:strawberry", {
description = "Strawberry",
inventory_image = "strawberry.png",
wield_image = "strawberry.png",
on_use = minetest.item_eat(1),
})
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", "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
-- Raspberry
--minetest.register_alias("farming_plus:raspberry_seed", "farming:raspberry_seed")
--minetest.register_alias("farming_plus:raspberrys", "farming:raspberrys")
......@@ -76,3 +141,17 @@ minetest.register_alias("farming_plus:tomato", "farming:tomato_8")
-- Weed
minetest.register_alias("farming:weed", "default:grass_2")
-- Classic Bushes compatibility
if minetest.get_modpath("bushes_classic") then
if eth then
minetest.register_alias("bushes:strawberry", "farming:strawberry")
else
minetest.register_alias("bushes:strawberry", "farming:raspberries")
end
minetest.register_alias("bushes:blueberry", "farming:blueberries")
minetest.register_alias("bushes:raspberry", "farming:raspberries")
end
......@@ -31,9 +31,21 @@ minetest.register_craft({
})
-- ethanol (thanks to JKMurray for this idea)
minetest.register_craftitem("farming:bottle_ethanol", {
minetest.register_node("farming:bottle_ethanol", {
description = S("Bottle of Ethanol"),
drawtype = "plantlike",
tiles = {"farming_bottle_ethanol.png"},
inventory_image = "farming_bottle_ethanol.png",
wield_image = "farming_bottle_ethanol.png",
paramtype = "light",
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craft( {
......@@ -47,7 +59,7 @@ minetest.register_craft( {
minetest.register_craft({
type = "fuel",
recipe = "farming:bottle_ethanol",
burntime = 240,
burntime = 80, --240,
replacements = {{ "farming:bottle_ethanol", "vessels:glass_bottle"}}
})
......@@ -89,7 +101,7 @@ minetest.register_node("farming:corn_5", table.copy(crop_def))
-- stage 6
crop_def.tiles = {"farming_corn_6.png"}
crop_def.visual_scale = 1.45
crop_def.visual_scale = 1.9 -- 1.45
minetest.register_node("farming:corn_6", table.copy(crop_def))
-- stage 7
......
......@@ -48,7 +48,7 @@ crop_def.tiles = {"farming_cucumber_4.png"}
crop_def.groups.growing = 0
crop_def.drop = {
items = {
{items = {'farming:cucumber'}, rarity = 1},
{items = {'farming:cucumber 2'}, rarity = 1},
{items = {'farming:cucumber 2'}, rarity = 2},
}
}
......
default
wool
intllib?
lucky_block?
toolranks?
--[[
Farming settings can be changed here and kept inside mod folder
even after the mod has been updated, or you can place inside
world folder for map specific settings.
--]]
-- true to enable crop/food in-game and on mapgen
farming.carrot = true
farming.potato = true
farming.tomato = true
farming.cucumber = true
farming.corn = true
farming.coffee = true
farming.coffee = true
farming.melon = true
farming.sugar = true
farming.pumpkin = true
farming.cocoa = true
farming.raspberry = true
farming.blueberry = true
farming.rhubarb = true
farming.beans = true
farming.grapes = true
farming.barley = true
farming.hemp = true
farming.donuts = true
local S = farming.intllib
-- grapes
minetest.register_craftitem("farming:grapes", {
description = S("Grapes"),
inventory_image = "farming_grapes.png",
on_use = minetest.item_eat(2),
-- place trellis
function place_grapes(itemstack, placer, pointed_thing, plantname)
on_place = function(itemstack, placer, pointed_thing)
local pt = pointed_thing
if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
return
end
-- check if pointing at a node
if not pt or pt.type ~= "node" then
local nodename = minetest.get_node(pointed_thing.under).name
return
end
if nodename == "farming:trellis" then
minetest.set_node(pointed_thing.under, {name = "farming:grapes_1"})
local under = minetest.get_node(pt.under)
minetest.sound_play("default_place_node", {pos = pointed_thing.above, gain = 1.0})
else
return
end
-- return if any of the nodes are not registered
if not minetest.registered_nodes[under.name] then
return
end
if not minetest.setting_getbool("creative_mode") then
-- 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)
end
itemstack:take_item()
-- check if pointing at trellis
if under.name ~= "farming:trellis" then
return
end
-- check for refill
if itemstack:get_count() == 0 then
-- add the node and remove 1 item from the itemstack
minetest.set_node(pt.under, {name = plantname})
minetest.after(0.20,
farming.refill_plant,
placer,
"farming:grapes",
placer:get_wield_index()
)
end
end
minetest.sound_play("default_place_node", {pos = pt.under, gain = 1.0})
return itemstack
if not minetest.setting_getbool("creative_mode") 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
-- grapes
minetest.register_craftitem("farming:grapes", {
description = S("Grapes"),
inventory_image = "farming_grapes.png",
on_use = minetest.item_eat(2),
on_place = function(itemstack, placer, pointed_thing)
return place_grapes(itemstack, placer, pointed_thing, "farming:grapes_1")
end,
})
-- grapes can be used for violet dye
......@@ -57,7 +80,7 @@ minetest.register_node("farming:trellis", {
drawtype = "plantlike",
tiles = {"farming_trellis.png"},
inventory_image = "farming_trellis.png",
visual_scale = 1.45,
visual_scale = 1.9, -- 1.45,
paramtype = "light",
walkable = false,
buildable_to = true,
......@@ -120,7 +143,7 @@ minetest.register_craft({
local crop_def = {
drawtype = "plantlike",
tiles = {"farming_grapes_1.png"},
visual_scale = 1.45,
visual_scale = 1.9, -- 1.45,
paramtype = "light",
walkable = false,
buildable_to = true,
......
local S = farming.intllib
minetest.register_alias("hemp:hemp", "farming:hemp_leaf")
minetest.register_alias("farming:hemp", "farming:hemp_leaf")
minetest.register_alias("hemp:hemp_1", "farming:hemp_1")
minetest.register_alias("hemp:hemp_1", "farming:hemp_1")
minetest.register_alias("hemp:hemp_2", "farming:hemp_2")
minetest.register_alias("hemp:hemp_3", "farming:hemp_3")
minetest.register_alias("hemp:hemp_4", "farming:hemp_4")
minetest.register_alias("hemp:hemp_5", "farming:hemp_5")
minetest.register_alias("hemp:hemp_6", "farming:hemp_6")
minetest.register_alias("hemp:hemp_7", "farming:hemp_7")
minetest.register_alias("hemp:hemp_8", "farming:hemp_8")
minetest.register_alias("hemp:hemp_rope", "farming:hemp_rope")
minetest.register_alias("hemp:hemp_rope_ground", "farming:hemp_rope_ground")
minetest.register_alias("hemp:hemp_rope_corner", "farming:hemp_rope_corner")
minetest.register_alias("hemp:hemp_rope_fence", "farming:hemp_rope_fence")
minetest.register_alias("hemp:hemp_rug", "farming:hemp_rug")
minetest.register_alias("hemp:hempcrete", "farming:hempcrete")
minetest.register_alias("hemp:hempcrete_brick", "farming:hempcrete_brick")
minetest.register_alias("hemp:hemp_fiber", "farming:hemp_fibre")
-- hemp seeds
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 = {seed = 1, snappy = 3, attached_node = 1},
paramtype = "light",
paramtype2 = "wallmounted",
walkable = false,
sunlight_propagates = true,
selection_box = farming.select,
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, "farming:hemp_1")
end,
})
-- harvested hemp
minetest.register_craftitem("farming:hemp_leaf", {
description = S("Hemp Leaf"),
inventory_image = "farming_hemp_leaf.png",
})
-- hemp oil
minetest.register_node("farming:hemp_oil", {
description = S("Bottle of Hemp Oil"),
drawtype = "plantlike",
tiles = {"farming_hemp_oil.png"},
inventory_image = "farming_hemp_oil.png",
wield_image = "farming_hemp_oil.png",
paramtype = "light",
is_ground_content = false,
walkable = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
},
groups = {vessel = 1, dig_immediate = 3, attached_node = 1},
sounds = default.node_sound_glass_defaults(),
})
minetest.register_craft( {
output = "farming:hemp_oil",
recipe = {
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
{"", "vessels:glass_bottle", ""}
}
})
minetest.register_craft( {
output = "farming:hemp_oil",
recipe = {
{"farming:seed_hemp", "farming:seed_hemp", "farming:seed_hemp"},
{"farming:seed_hemp", "farming:seed_hemp", "farming:seed_hemp"},
{"farming:seed_hemp", "vessels:glass_bottle", "farming:seed_hemp"}
}
})
minetest.register_craft({
type = "fuel",
recipe = "farming:hemp_oil",
burntime = 20,
replacements = {{ "farming:hemp_oil", "vessels:glass_bottle"}}
})
-- hemp fibre
minetest.register_craftitem("farming:hemp_fibre", {
description = S("Hemp Fibre"),
inventory_image = "farming_hemp_fibre.png",
})
minetest.register_craft( {
output = "farming:hemp_fibre 8",
recipe = {
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
{"farming:hemp_leaf", "bucket:bucket_water", "farming:hemp_leaf"},
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}
},
replacements = {{ "bucket:bucket_water", "bucket:bucket_empty"}}
})
minetest.register_craft( {
output = "farming:hemp_fibre 8",
recipe = {
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"},
{"farming:hemp_leaf", "bucket:bucket_river_water", "farming:hemp_leaf"},
{"farming:hemp_leaf", "farming:hemp_leaf", "farming:hemp_leaf"}
},
replacements = {{ "bucket:bucket_river_water", "bucket:bucket_empty"}}
})
-- paper
minetest.register_craft( {
output = "default:paper",
recipe = {
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
}
})
-- string
minetest.register_craft( {
output = "farming:cotton",
recipe = {
{"farming:hemp_fibre"},
{"farming:hemp_fibre"},
{"farming:hemp_fibre"},
}
})
-- hemp rope
minetest.register_node("farming:hemp_rope", {
description = S("Hemp Rope"),
walkable = false,
climbable = true,
sunlight_propagates = true,
paramtype = "light",
tiles = {"farming_hemp_rope.png"},
wield_image = "farming_hemp_rope.png",
inventory_image = "farming_hemp_rope.png",
drawtype = "plantlike",
groups = {flammable = 2, choppy = 3, oddly_breakable_by_hand = 3},
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7},
},
})
-- string
minetest.register_craft( {
output = "farming:hemp_rope 6",
recipe = {
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
{"farming:cotton", "farming:cotton", "farming:cotton"},
{"farming:hemp_fibre", "farming:hemp_fibre", "farming:hemp_fibre"},
}
})
-- hemp definition
local crop_def = {
drawtype = "plantlike",
tiles = {"farming_hemp_1.png"},
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
drop = "",
selection_box = farming.select,
groups = {
snappy = 3, flammable = 2, plant = 1, attached_node = 1,
not_in_creative_inventory = 1, growing = 1
},
sounds = default.node_sound_leaves_defaults()
}
-- stage 1
minetest.register_node("farming:hemp_1", table.copy(crop_def))
-- stage 2
crop_def.tiles = {"farming_hemp_2.png"}
minetest.register_node("farming:hemp_2", table.copy(crop_def))
-- stage 3
crop_def.tiles = {"farming_hemp_3.png"}
minetest.register_node("farming:hemp_3", table.copy(crop_def))
-- stage 4
crop_def.tiles = {"farming_hemp_4.png"}
minetest.register_node("farming:hemp_4", table.copy(crop_def))
-- stage 5
crop_def.tiles = {"farming_hemp_5.png"}
minetest.register_node("farming:hemp_5", table.copy(crop_def))
-- stage 6
crop_def.tiles = {"farming_hemp_6.png"}
crop_def.drop = {
items = {
{items = {'farming:hemp_leaf'}, rarity = 2},
{items = {'farming:seed_hemp'}, rarity = 1},
}
}
minetest.register_node("farming:hemp_6", table.copy(crop_def))
-- stage 7
crop_def.tiles = {"farming_hemp_7.png"}
crop_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(crop_def))
-- stage 8 (final)
crop_def.tiles = {"farming_hemp_8.png"}
crop_def.groups.growing = 0
crop_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(crop_def))
minetest.register_node("farming:hemp_rug", {
description = "Hemp Rug",
tiles = {"hemp_rope.png"},
wield_image = "farming_hemp_rope.png",
inventory_image = "farming_hemp_rope.png",
paramtype = "light",
paramtype2 = "wallmounted",
groups = {snappy = 3, flammable = 3, attached_node = 1},
drawtype = "nodebox",
node_box = {
type = "wallmounted",
wall_top = {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5},
wall_bottom = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
wall_side = {-0.5, -0.5, -0.5, -0.4375, 0.5, 0.5}
}
})
minetest.register_node("farming:hempcrete", {
description = "Hempcrete",
tiles = {"farming_hempcrete.png"},
groups = {crumbly = 1, cracky = 3},
drawtype = "normal",
sound = default.node_sound_stone_defaults()
})
minetest.register_node("farming:hempcrete_brick", {
description = "Hempcrete Brick",
tiles = {"farming_hempcrete_brick.png"},
groups = {crumbly = 1, cracky = 3},
drawtype = "normal",
sound = default.node_sound_stone_defaults()
})
minetest.register_craftitem("farming:cooked_seed_hemp", {
description = "cooked Hemp Seed",
inventory_image = "farming_cooked_hemp_seed.png",
on_use = minetest.item_eat(4)
})
minetest.register_craftitem("farming:hemp_fabric", {
description = "Hemp Fabric",
inventory_image = "farming_hemp_fabric.png"
})
minetest.register_node("farming:hemp_rope_fence", {
description = "Hemp Rope Fence",
tiles = {"farming_hemp_rope.png"},
inventory_image = "farming_hemp_rope_fence.png",
wield_image = "farming_hemp_rope_fence.png",
walkable = true,
climbable = false,
paramtype = "light",
groups = {snappy = 3, fence = 1, flammable = 3},
drawtype = "nodebox",
node_box = {
type = "connected",
fixed = {-0.0625, -0.3125, -0.0625, 0.0625, 0.3125, 0.0625},
connect_top = {-0.0625, 0.3125, -0.0625, 0.0625, 0.5, 0.0625},
connect_bottom = {-0.0625, -0.5, -0.0625, 0.0625, -0.3125, 0.0625},
connect_front = {{-0.0625, 0.1875, -0.5, 0.0625, 0.3125, -0.0625}, {-0.0625, -0.3125, -0.5, 0.0625, -0.1875, -0.0625}},
connect_left = {{-0.5, 0.1875, -0.0625, -0.0625, 0.3125, 0.0625}, {-0.5, -0.3125, -0.0625, -0.0625, -0.1875, 0.0625}},
connect_back = {{-0.0625, 0.1875, 0.0625, 0.0625, 0.3125, 0.5}, {-0.0625, -0.3125, 0.0625, 0.0625, -0.1875, 0.5}},
connect_right = {{0.0625, 0.1875, -0.0625, 0.5, 0.3125, 0.0625}, {0.0625, -0.3125, -0.0625, 0.5, -0.1875, 0.0625}}
},
connects_to = {"group:fence", "group:wood", "group:tree", "group:stone", "farming:hemp_rope", "farming:hempcrete"}
})
local S = farming.intllib
local tr = minetest.get_modpath("toolranks")
-- Hoe registration function
......@@ -101,8 +102,20 @@ function farming.hoe_on_use(itemstack, user, pointed_thing, uses)
minetest.sound_play("default_dig_crumbly", {pos = pt.under, gain = 0.5})
if not minetest.setting_getbool("creative_mode") then
itemstack:add_wear(65535/(uses-1))
local wear = 65535 / (uses -1)
if minetest.setting_getbool("creative_mode") then
if tr then
wear = 1
else
wear = 0
end
end
if tr then
itemstack = toolranks.new_afteruse(itemstack, user, under, {wear = wear})
else
itemstack:add_wear(wear)
end
return itemstack
......@@ -151,3 +164,31 @@ farming.register_hoe(":farming:hoe_diamond", {
max_uses = 500,
material = "default:diamond"
})
-- Toolranks support
if tr then
minetest.override_item("farming:hoe_wood", {
original_description = "Wood Hoe",
description = toolranks.create_description("Wood Hoe")})
minetest.override_item("farming:hoe_stone", {
original_description = "Stone Hoe",
description = toolranks.create_description("Stone Hoe")})
minetest.override_item("farming:hoe_steel", {
original_description = "Steel Hoe",
description = toolranks.create_description("Steel Hoe")})
minetest.override_item("farming:hoe_bronze", {
original_description = "Bronze Hoe",
description = toolranks.create_description("Bronze Hoe")})
minetest.override_item("farming:hoe_mese", {
original_description = "Mese Hoe",
description = toolranks.create_description("Mese Hoe")})
minetest.override_item("farming:hoe_diamond", {
original_description = "Diamond Hoe",
description = toolranks.create_description("Diamond Hoe")})
end
--[[
Minetest Farming Redo Mod 1.22 (4th June 2016)
Farming Redo Mod 1.25 (6th May 2017)
by TenPlus1
NEW growing routine by prestidigitator
auto-refill by crabman77
......@@ -14,38 +14,6 @@ farming.select = {
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5}
}
farming.DEBUG = false
-- farming.DEBUG = {} -- Uncomment to turn on profiling code/functions
local DEBUG_abm_runs = 0
local DEBUG_abm_time = 0
local DEBUG_timer_runs = 0
local DEBUG_timer_time = 0
if farming.DEBUG then
function farming.DEBUG.reset_times()
DEBUG_abm_runs = 0
DEBUG_abm_time = 0
DEBUG_timer_runs = 0
DEBUG_timer_time = 0
end
function farming.DEBUG.report_times()
local abm_n = DEBUG_abm_runs
local abm_dt = DEBUG_abm_time
local abm_avg = (abm_n > 0 and abm_dt / abm_n) or 0
local timer_n = DEBUG_timer_runs
local timer_dt = DEBUG_timer_time
local timer_avg = (timer_n > 0 and timer_dt / timer_n) or 0
local dt = abm_dt + timer_dt
print("ABM ran for "..abm_dt.."µs over "..abm_n.." runs: "..abm_avg.."µs/run")
print("Timer ran for "..timer_dt.."µs over "..timer_n.." runs: "..timer_avg.."µs/run")
print("Total farming time: "..dt.."µs")
end
end
local statistics = dofile(farming.path.."/statistics.lua")
......@@ -163,7 +131,7 @@ local function plant_name_stage(node)
local name
if type(node) == 'table' then
if type(node) == "table" then
if node.name then
name = node.name
......@@ -442,30 +410,13 @@ end
minetest.after(0, function()
for _, node_def in pairs(minetest.registered_nodes) do
for _, node_def in ipairs(minetest.registered_nodes) do
register_plant_node(node_def)
end
end)
local abm_func = farming.handle_growth
if farming.DEBUG then
local normal_abm_func = abm_func
abm_func = function(...)
local t0 = minetest.get_us_time()
local r = { normal_abm_func(...) }
local t1 = minetest.get_us_time()
DEBUG_abm_runs = DEBUG_abm_runs + 1
DEBUG_abm_time = DEBUG_abm_time + (t1 - t0)
return unpack(r)
end
end
-- Just in case a growing type or added node is missed (also catches existing
-- nodes added to map before timers were incorporated).
......@@ -495,8 +446,7 @@ function farming.plant_growth_timer(pos, elapsed, node_name)
if stages.plant_name == "farming:cocoa" then
if not minetest.find_node_near(pos, 1,
{"default:jungletree", "moretrees:jungletree_leaves_green"}) then
if not minetest.find_node_near(pos, 1, {"default:jungletree"}) then
return true
end
......@@ -561,23 +511,6 @@ function farming.plant_growth_timer(pos, elapsed, node_name)
return growth ~= max_growth
end
if farming.DEBUG then
local timer_func = farming.plant_growth_timer;
farming.plant_growth_timer = function(pos, elapsed, node_name)
local t0 = minetest.get_us_time()
local r = { timer_func(pos, elapsed, node_name) }
local t1 = minetest.get_us_time()
DEBUG_timer_runs = DEBUG_timer_runs + 1
DEBUG_timer_time = DEBUG_timer_time + (t1 - t0)
return unpack(r)
end
end
-- refill placed plant by crabman (26/08/2015)
local can_refill_plant = {
["farming:blueberry_1"] = "farming:blueberries",
......@@ -599,6 +532,7 @@ local can_refill_plant = {
["farming:cocoa_1"] = "farming:cocoa_beans",
["farming:orange_1"] = "farming:orange_item",
["farming:barley_1"] = "farming:seed_barley",
["farming:hemp_1"] = "farming:seed_hemp",
}
function farming.refill_plant(player, plantname, index)
......@@ -610,7 +544,7 @@ function farming.refill_plant(player, plantname, index)
return
end
for i, stack in pairs(inv:get_list("main")) do
for i, stack in ipairs(inv:get_list("main")) do
if stack:get_name() == plantname and i ~= index then
......@@ -635,6 +569,14 @@ function farming.place_seed(itemstack, placer, pointed_thing, plantname)
end
local under = minetest.get_node(pt.under)
-- 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)
end
local above = minetest.get_node(pt.above)
......@@ -691,7 +633,7 @@ function farming.place_seed(itemstack, placer, pointed_thing, plantname)
end
end
-- Function to register plants (for compatibility)
-- Function to register plants (default farming compatibility)
farming.register_plant = function(name, def)
......@@ -727,7 +669,8 @@ farming.register_plant = function(name, def)
selection_box = farming.select,
on_place = function(itemstack, placer, pointed_thing)
return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":"..pname.."_1")
return farming.place_seed(itemstack, placer,
pointed_thing, mname .. ":" .. pname .. "_1")
end,
})
......@@ -740,15 +683,19 @@ farming.register_plant = function(name, def)
-- Register growing steps
for i = 1, def.steps do
local base_rarity = 1
if def.steps ~= 1 then
base_rarity = 8 - (i - 1) * 7 / (def.steps - 1)
end
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},
{items = {mname .. ":" .. pname}, rarity = base_rarity},
{items = {mname .. ":" .. pname}, rarity = base_rarity * 2},
{items = {mname .. ":seed_" .. pname}, rarity = base_rarity},
{items = {mname .. ":seed_" .. pname}, rarity = base_rarity * 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
......@@ -771,7 +718,7 @@ farming.register_plant = function(name, def)
sounds = default.node_sound_leaves_defaults(),
})
-- register_plant_node(node_name)
register_plant_node(node_name)
end
-- Return info
......@@ -779,8 +726,48 @@ farming.register_plant = function(name, def)
return r
end
-- load crops
-- default settings
farming.carrot = true
farming.potato = true
farming.tomato = true
farming.cucumber = true
farming.corn = true
farming.coffee = true
farming.coffee = true
farming.melon = true
farming.sugar = true
farming.pumpkin = true
farming.cocoa = true
farming.raspberry = true
farming.blueberry = true
farming.rhubarb = true
farming.beans = true
farming.grapes = true
farming.barley = true
farming.hemp = true
farming.donuts = true
-- Load new global settings if found inside mod folder
local input = io.open(farming.path.."/farming.conf", "r")
if input then
dofile(farming.path .. "/farming.conf")
input:close()
input = nil
end
-- load new world-specific settings if found inside world folder
local worldpath = minetest.get_worldpath()
local input = io.open(worldpath.."/farming.conf", "r")
if input then
dofile(worldpath .. "/farming.conf")
input:close()
input = nil
end
-- load crops
dofile(farming.path.."/soil.lua")
if not minetest.get_modpath("ethereal") then
dofile(farming.path.."/banana.lua")
......@@ -807,7 +794,8 @@ dofile(farming.path.."/beanpole.lua")
dofile(farming.path.."/grapes.lua")
dofile(farming.path.."/barley.lua")
dofile(farming.path.."/oranges.lua")
dofile(farming.path.."/hemp.lua")
dofile(farming.path.."/donut.lua")
dofile(farming.path.."/mapgen.lua")
dofile(farming.path.."/compatibility.lua") -- Farming Plus compatibility
dofile(farming.path.."/lucky_block.lua")
--[[
Minetest Farming Redo Mod 1.14 (11th May 2015)
by TenPlus1
]]
farming = {}
farming.mod = "redo"
farming.path = minetest.get_modpath("farming")
farming.hoe_on_use = default.hoe_on_use
dofile(farming.path.."/soil.lua")
dofile(farming.path.."/hoes.lua")
dofile(farming.path.."/grass.lua")
dofile(farming.path.."/wheat.lua")
dofile(farming.path.."/cotton.lua")
dofile(farming.path.."/carrot.lua")
dofile(farming.path.."/potato.lua")
dofile(farming.path.."/tomato.lua")
dofile(farming.path.."/cucumber.lua")
dofile(farming.path.."/corn.lua")
dofile(farming.path.."/coffee.lua")
dofile(farming.path.."/melon.lua")
dofile(farming.path.."/sugar.lua")
dofile(farming.path.."/pumpkin.lua")
dofile(farming.path.."/cocoa.lua")
dofile(farming.path.."/raspberry.lua")
dofile(farming.path.."/blueberry.lua")
dofile(farming.path.."/rhubarb.lua")
dofile(farming.path.."/beanpole.lua")
dofile(farming.path.."/donut.lua")
dofile(farming.path.."/mapgen.lua")
dofile(farming.path.."/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
or minetest.get_item_group(above.name, "plant") ~= 0 then -- ADDED this line for multiple seed placement bug
return
end
-- add the node and remove 1 item from the itemstack
if not minetest.is_protected(pt.above, placer:get_player_name()) then
minetest.add_node(pt.above, {name=plantname})
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
end
return itemstack
end
end
-- Single ABM Handles Growing of All Plants
minetest.register_abm({
nodenames = {"group:growing"},
neighbors = {"farming:soil_wet", "default:jungletree"},
interval = 80,
chance = 2,
action = function(pos, node)
-- split plant name (e.g. farming:wheat_1)
local plant = node.name:split("_")[1].."_"
local numb = node.name:split("_")[2]
-- fully grown ?
if not minetest.registered_nodes[plant..(numb + 1)] then return end
-- cocoa pod on jungle tree ?
if plant ~= "farming:cocoa_" then
-- growing on wet soil ?
if minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name ~= "farming:soil_wet" then return end
end
-- enough light ?
if minetest.get_node_light(pos) < 13 then return 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,
})
--]]
......@@ -76,7 +76,7 @@ Potato Seeds = Kartoffel Samen
#pumpkin.lua
Pumpkin = Kürbis
Pumpkin Slice = Kürbisscheibe
Jack 'O Lantern = Kürbislaterne
Jack 'O Lantern (punch to turn on and off) = Kürbislaterne (Punch zum Ein- und Ausschalten)
Pumpkin Bread = Kürbisbrot
Pumpkin Dough = Kürbisteig
Pumpkin Seeds = Kürbis Samen
......
......@@ -72,7 +72,7 @@ Baked Potato =
#pumpkin.lua
Pumpkin =
Pumpkin Slice =
Jack 'O Lantern =
Jack 'O Lantern (punch to turn on and off) =
Pumpkin Bread =
Pumpkin Dough =
......
-- add lucky blocks
if minetest.get_modpath("lucky_block") then
lucky_block:add_blocks({
{"dro", {"farming:corn"}, 5},
{"dro", {"farming:coffee_cup_hot"}, 1},
{"dro", {"farming:bread"}, 5},
{"nod", "farming:jackolantern", 0},
{"tro", "farming:jackolantern_on"},
{"nod", "default:river_water_source", 1},
{"dro", {"farming:trellis", "farming:grapes"}, 5},
{"dro", {"farming:bottle_ethanol"}, 1},
{"nod", "farming:melon", 0},
{"dro", {"farming:donut", "farming:donut_chocolate", "farming:donut_apple"}, 5},
{"dro", {"farming:hemp_leaf", "farming:hemp_fibre", "farming:seed_hemp"}, 5},
})
end
-- decoration function
local function register_plant(name, min, max, spawnby, num)
local function register_plant(name, min, max, spawnby, num, enabled)
if enabled ~= true then
return
end
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass"},
......@@ -20,46 +26,50 @@ local function register_plant(name, min, max, spawnby, num)
})
end
function farming.register_mgv6_decorations()
register_plant("potato_3", 15, 40, "", -1)
register_plant("tomato_7", 5, 20, "", -1)
register_plant("carrot_8", 1, 30, "group:water", 1)
register_plant("cucumber_4", 1, 20, "group:water", 1)
register_plant("corn_7", 12, 22, "", -1)
register_plant("corn_8", 10, 20, "", -1)
register_plant("coffee_5", 20, 45, "", -1)
register_plant("melon_8", 1, 20, "group:water", 1)
register_plant("pumpkin_8", 1, 20, "group:water", 1)
register_plant("raspberry_4", 3, 10, "", -1)
register_plant("rhubarb_3", 3, 15, "", -1)
register_plant("blueberry_4", 3, 10, "", -1)
register_plant("beanbush", 18, 35, "", -1)
register_plant("grapebush", 25, 45, "", -1)
register_plant("strawberry_4", 3, 10, "", -1)
end
-- add crops to mapgen
register_plant("potato_3", 15, 40, "", -1, farming.potato)
register_plant("tomato_7", 5, 20, "", -1, farming.tomato)
register_plant("corn_7", 12, 22, "", -1, farming.corn)
register_plant("coffee_5", 20, 45, "", -1, farming.coffee)
register_plant("raspberry_4", 3, 10, "", -1, farming.raspberry)
register_plant("rhubarb_3", 3, 15, "", -1, farming.rhubarb)
register_plant("blueberry_4", 3, 10, "", -1, farming.blueberry)
register_plant("beanbush", 18, 35, "", -1, farming.beans)
register_plant("grapebush", 25, 45, "", -1, farming.grapes)
register_plant("strawberry_4", 3, 10, "", -1, farming.grapes)
-- v7 maps have a beach so plants growing near water is limited to 6 high
function farming.register_mgv7_decorations()
register_plant("potato_3", 15, 40, "", -1)
register_plant("tomato_7", 5, 20, "", -1)
register_plant("carrot_8", 1, 6, "", -1)
register_plant("cucumber_4", 1, 6, "", -1)
register_plant("corn_7", 12, 22, "", -1)
register_plant("corn_8", 10, 20, "", -1)
register_plant("coffee_5", 20, 45, "", -1)
register_plant("melon_8", 1, 6, "", -1)
register_plant("pumpkin_8", 1, 6, "", -1)
register_plant("raspberry_4", 3, 10, "", -1)
register_plant("rhubarb_3", 3, 15, "", -1)
register_plant("blueberry_4", 3, 10, "", -1)
register_plant("beanbush", 18, 35, "", -1)
register_plant("grapebush", 25, 45, "", -1)
register_plant("strawberry_4", 3, 10, "", -1)
end
-- detect mapgen
if minetest.get_mapgen_setting("mg_name") == "v6" then
farming.register_mgv6_decorations() ; print ("v6")
if minetest.get_mapgen_params().mgname == "v6" then
register_plant("carrot_8", 1, 30, "group:water", 1, farming.carrot)
register_plant("cucumber_4", 1, 20, "group:water", 1, farming.cucumber)
register_plant("melon_8", 1, 20, "group:water", 1, farming.melon)
register_plant("pumpkin_8", 1, 20, "group:water", 1, farming.pumpkin)
else
farming.register_mgv7_decorations() ; print ("v7")
-- v7 maps have a beach so plants growing near water is limited to 6 high
register_plant("carrot_8", 1, 6, "", -1, farming.carrot)
register_plant("cucumber_4", 1, 6, "", -1, farming.cucumber)
register_plant("melon_8", 1, 6, "", -1, farming.melon)
register_plant("pumpkin_8", 1, 6, "", -1, farming.pumpkin)
end
if farming.hemp then
minetest.register_decoration({
deco_type = "simple",
place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter"},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.06,
spread = {x = 100, y = 100, z = 100},
seed = 420,
octaves = 3,
persist = 0.6
},
y_min = 5,
y_max = 35,
decoration = "farming:hemp_7",
spawn_by = "group:tree",
num_spawn_by = 1,
})
end
......@@ -61,7 +61,7 @@ minetest.register_craft({
-- jack 'o lantern
minetest.register_node("farming:jackolantern", {
description = S("Jack 'O Lantern"),
description = S("Jack 'O Lantern (punch to turn on and off)"),
tiles = {
"farming_pumpkin_top.png",
"farming_pumpkin_top.png",
......@@ -90,7 +90,10 @@ minetest.register_node("farming:jackolantern_on", {
},
light_source = default.LIGHT_MAX - 1,
paramtype2 = "facedir",
groups = {choppy = 1, oddly_breakable_by_hand = 1, flammable = 2},
groups = {
choppy = 1, oddly_breakable_by_hand = 1, flammable = 2,
not_in_creative_inventory = 1
},
sounds = default.node_sound_wood_defaults(),
drop = "farming:jackolantern",
on_punch = function(pos, node, puncher)
......
textures/banana_single.png

200 B