summaryrefslogtreecommitdiff
path: root/grapes.lua
diff options
context:
space:
mode:
Diffstat (limited to 'grapes.lua')
-rw-r--r--grapes.lua252
1 files changed, 77 insertions, 175 deletions
diff --git a/grapes.lua b/grapes.lua
index a82e02e..a23f560 100644
--- a/grapes.lua
+++ b/grapes.lua
@@ -1,36 +1,45 @@
--- Grapes
+-- grapes
minetest.register_craftitem("farming:grapes", {
description = "Grapes",
inventory_image = "farming_grapes.png",
on_use = minetest.item_eat(2),
+
on_place = function(itemstack, placer, pointed_thing)
+
if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
return
end
- local nod = minetest.get_node_or_nil(pointed_thing.under)
- if nod and nod.name == "farming:trellis" then
+
+ local nodename = minetest.get_node(pointed_thing.under).name
+
+ if nodename == "farming:trellis" then
minetest.set_node(pointed_thing.under, {name="farming:grapes_1"})
else
return
end
+
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 refill
+ end
end
+
return itemstack
end
})
--- Grapes can be used for violet dye
+-- grapes can be used for violet dye
minetest.register_craft({
output = "dye:violet",
recipe = {
@@ -38,8 +47,7 @@ minetest.register_craft({
}
})
--- Trellis
-
+-- trellis
minetest.register_node("farming:trellis", {
description = "Trellis (place on soil before planting grapes)",
drawtype = "plantlike",
@@ -50,33 +58,41 @@ minetest.register_node("farming:trellis", {
walkable = false,
buildable_to = true,
sunlight_propagates = true,
- drop = {
- items = {
- {items = {'farming:trellis'}, rarity = 1},
- }
- },
+ drop = "farming:trellis",
selection_box = farming.select,
groups = {snappy = 3, flammable = 2, attached_node = 1},
sounds = default.node_sound_leaves_defaults(),
+
on_place = function(itemstack, placer, pointed_thing)
+
if minetest.is_protected(pointed_thing.under, placer:get_player_name()) then
return
end
- local nod = minetest.get_node_or_nil(pointed_thing.under)
- if nod and minetest.get_item_group(nod.name, "soil") < 2 then
+
+ local nodename = minetest.get_node(pointed_thing.under).name
+
+ if minetest.get_item_group(nodename, "soil") < 2 then
return
end
+
local top = {
x = pointed_thing.above.x,
y = pointed_thing.above.y + 1,
z = pointed_thing.above.z
}
- nod = minetest.get_node_or_nil(top)
- if nod and nod.name ~= "air" then return end
+
+ nodename = minetest.get_node(top).name
+
+ if nodename ~= "air" then
+ return
+ end
+
minetest.set_node(pointed_thing.above, {name = "farming:trellis"})
+
if not minetest.setting_getbool("creative_mode") then
itemstack:take_item()
end
+
return itemstack
end
})
@@ -96,9 +112,8 @@ minetest.register_craft({
burntime = 15,
})
--- Define Grapes growth stages
-
-minetest.register_node("farming:grapes_1", {
+-- grapes definition
+local crop_def = {
drawtype = "plantlike",
tiles = {"farming_grapes_1.png"},
visual_scale = 1.45,
@@ -116,163 +131,50 @@ minetest.register_node("farming:grapes_1", {
snappy = 3, flammable = 3, not_in_creative_inventory = 1,
attached_node = 1, growing = 1
},
- sounds = default.node_sound_leaves_defaults(),
-})
-
-minetest.register_node("farming:grapes_2", {
- drawtype = "plantlike",
- tiles = {"farming_grapes_2.png"},
- visual_scale = 1.45,
- paramtype = "light",
- walkable = false,
- buildable_to = true,
- sunlight_propagates = true,
- drop = {
- items = {
- {items = {'farming:trellis'}, rarity = 1},
- }
- },
- 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(),
-})
-
-minetest.register_node("farming:grapes_3", {
- drawtype = "plantlike",
- tiles = {"farming_grapes_3.png"},
- visual_scale = 1.45,
- paramtype = "light",
- walkable = false,
- buildable_to = true,
- sunlight_propagates = true,
- drop = {
- items = {
- {items = {'farming:trellis'}, rarity = 1},
- }
- },
- 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(),
-})
-
-minetest.register_node("farming:grapes_4", {
- drawtype = "plantlike",
- tiles = {"farming_grapes_4.png"},
- visual_scale = 1.45,
- paramtype = "light",
- walkable = false,
- buildable_to = true,
- sunlight_propagates = true,
- drop = {
- items = {
- {items = {'farming:trellis'}, rarity = 1},
- }
- },
- 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(),
-})
-
-minetest.register_node("farming:grapes_5", {
- drawtype = "plantlike",
- tiles = {"farming_grapes_5.png"},
- visual_scale = 1.45,
- paramtype = "light",
- walkable = false,
- buildable_to = true,
- sunlight_propagates = true,
- drop = {
- items = {
- {items = {'farming:trellis'}, rarity = 1},
- }
- },
- 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(),
-})
-
-minetest.register_node("farming:grapes_6", {
- drawtype = "plantlike",
- tiles = {"farming_grapes_6.png"},
- visual_scale = 1.45,
- paramtype = "light",
- walkable = false,
- buildable_to = true,
- sunlight_propagates = true,
- drop = {
- items = {
- {items = {'farming:trellis'}, rarity = 1},
- }
- },
- 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(),
-})
-
-minetest.register_node("farming:grapes_7", {
- drawtype = "plantlike",
- tiles = {"farming_grapes_7.png"},
- visual_scale = 1.45,
- paramtype = "light",
- walkable = false,
- buildable_to = true,
- sunlight_propagates = true,
- drop = {
- items = {
- {items = {'farming:trellis'}, rarity = 1},
- }
- },
- 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(),
-})
-
--- Last stage of growth does not have growing group so abm never checks these
-
-minetest.register_node("farming:grapes_8", {
- drawtype = "plantlike",
- tiles = {"farming_grapes_8.png"},
- visual_scale = 1.45,
- paramtype = "light",
- walkable = false,
- buildable_to = true,
- sunlight_propagates = true,
- drop = {
- items = {
- {items = {'farming:trellis'}, rarity = 1},
- {items = {'farming:grapes 3'}, rarity = 1},
- {items = {'farming:grapes 1'}, rarity = 2},
- {items = {'farming:grapes 1'}, rarity = 3},
- }
- },
- selection_box = farming.select,
- groups = {
- snappy = 3, flammable = 2, plant = 1, attached_node = 1,
- not_in_creative_inventory = 1
- },
- sounds = default.node_sound_leaves_defaults(),
-})
-
--- Wild Grape Vine (this is what you find on the map)
+ sounds = default.node_sound_leaves_defaults()
+}
+
+-- stage 1
+minetest.register_node("farming:grapes_1", table.copy(crop_def))
+
+-- stage2
+crop_def.tiles = {"farming_grapes_2.png"}
+minetest.register_node("farming:grapes_2", table.copy(crop_def))
+
+-- stage 3
+crop_def.tiles = {"farming_grapes_3.png"}
+minetest.register_node("farming:grapes_3", table.copy(crop_def))
+
+-- stage 4
+crop_def.tiles = {"farming_grapes_4.png"}
+minetest.register_node("farming:grapes_4", table.copy(crop_def))
+
+-- stage 5
+crop_def.tiles = {"farming_grapes_5.png"}
+minetest.register_node("farming:grapes_5", table.copy(crop_def))
+
+-- stage 6
+crop_def.tiles = {"farming_grapes_6.png"}
+minetest.register_node("farming:grapes_6", table.copy(crop_def))
+
+-- stage 7
+crop_def.tiles = {"farming_grapes_7.png"}
+minetest.register_node("farming:grapes_7", table.copy(crop_def))
+
+-- stage 8 (final)
+crop_def.tiles = {"farming_grapes_8.png"}
+crop_def.groups.growing = 0
+crop_def.drop = {
+ items = {
+ {items = {'farming:trellis'}, rarity = 1},
+ {items = {'farming:grapes 3'}, rarity = 1},
+ {items = {'farming:grapes 1'}, rarity = 2},
+ {items = {'farming:grapes 1'}, rarity = 3},
+ }
+}
+minetest.register_node("farming:grapes_8", table.copy(crop_def))
+-- wild grape vine (this is what you find on the map)
minetest.register_node("farming:grapebush", {
drawtype = "plantlike",
tiles = {"farming_grapebush.png"},