summaryrefslogtreecommitdiff
path: root/fishing.lua
blob: 4c831a00e34c3f50feac11f48b71fbda49142795 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
-- Raw Fish (Thanks to Altairas for her Fish image on DeviantArt)
minetest.register_craftitem("ethereal:fish_raw", {
	description = "Raw Fish",
	inventory_image = "fish_raw.png",
	on_use = minetest.item_eat(2),
})

-- Cooked Fish
minetest.register_craftitem("ethereal:fish_cooked", {
	description = "Cooked Fish",
	inventory_image = "fish_cooked.png",
	on_use = minetest.item_eat(5),
})

-- Sashimi (Thanks to Natalia Grosner for letting me use the sashimi image)
minetest.register_craftitem("ethereal:sashimi", {
	description = "Sashimi",
	inventory_image = "sashimi.png",
	on_use = minetest.item_eat(4),
})

minetest.register_craft({
	output = "ethereal:sashimi 2",
	recipe = {
		{'ethereal:seaweed','ethereal:fish_raw','ethereal:seaweed'},
	}
})

-- Worm
minetest.register_craftitem("ethereal:worm", {
	description = "Worm",
	inventory_image = "worm.png",
})

-- Fishing Rod
minetest.register_craftitem("ethereal:fishing_rod", {
	description = "Fishing Rod",
	inventory_image = "fishing_rod.png",
	stack_max = 1,
	liquids_pointable = true,
})

-- Fishing Rod (Baited)
minetest.register_craftitem("ethereal:fishing_rod_baited", {
	description = "Baited Fishing Rod",
	inventory_image = "fishing_rod_baited.png",
	wield_image = "fishing_rod_wield.png",
	stack_max = 1,
	liquids_pointable = true,
	on_use = function (itemstack, user, pointed_thing)
		if pointed_thing and pointed_thing.under then
			local node = minetest.get_node(pointed_thing.under)
			if string.find(node.name, "default:water_source") then
				if math.random(1, 100) < 5 then
					local inv = user:get_inventory()
					if inv:room_for_item("main", {name="ethereal:fish_raw"}) then
						inv:add_item("main", {name="ethereal:fish_raw"})
						return {name="ethereal:fishing_rod"}
					else
				minetest.chat_send_player(user:get_player_name(), "Your Fish Got Away! Inventory Full")
					end
				end
			end
		end
	end,
})

-- Fishing Rod
minetest.register_craft({
	output = "ethereal:fishing_rod",
	recipe = {
			{"","","default:stick"},
			{"", "default:stick", "farming:string"},
			{"default:stick", "", "farming:string"},
		}
})

-- Sift through 2 Dirt Blocks to find Worm
minetest.register_craft({
	output = "ethereal:worm",
	recipe = {
		{"default:dirt","default:dirt"},
	}
})

-- Cooking Fish
minetest.register_craft({
	type = "cooking",
	output = "ethereal:fish_cooked",
	recipe = "ethereal:fish_raw",
	cooktime = 2,
})

-- Baiting Fishing Rod
minetest.register_craft({
	type = "shapeless",
	output = "ethereal:fishing_rod_baited",
	recipe = {"ethereal:fishing_rod", "ethereal:worm"},
})