From 013ab59da99efd7b97cbf86588cca99b9e7f313d Mon Sep 17 00:00:00 2001
From: TenPlus1 <kinsellaja@yahoo.com>
Date: Mon, 26 Oct 2015 11:22:40 +0000
Subject: Added grape bush, grapes and trellis for growing

---
 README.txt                     |   1 +
 grapes.lua                     | 288 +++++++++++++++++++++++++++++++++++++++++
 init.lua                       |   3 +-
 mapgen.lua                     |   2 +
 textures/farming_grapebush.png | Bin 0 -> 144 bytes
 textures/farming_grapes.png    | Bin 0 -> 175 bytes
 textures/farming_grapes_1.png  | Bin 0 -> 255 bytes
 textures/farming_grapes_2.png  | Bin 0 -> 290 bytes
 textures/farming_grapes_3.png  | Bin 0 -> 307 bytes
 textures/farming_grapes_4.png  | Bin 0 -> 330 bytes
 textures/farming_grapes_5.png  | Bin 0 -> 338 bytes
 textures/farming_grapes_6.png  | Bin 0 -> 347 bytes
 textures/farming_grapes_7.png  | Bin 0 -> 358 bytes
 textures/farming_grapes_8.png  | Bin 0 -> 350 bytes
 textures/farming_trellis.png   | Bin 0 -> 227 bytes
 15 files changed, 293 insertions(+), 1 deletion(-)
 create mode 100644 grapes.lua
 create mode 100644 textures/farming_grapebush.png
 create mode 100644 textures/farming_grapes.png
 create mode 100644 textures/farming_grapes_1.png
 create mode 100644 textures/farming_grapes_2.png
 create mode 100644 textures/farming_grapes_3.png
 create mode 100644 textures/farming_grapes_4.png
 create mode 100644 textures/farming_grapes_5.png
 create mode 100644 textures/farming_grapes_6.png
 create mode 100644 textures/farming_grapes_7.png
 create mode 100644 textures/farming_grapes_8.png
 create mode 100644 textures/farming_trellis.png

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
-- 
cgit v1.2.3