diff --git a/README.txt b/README.txt index 12ea62d..6792338 100644 --- a/README.txt +++ b/README.txt @@ -13,6 +13,7 @@ This mod works by adding your new plant to the {growing=1} group and numbering t Changelog: +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 1.20b- Tidied code, made api compatible with new 0.4.13 changes and changed to soil texture overlays 1.20 - NEW growing routine added that allows crops to grow while player is away doing other things (thanks prestidigitator) diff --git a/grapes.lua b/grapes.lua new file mode 100644 index 0000000..28060f4 --- /dev/null +++ b/grapes.lua @@ -0,0 +1,288 @@ +-- 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) + local nod = minetest.get_node_or_nil(pointed_thing.under) + if nod and nod.name == "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 + return itemstack + end +}) + +-- Grapes can be used for violet dye +minetest.register_craft({ + output = "dye:violet", + recipe = { + {'farming:grapes'}, + } +}) + +-- Trellis + +minetest.register_node("farming:trellis", { + description = "Trellis (place on soil before planting grapes)", + drawtype = "plantlike", + tiles = {"farming_trellis.png"}, + inventory_image = "farming_trellis.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, attached_node = 1, + not_in_creative_inventory = 1 + }, + sounds = default.node_sound_leaves_defaults(), + on_place = function(itemstack, placer, pointed_thing) + local nod = minetest.get_node_or_nil(pointed_thing.under) + if nod and minetest.get_item_group(nod.name, "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 + minetest.set_node(pointed_thing.above, {name = "farming:trellis"}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + return itemstack + end +}) + +minetest.register_craft({ + output = "farming:trellis", + recipe = { + {'default:stick', 'default:stick', 'default:stick'}, + {'default:stick', 'default:stick', 'default:stick'}, + {'default:stick', 'default:stick', 'default:stick'}, + } +}) + +-- Define Grapes growth stages + +minetest.register_node("farming:grapes_1", { + drawtype = "plantlike", + tiles = {"farming_grapes_1.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 = 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) + +minetest.register_node("farming:grapebush", { + drawtype = "plantlike", + tiles = {"farming_grapebush.png"}, + paramtype = "light", + waving = 1, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + drop = { + items = { + {items = {'farming:grapes 1'}, 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(), +}) diff --git a/init.lua b/init.lua index e523148..4a1a3dd 100644 --- a/init.lua +++ b/init.lua @@ -1,5 +1,5 @@ --[[ - Minetest Farming Redo Mod 1.21 (29th August 2015) + Minetest Farming Redo Mod 1.22 (26th October 2015) by TenPlus1 NEW growing routine by prestidigitator auto-refill by crabman77 @@ -65,6 +65,7 @@ dofile(farming.path.."/raspberry.lua") dofile(farming.path.."/blueberry.lua") dofile(farming.path.."/rhubarb.lua") dofile(farming.path.."/beanpole.lua") +dofile(farming.path.."/grapes.lua") dofile(farming.path.."/donut.lua") dofile(farming.path.."/mapgen.lua") dofile(farming.path.."/compatibility.lua") -- Farming Plus compatibility diff --git a/mapgen.lua b/mapgen.lua index f799222..00d4fd1 100644 --- a/mapgen.lua +++ b/mapgen.lua @@ -34,6 +34,7 @@ function farming.register_mgv6_decorations() register_plant("rhubarb_3", 3, 15, "group:tree", 1) register_plant("blueberry_4", 3, 10, "", -1) register_plant("beanbush", 18, 35, "", -1) + register_plant("grapebush", 25, 45, "", -1) end -- v7 maps have a beach so plants growing near water is limited to 6- high @@ -51,6 +52,7 @@ function farming.register_mgv7_decorations() register_plant("rhubarb_3", 3, 15, "group:tree", 1) register_plant("blueberry_4", 3, 10, "", -1) register_plant("beanbush", 18, 35, "", -1) + register_plant("grapebush", 25, 45, "", -1) end -- detect mapgen diff --git a/textures/farming_grapebush.png b/textures/farming_grapebush.png new file mode 100644 index 0000000..c2e6620 Binary files /dev/null and b/textures/farming_grapebush.png differ diff --git a/textures/farming_grapes.png b/textures/farming_grapes.png new file mode 100644 index 0000000..aa00ed6 Binary files /dev/null and b/textures/farming_grapes.png differ diff --git a/textures/farming_grapes_1.png b/textures/farming_grapes_1.png new file mode 100644 index 0000000..64a935d Binary files /dev/null and b/textures/farming_grapes_1.png differ diff --git a/textures/farming_grapes_2.png b/textures/farming_grapes_2.png new file mode 100644 index 0000000..6cc2a33 Binary files /dev/null and b/textures/farming_grapes_2.png differ diff --git a/textures/farming_grapes_3.png b/textures/farming_grapes_3.png new file mode 100644 index 0000000..66d6310 Binary files /dev/null and b/textures/farming_grapes_3.png differ diff --git a/textures/farming_grapes_4.png b/textures/farming_grapes_4.png new file mode 100644 index 0000000..57cdc73 Binary files /dev/null and b/textures/farming_grapes_4.png differ diff --git a/textures/farming_grapes_5.png b/textures/farming_grapes_5.png new file mode 100644 index 0000000..aad41f4 Binary files /dev/null and b/textures/farming_grapes_5.png differ diff --git a/textures/farming_grapes_6.png b/textures/farming_grapes_6.png new file mode 100644 index 0000000..2e23a3c Binary files /dev/null and b/textures/farming_grapes_6.png differ diff --git a/textures/farming_grapes_7.png b/textures/farming_grapes_7.png new file mode 100644 index 0000000..9e70b6d Binary files /dev/null and b/textures/farming_grapes_7.png differ diff --git a/textures/farming_grapes_8.png b/textures/farming_grapes_8.png new file mode 100644 index 0000000..5093a06 Binary files /dev/null and b/textures/farming_grapes_8.png differ diff --git a/textures/farming_trellis.png b/textures/farming_trellis.png new file mode 100644 index 0000000..855b932 Binary files /dev/null and b/textures/farming_trellis.png differ