diff options
Diffstat (limited to 'cocoa.lua')
-rw-r--r-- | cocoa.lua | 136 |
1 files changed, 60 insertions, 76 deletions
@@ -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 +}) |