summaryrefslogtreecommitdiff
path: root/cocoa.lua
diff options
context:
space:
mode:
Diffstat (limited to 'cocoa.lua')
-rw-r--r--cocoa.lua136
1 files changed, 60 insertions, 76 deletions
diff --git a/cocoa.lua b/cocoa.lua
index 3635ff4..e5e50cf 100644
--- a/cocoa.lua
+++ b/cocoa.lua
@@ -1,17 +1,17 @@
--- Place Cocoa
-
+-- 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
+ if not pt or pt.type ~= "node" then
return
end
local under = minetest.get_node(pt.under)
- -- return if any of the nodes is not registered
+ -- return if any of the nodes are not registered
if not minetest.registered_nodes[under.name] then
return
end
@@ -20,26 +20,30 @@ function place_cocoa(itemstack, placer, pointed_thing, plantname)
if under.name ~= "default:jungletree" then
return
end
-
+
-- add the node and remove 1 item from the itemstack
minetest.set_node(pt.above, {name = plantname})
+
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:cocoa_beans",
placer:get_wield_index()
)
- end -- END refill
+ end
end
+
return itemstack
end
---= Cocoa
-
+-- cocoa beans
minetest.register_craftitem("farming:cocoa_beans", {
description = "Cocoa Beans",
inventory_image = "farming_cocoa_beans.png",
@@ -55,8 +59,7 @@ minetest.register_craft( {
}
})
--- Cookie
-
+-- chocolate cookie
minetest.register_craftitem("farming:cookie", {
description = "Cookie",
inventory_image = "farming_cookie.png",
@@ -70,8 +73,7 @@ minetest.register_craft( {
}
})
--- Bar of Dark Chocolate (Thanks to Ice Pandora for her deviantart.com chocolate tutorial)
-
+-- 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",
@@ -85,9 +87,8 @@ minetest.register_craft( {
}
})
--- Define Coffee growth stages
-
-minetest.register_node("farming:cocoa_1", {
+-- cocoa definition
+local crop_def = {
drawtype = "plantlike",
tiles = {"farming_cocoa_1.png"},
paramtype = "light",
@@ -105,81 +106,64 @@ minetest.register_node("farming:cocoa_1", {
snappy = 3, flammable = 2, plant = 1, growing = 1,
not_in_creative_inventory=1, leafdecay = 1, leafdecay_drop = 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, growing = 1,
- not_in_creative_inventory=1, leafdecay = 1, leafdecay_drop = 1
- },
- sounds = default.node_sound_leaves_defaults(),
-})
+ sounds = default.node_sound_leaves_defaults()
+}
--- Last stage of Cocoa growth does not have growing=1 so abm never has to check these
+-- stage 1
+minetest.register_node("farming:cocoa_1", table.copy(crop_def))
-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, leafdecay = 1, leafdecay_drop = 1
- },
- sounds = default.node_sound_leaves_defaults(),
-})
-
--- Abm to add random Cocoa Pod to Jungle Tree trunks
+-- stage2
+crop_def.tiles = {"farming_cocoa_2.png"}
+crop_def.drop = {
+ items = {
+ {items = {'farming:cocoa_beans 1'}, rarity = 1},
+ }
+}
+minetest.register_node("farming:cocoa_2", table.copy(crop_def))
+
+-- stage 3 (final)
+crop_def.tiles = {"farming_cocoa_3.png"}
+crop_def.groups.growing = 0
+crop_def.drop = {
+ items = {
+ {items = {'farming:cocoa_beans 2'}, rarity = 1},
+ {items = {'farming:cocoa_beans 1'}, rarity = 2},
+ }
+}
+minetest.register_node("farming:cocoa_3", table.copy(crop_def))
+-- add random cocoa pods to jungle tree trunks
minetest.register_abm({
nodenames = {"default:jungletree"},
neighbors = {"default:jungleleaves", "moretrees:jungletree_leaves_green"},
- interval = 80,
- chance = 20,
+ interval = 8,
+ chance = 80,
+ catch_up = false,
action = function(pos, node)
- local dir = math.random(1,50)
+ 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
+ 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
-
- local nod = minetest.get_node_or_nil(pos)
- if nod then nod = nod.name else return end
- if nod == "air"
+ local nodename = minetest.get_node(pos).name
+
+ if nodename == "air"
and minetest.get_node_light(pos) > 12 then
--- print ("COCOA", pos.x, pos.y, pos.z)
+
+ --print ("Cocoa Pod added at " .. minetest.pos_to_string(pos))
+
minetest.set_node(pos, {
- name = "farming:cocoa_"..tostring(math.random(1, 3))
+ name = "farming:cocoa_" .. tostring(math.random(1, 3))
})
end
end,
-}) \ No newline at end of file
+})