sorcery  Check-in [1ee0f58037]

Overview
Comment:fix many bugs, rebalance & update alchemy recipes, more helpful display of extracts in recipes
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 1ee0f5803776fcccd86ae517f18e57d40e4d39f24a0a37b28bae2626efec7d82
User & Date: lexi on 2021-07-07 11:35:54
Other Links: manifest | tags
Context
2021-07-07
11:39
fix multiply bug check-in: 119981d2d8 user: lexi tags: trunk
11:35
fix many bugs, rebalance & update alchemy recipes, more helpful display of extracts in recipes check-in: 1ee0f58037 user: lexi tags: trunk
08:23
bug fixes check-in: 612f10a00d user: lexi tags: trunk
Changes

Modified cookbook.lua from [fac511da65] to [4b9992727f].

49
50
51
52
53
54
55


56
57
58


59
60
61
62
63
64
65
...
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
...
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
...
454
455
456
457
458
459
460





461
462
463
464
465
466
467
468
469
470
471
	local props = minetest.registered_items[item]._sorcery
	if props and props.recipe then
		return props.recipe
	end
	return {}
end
local modofname = function(id)


	local sep = string.find(id,':')
	if sep == nil then return nil end -- uh oh
	return string.sub(id, 1, sep - 1)


end
local item_restrict_eval = function(name, restrict)
	for _,n in pairs(constants.exclude_names) do
		if string.find(name,n) ~= nil then
			return false
		end
	end
................................................................................
			end
		end;
	};
	grind = {
		name = 'Milling Guide';
		node = 'sorcery:mill';
		booksuf = 'Manual';
		chance = 1;
		w = 1, h = 2;
		pick = function(restrict)
			cache:populate_grindables()
			if restrict then
				local t = {}
				for _, i in pairs(cache.grindables) do
					local pd = sorcery.itemclass.get(i, 'grindable')
................................................................................
						end
					end
					return {v,''} -- !!
				end
			end
		end;
	};
	-- wand = {
	--	booksuf = 'Grimoire';
	-- }
	enchant = {
		name = 'Enchantment Matrix';
		node = 'sorcery:enchanter';
		booksuf = 'Grimoire';
		drawslots = false;
		chance = 6;
		w = 2, h = 2;
		pick = function(restrict)
			-- TODO make sure affinity restrictions match
			local names = {}
			for k,v in pairs(sorcery.data.enchants) do
				if v.recipe then names[#names+1] = k end
			end
................................................................................
	local props = k.props(result)
	for i=1,#k.slots do
		local ing = ingredients[i]
		local x, y = k.slots[i][1], k.slots[i][2]
		if ing and ing ~= '' then
			local tt
			if k.indesc then tt = k.indesc(ing) else tt = desc_builtin(ing) end





			t = t .. string.format([[
				item_image[%f,%f;1,1;%s]
				tooltip[%f,%f;1,1;%s]
			]], x,y, minetest.formspec_escape(group_eval(ing)),
			    x,y, minetest.formspec_escape(tt))
		else
			if k.drawslots == nil or k.drawslots then
				t = string.format('box[%f,%f;0.1,0.1;#00000060]',x+0.45,y+0.45) .. t
			end
		end
	end







>
>
|
|
|
>
>







 







|







 







<
<
<





|







 







>
>
>
>
>

|

|







49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
...
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
...
328
329
330
331
332
333
334



335
336
337
338
339
340
341
342
343
344
345
346
347
...
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
	local props = minetest.registered_items[item]._sorcery
	if props and props.recipe then
		return props.recipe
	end
	return {}
end
local modofname = function(id)
	local item = minetest.registered_nodes[id]
	if item == nil or item.mod_origin == '??' or not item.mod_origin then
		local sep = string.find(id,':')
		if sep == nil then return nil end -- uh oh
		return string.sub(id, 1, sep - 1)
	end
	return item.mod_origin
end
local item_restrict_eval = function(name, restrict)
	for _,n in pairs(constants.exclude_names) do
		if string.find(name,n) ~= nil then
			return false
		end
	end
................................................................................
			end
		end;
	};
	grind = {
		name = 'Milling Guide';
		node = 'sorcery:mill';
		booksuf = 'Manual';
		chance = 4;
		w = 1, h = 2;
		pick = function(restrict)
			cache:populate_grindables()
			if restrict then
				local t = {}
				for _, i in pairs(cache.grindables) do
					local pd = sorcery.itemclass.get(i, 'grindable')
................................................................................
						end
					end
					return {v,''} -- !!
				end
			end
		end;
	};



	enchant = {
		name = 'Enchantment Matrix';
		node = 'sorcery:enchanter';
		booksuf = 'Grimoire';
		drawslots = false;
		chance = 4;
		w = 2, h = 2;
		pick = function(restrict)
			-- TODO make sure affinity restrictions match
			local names = {}
			for k,v in pairs(sorcery.data.enchants) do
				if v.recipe then names[#names+1] = k end
			end
................................................................................
	local props = k.props(result)
	for i=1,#k.slots do
		local ing = ingredients[i]
		local x, y = k.slots[i][1], k.slots[i][2]
		if ing and ing ~= '' then
			local tt
			if k.indesc then tt = k.indesc(ing) else tt = desc_builtin(ing) end
			local overlay = ''
			if minetest.get_item_group(ing, 'sorcery_extract') ~= 0 then
				overlay = string.format('item_image[%f,%f;0.6,0.6;%s]', x+0.5, y+0.5, ing)
				ing = minetest.registered_nodes[ing]._sorcery.extract.of
			end
			t = t .. string.format([[
				item_image[%f,%f;1,1;%s]%s
				tooltip[%f,%f;1,1;%s]
			]], x,y, minetest.formspec_escape(group_eval(ing)), overlay,
			    x,y, minetest.formspec_escape(tt))
		else
			if k.drawslots == nil or k.drawslots then
				t = string.format('box[%f,%f;0.1,0.1;#00000060]',x+0.45,y+0.45) .. t
			end
		end
	end

Modified data/draughts.lua from [0a84465667] to [91c2fdbd59].

179
180
181
182
183
184
185

186
187
188
189
190
191
192
	-- 	infusion = 'sorcery:grease_war';
	-- 	basis = 'sorcery:potion_soft';
	-- 	desc = 'Amplify the power of your blows and crack steel armor with the force of your bare hands';
	-- };
	resilient = {
		name = 'Resilient';
		color = {124,124,124}; style = 'dull';

		basis = 'sorcery:potion_soft';
		desc = 'Withstand greater damage and hold your ground even in face of tremendous force';
		quals = { force = true, duration = true };
	};
	hover = {
		name = 'Hover';
		color = {164,252,55}; style = 'sparkle';







>







179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
	-- 	infusion = 'sorcery:grease_war';
	-- 	basis = 'sorcery:potion_soft';
	-- 	desc = 'Amplify the power of your blows and crack steel armor with the force of your bare hands';
	-- };
	resilient = {
		name = 'Resilient';
		color = {124,124,124}; style = 'dull';
		infusion = 'sorcery:liquid_sap_pine_bottle';
		basis = 'sorcery:potion_soft';
		desc = 'Withstand greater damage and hold your ground even in face of tremendous force';
		quals = { force = true, duration = true };
	};
	hover = {
		name = 'Hover';
		color = {164,252,55}; style = 'sparkle';

Modified data/elixirs.lua from [c432830d8f] to [c6ee9bea3b].

24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
	};
	Rapidity = {
		color = {183,28,238}; qual = 'speed';
		apply = inc('speed');
		describe = function(potion)
			return 'good', 'quickened', 'This potion will take effect more quickly and easily'
		end;
		infusion = 'sorcery:liquid_sap_acacia_bottle';
	};
	Purity = {
		color = {244,255,255}; qual = 'purity';
		apply = inc('purity');
		describe = function(potion)
			return 'good', 'purified', 'This potion\'s impurities and undesirable qualities are diminished or eliminated'
		end;







|







24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
	};
	Rapidity = {
		color = {183,28,238}; qual = 'speed';
		apply = inc('speed');
		describe = function(potion)
			return 'good', 'quickened', 'This potion will take effect more quickly and easily'
		end;
		infusion = 'sorcery:oil_wind';
	};
	Purity = {
		color = {244,255,255}; qual = 'purity';
		apply = inc('purity');
		describe = function(potion)
			return 'good', 'purified', 'This potion\'s impurities and undesirable qualities are diminished or eliminated'
		end;

Modified data/extracts.lua from [442aef28cd] to [ee1be18d2d].

1
2
3
4
5
6
7

8
9
10
11
12
13







14
15
16
17
18
19
20
21
22
23
return {
	rice = {"farming:seed_rice", {255,255,235}};
	cotton = {"farming:seed_cotton", {210,210,210}};
	wheat = {"farming:seed_wheat", {255,255,150}};
	rye = {"farming:seed_rye", {255,245,180}};
	oat = {"farming:seed_oat", {144,81,29}};
	barley = {"farming:seed_barley", {239,255,157}};

	mint = {"farming:seed_mint", {190,255,190}};
	hemp = {"farming:seed_hemp", {247,255,46}};
	garlic = {"farming:garlic_clove", {225,167,31}};
	onion = {"farming:onion", {247,189,78}};
	blueberry = {"group:food_blueberries", {63,38,194}};
	raspberry = {"group:food_raspberries", {228,51,210}};







	chili = {"farming:chili_pepper", {243,75,49}};
	pine = {"default:pine_sapling", {41,166,80}};
	cocoa = {"farming:cocoa_beans", {146,38,0}};
	grape = {"farming:grapes", {206,56,214}};
	kelp = {"default:sand_with_kelp", {109,185,145}};
	fern = {"default:fern_1", {164,238,47}};
	greengrass = {"default:grass_1", {185,255,115}};
	marram = {"default:marram_grass_1", {127,255,210}};
	shrub = {"default:dry_shrub", {187,149,76}};
};







>






>
>
>
>
>
>
>










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
return {
	rice = {"farming:seed_rice", {255,255,235}};
	cotton = {"farming:seed_cotton", {210,210,210}};
	wheat = {"farming:seed_wheat", {255,255,150}};
	rye = {"farming:seed_rye", {255,245,180}};
	oat = {"farming:seed_oat", {144,81,29}};
	barley = {"farming:seed_barley", {239,255,157}};
	parsley = {"farming:parsley", {248,255,142}};
	mint = {"farming:seed_mint", {190,255,190}};
	hemp = {"farming:seed_hemp", {247,255,46}};
	garlic = {"farming:garlic_clove", {225,167,31}};
	onion = {"farming:onion", {247,189,78}};
	blueberry = {"group:food_blueberries", {63,38,194}};
	raspberry = {"group:food_raspberries", {228,51,210}};
	blackberry = {"group:food_blackberries", {113,0,101}};
	strawberry = {"group:food_strawberry", {255,30,78}};
	pepper = {"group:food_pepper", {220,236,142}};
	banana = {"group:food_banana", {238,255,30}};
	carrot = {"group:food_carrot", {255,183,30}};
	melon = {"farming:melon_slice", {180,255,30}};
	cucumber = {"group:food_cucumber", {109,224,22}};
	chili = {"farming:chili_pepper", {243,75,49}};
	pine = {"default:pine_sapling", {41,166,80}};
	cocoa = {"farming:cocoa_beans", {146,38,0}};
	grape = {"farming:grapes", {206,56,214}};
	kelp = {"default:sand_with_kelp", {109,185,145}};
	fern = {"default:fern_1", {164,238,47}};
	greengrass = {"default:grass_1", {185,255,115}};
	marram = {"default:marram_grass_1", {127,255,210}};
	shrub = {"default:dry_shrub", {187,149,76}};
};

Modified data/greases.lua from [60224ad0aa] to [f41def3541].

25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
..
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
			'sorcery:extract_onion';
		};
	};
	pine = {
		color = {58,194,89};
		core = { 'sorcery:oil_wind' };
		mix = {
			'sorcery:extract_pine',
			'default:pine_needles', 'default:pine_needles',
			'default:pine_needles', 'default:pine_needles';
		};
	};
	whisper = {
		color = {148,226,215};
		style = 'sparkle';
	};
	war = {
................................................................................
	};
	neutralizing = {
		color = {221,148,95};
		core = { 'sorcery:oil_dawn', 'sorcery:oil_berry' };
		mix = {
			'sorcery:powder_aluminum';
			'sorcery:powder_vidrium';
			'sorcery:extract_pine';
		};
	};
	lift = {
		color = {219,73,210};
		style = 'sparkle';
		core = { 'sorcery:oil_wind', 'sorcery:oil_stone' };
		mix = {
			'sorcery:powder_levitanium';
			'sorcery:extract_fern';
		};
	};
}







|
|
<







 







|












25
26
27
28
29
30
31
32
33

34
35
36
37
38
39
40
..
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
			'sorcery:extract_onion';
		};
	};
	pine = {
		color = {58,194,89};
		core = { 'sorcery:oil_wind' };
		mix = {
			'sorcery:extract_pine';
			'sorcery:liquid_sap_pine_bottle';

		};
	};
	whisper = {
		color = {148,226,215};
		style = 'sparkle';
	};
	war = {
................................................................................
	};
	neutralizing = {
		color = {221,148,95};
		core = { 'sorcery:oil_dawn', 'sorcery:oil_berry' };
		mix = {
			'sorcery:powder_aluminum';
			'sorcery:powder_vidrium';
			'sorcery:liquid_sap_aspen_bottle';
		};
	};
	lift = {
		color = {219,73,210};
		style = 'sparkle';
		core = { 'sorcery:oil_wind', 'sorcery:oil_stone' };
		mix = {
			'sorcery:powder_levitanium';
			'sorcery:extract_fern';
		};
	};
}

Modified data/oils.lua from [003a3c5f62] to [8c84c471a8].

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
..
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
			'farming:salt';
		};
	};
	sanguine = { -- healing
		color = {243,66,66};
		style = 'sparkle';
		mix = {
			'flowers:mushroom_red';
			'sorcery:extract_raspberry';
			'sorcery:blood';
			'farming:beetroot';
		};
	};
	flame = {
		color = {243,57,49};
		style = 'sparkle';
		mix = {
			'sorcery:extract_chili';
			'farming:beetroot';
			'sorcery:extract_chili';

		};
	};
	stone = {
		color = { 68, 68, 68 };
		style = 'sparkle';
		mix = {
			'farming:grapes';
			'farming:grapes';
			'farming:grapes';
			'sorcery:extract_cocoa';
			'sorcery:extract_cocoa';
			'sorcery:extract_oat';
		};
	};
	dawn = {
		color = {255,255,255};
		mix = {
................................................................................
			'sorcery:extract_raspberry';
			'sorcery:extract_onion';
		};
	};
	bleak = {
		color = {155,78,56};
		mix = {
			'farming:salt';
			'sorcery:extract_raspberry';
			'sorcery:extract_raspberry';
			'sorcery:extract_onion';
			'farming:peas';
			'farming:peas';
			'farming:peas';
		};
	};
	luscious = {
		color = {10,255,10};
		mix = {
			'farming:hemp_oil';
			'farming:grapes';
			'farming:cocoa_beans';
			'farming:cocoa_beans';
			'farming:sugar';
			'farming:sugar';
		};
	};
	luck = {
		color = {156,54,255};
		style = 'sparkle';
		mix = {
			'sorcery:extract_marram';
			'farming:hemp_leaf';
			'xdecor:honey';
			'farming:salt';
			'farming:salt';
		};
	};
}







<
|









|

>






|
|
<
<







 







|
<
<
<
|
|
<






|

<
|
<









<




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
..
82
83
84
85
86
87
88
89



90
91

92
93
94
95
96
97
98
99

100

101
102
103
104
105
106
107
108
109

110
111
112
113
			'farming:salt';
		};
	};
	sanguine = { -- healing
		color = {243,66,66};
		style = 'sparkle';
		mix = {

			'sorcery:extract_strawberry';
			'sorcery:blood';
			'farming:beetroot';
		};
	};
	flame = {
		color = {243,57,49};
		style = 'sparkle';
		mix = {
			'sorcery:extract_chili';
			'farming:pepper_red';
			'sorcery:extract_chili';
			'sorcery:liquid_sap_acacia_bottle';
		};
	};
	stone = {
		color = { 68, 68, 68 };
		style = 'sparkle';
		mix = {
			'farming:pepper_ground';
			'farming:parsley';


			'sorcery:extract_cocoa';
			'sorcery:extract_oat';
		};
	};
	dawn = {
		color = {255,255,255};
		mix = {
................................................................................
			'sorcery:extract_raspberry';
			'sorcery:extract_onion';
		};
	};
	bleak = {
		color = {155,78,56};
		mix = {
			'sorcery:liquid_sap_jungle_bottle';



			'farming:blackberry';
			'farming:soy_sauce';

		};
	};
	luscious = {
		color = {10,255,10};
		mix = {
			'farming:hemp_oil';
			'group:food_strawberry';
			'farming:cocoa_beans';

			'farming:caramel';

		};
	};
	luck = {
		color = {156,54,255};
		style = 'sparkle';
		mix = {
			'sorcery:extract_marram';
			'farming:hemp_leaf';
			'xdecor:honey';

			'farming:salt';
		};
	};
}

Modified data/philters.lua from [6fff6fb29a] to [67b62e2890].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
return {
	dark = {
		color = {86,16,42};
		infusion = "default:obsidian_shard";
	};
	shimmering = {
		color = {224,255,155};
		infusion = "default:mese_crystal_fragment";
	};
	silent = {
		color = {249,193,42};
		infusion = "sorcery:extract_cotton";
	};
	verdant = {
		infusion = "default:sapling";
		color = {78,222,113};
	};
	blazing = {
		infusion = "sorcery:oil_flame";
		color = {229,32,53};
	};
}



|










|







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
return {
	dark = {
		color = {86,16,42};
		infusion = "sorcery:liquid_sap_pine_bottle";
	};
	shimmering = {
		color = {224,255,155};
		infusion = "default:mese_crystal_fragment";
	};
	silent = {
		color = {249,193,42};
		infusion = "sorcery:extract_cotton";
	};
	verdant = {
		infusion = "sorcery:liquid_sap_apple_bottle";
		color = {78,222,113};
	};
	blazing = {
		infusion = "sorcery:oil_flame";
		color = {229,32,53};
	};
}

Modified data/potions.lua from [018fbedf8a] to [d785900359].

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
		infusion = 'sorcery:oil_mystic';
		basis = 'sorcery:holy_water';
		substitutes = 'Serene';
		glow = 8;
	};
	Misty = {
		color = {186,241,233};
		infusion = 'sorcery:grease_fog';
	};
	Luminous = {
		color = {255,237,160};
		style = 'dull';
		glow = 12;
		infusion = 'sorcery:gem_luxite';
	};







|







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
		infusion = 'sorcery:oil_mystic';
		basis = 'sorcery:holy_water';
		substitutes = 'Serene';
		glow = 8;
	};
	Misty = {
		color = {186,241,233};
		infusion = 'sorcery:liquid_sap_aspen_bottle';
	};
	Luminous = {
		color = {255,237,160};
		style = 'dull';
		glow = 12;
		infusion = 'sorcery:gem_luxite';
	};

Modified data/trees.lua from [66384fbe7c] to [4c4b931a13].

33
34
35
36
37
38
39

40
41
42
43
44
45
46
47
48
49
50
	acacia = {
		desc = 'Acacia';
		node = 'default:acacia_tree';
		sapling = 'default:acacia_sapling';
		leaves = 'default:acacia_leaves';
		sap = 'Acacia Sap';
		color = {217, 51, 22};

	};
	jungle = {
		desc = 'Jungle';
		node = 'default:jungletree';
		sapling = 'default:junglesapling';
		leaves = 'default:jungleleaves';
		sap = 'Tropical Syrup';
		color = {86, 39, 71};
		imgvariant = 'dull';
	};
}







>











33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
	acacia = {
		desc = 'Acacia';
		node = 'default:acacia_tree';
		sapling = 'default:acacia_sapling';
		leaves = 'default:acacia_leaves';
		sap = 'Acacia Sap';
		color = {217, 51, 22};
		sapglow = 7;
	};
	jungle = {
		desc = 'Jungle';
		node = 'default:jungletree';
		sapling = 'default:junglesapling';
		leaves = 'default:jungleleaves';
		sap = 'Tropical Syrup';
		color = {86, 39, 71};
		imgvariant = 'dull';
	};
}

Modified potions.lua from [22f82424c6] to [13f2ff2455].

286
287
288
289
290
291
292




293
294
295
296
297
298
299
	local desc = u.str.capitalize(n) .. ' Extract'
	sorcery.register_potion(name, desc, nil, color, 'sparkle', false, {
		groups = {
			sorcery_extract = 1;
			sorcery_container = 2;
		};
		_sorcery = {




			container = {
				type = 'vessel';
				hold = 'liquid';
				charge = 3;
				has = liqid;
				empty = 'vessels:glass_bottle';
			};







>
>
>
>







286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
	local desc = u.str.capitalize(n) .. ' Extract'
	sorcery.register_potion(name, desc, nil, color, 'sparkle', false, {
		groups = {
			sorcery_extract = 1;
			sorcery_container = 2;
		};
		_sorcery = {
			extract = {
				of = item;
				proto = v;
			};
			container = {
				type = 'vessel';
				hold = 'liquid';
				charge = 3;
				has = liqid;
				empty = 'vessels:glass_bottle';
			};

Modified tap.lua from [4e48d35701] to [eb69eaaf9d].

13
14
15
16
17
18
19

20
21
22
23
24
25
26
..
47
48
49
50
51
52
53






54
55
56
57
58
59
60
	tiles = {
		'default_copper_block.png';
		'default_steel_block.png';
	};
	groups = {
		dig_immediate = 2;
		attached_node = 1;

	};
	sunlight_propagates = true;
	paramtype = 'light', paramtype2 = 'wallmounted';
	selection_box = { type='fixed', fixed = {-0.2,-0.5,-0.35; 0.3,0.1,0.4} };
	collision_box = { type='fixed', fixed = {-0.2,-0.5,-0.35; 0.3,0.1,0.4} };
	node_placement_prediction = '';
	on_place = function(stack,who,where)
................................................................................
		return stack
	end;
	on_rotate = function() return false end;
	_sorcery = {
		recipe = {
			note = 'Extract syrups and oils from trees';
		};






	};
})

minetest.register_craft {
	output = 'sorcery:tap';
	recipe = {
		{'','sorcery:screw_steel','basic_materials:steel_bar'};







>







 







>
>
>
>
>
>







13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
..
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
	tiles = {
		'default_copper_block.png';
		'default_steel_block.png';
	};
	groups = {
		dig_immediate = 2;
		attached_node = 1;
		sorcery_instantiate = 1;
	};
	sunlight_propagates = true;
	paramtype = 'light', paramtype2 = 'wallmounted';
	selection_box = { type='fixed', fixed = {-0.2,-0.5,-0.35; 0.3,0.1,0.4} };
	collision_box = { type='fixed', fixed = {-0.2,-0.5,-0.35; 0.3,0.1,0.4} };
	node_placement_prediction = '';
	on_place = function(stack,who,where)
................................................................................
		return stack
	end;
	on_rotate = function() return false end;
	_sorcery = {
		recipe = {
			note = 'Extract syrups and oils from trees';
		};
		on_load = function(pos,node)
			local tpos = pos + minetest.wallmounted_to_dir(node.param2)
			local tree = sorcery.tree.get(tpos)
			if not tree or tree.def.sap == false then return end;
			tapdrip(tree.def.sapliq, pos)
		end;
	};
})

minetest.register_craft {
	output = 'sorcery:tap';
	recipe = {
		{'','sorcery:screw_steel','basic_materials:steel_bar'};

Modified tree.lua from [be6e1c803c] to [9824222a51].

39
40
41
42
43
44
45

46
47
48
49
50
51
52
			name = sapdesc;
			kind = 'sorcery:sap';
			color = t.sapcolor or t.color or {119,24,30};
			autogen = true;
			imgvariant = 'sparkle';
			measure = sorcery.liquid.units.pint;
			usetrough = t.sap ~= false;

		}
	end

end)

sorcery.tree.get = function(what)
	local name, pos







>







39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
			name = sapdesc;
			kind = 'sorcery:sap';
			color = t.sapcolor or t.color or {119,24,30};
			autogen = true;
			imgvariant = 'sparkle';
			measure = sorcery.liquid.units.pint;
			usetrough = t.sap ~= false;
			glow = t.sapglow;
		}
	end

end)

sorcery.tree.get = function(what)
	local name, pos