Differences From
Artifact [033036f747]:
1 1 local T = starlit.translator
2 2 local lib = starlit.mod.lib
3 3
4 4 starlit.terrain = {}
5 5 local soilSounds = {
6 6 footstep = 'default-dirt-footstep';
7 - dig = 'default-dig-crumbly';
8 7 dug = 'default-dug-node';
9 8 }
10 9 local sandSounds = {
11 10 footstep = {name='default-sand-footstep',gain=0.1};
12 - dig = 'default-dig-crumbly';
13 11 dug = 'default-dug-node';
14 12 }
15 13 local grassSounds = {
16 14 footstep = 'default-grass-footstep';
17 - dig = 'default-dig-crumbly';
15 + dug = 'default-dug-node';
16 +}
17 +local hardSounds = {
18 + footstep = 'default-hard-footstep';
18 19 dug = 'default-dug-node';
19 20 }
20 21
22 +local soilDrop = {
23 + max_items = 3;
24 + items = {
25 + {rarity = 2, items = {'starlit:soil_clump'}};
26 + {rarity = 3, items = {'starlit:soil_clump'}};
27 + {rarity = 4, items = {'starlit:soil_clump'}};
28 + };
29 +}
21 30 minetest.register_node('starlit:soil', {
22 31 description = T 'Soil';
23 - tiles = {'default_dirt.png'};
24 - groups = {dirt = 1};
25 - drop = '';
32 + tiles = {'starlit-terrain-soil.png'};
33 + groups = {looseClump = 2, soil = 1};
34 + drop = soilDrop;
26 35 sounds = soilSounds;
27 36 _starlit = {
28 37 kind = 'block';
29 38 elements = {};
30 39 };
31 40 })
32 41
33 42
34 43 minetest.register_node('starlit:sand', {
35 44 description = T 'Sand';
36 - tiles = {'default_sand.png'};
37 - groups = {dirt = 1};
45 + tiles = {'starlit-terrain-sand.png'};
46 + groups = {looseClump = 1, sand = 1};
38 47 drop = '';
39 48 sounds = sandSounds;
40 49 _starlit = {
41 50 kind = 'block';
42 51 fab = starlit.type.fab { element = { silicon = 25 } };
43 52 };
44 53 })
................................................................................
46 55 short_description = T 'Soil';
47 56 description = starlit.ui.tooltip {
48 57 title = T 'Soil';
49 58 desc = 'A handful of nutrient-packed soil, suitable for growing plants';
50 59 color = lib.color(0.3,0.2,0.1);
51 60 };
52 61 inventory_image = 'starlit-item-soil.png';
53 - groups = {soil = 1};
62 + groups = {looseClump = 2, soil = 1};
63 + on_place = function(me, luser, point)
64 + if me:get_count() < 3 then return end
65 + if minetest.place_node(point.above, {name = 'starlit:soil'}, luser) then
66 + me:take_item(3)
67 + end
68 + return me
69 + end;
54 70 _starlit = {
55 71 fab = starlit.type.fab { element = { carbon = 12 / 4 } };
56 72 };
57 73 })
58 74
59 75 function starlit.terrain.createGrass(def)
60 76 local drop = {
................................................................................
66 82 };
67 83 };
68 84 }
69 85 minetest.register_node(def.name, {
70 86 description = T 'Greengraze';
71 87 tiles = {
72 88 def.img .. '.png';
73 - 'default_dirt.png';
89 + 'starlit-terrain-soil.png';
74 90 {
75 - name = 'default_dirt.png^' .. def.img ..'_side.png';
91 + name = 'starlit-terrain-soil.png^' .. def.img ..'-overlay.png';
76 92 tileable_vertical = false;
77 93 };
78 94 };
79 - groups = {grass = 1, dirt = 1, sub_walk = 1};
80 - drop = '';
95 + groups = {looseClump = 2, grass = 1, soil = 1, sub_walk = 1};
96 + drop = soilDrop;
81 97 sounds = grassSounds;
82 98 _starlit = {
83 99 fab = def.fab;
84 100 recover = def.recover;
85 101 recover_vary = def.recover_vary;
86 102 };
87 103 })
88 104 end
89 105
90 106
91 107 starlit.terrain.createGrass {
92 108 name = 'starlit:greengraze';
93 109 desc = T 'Greengraze';
94 - img = 'default_grass';
110 + img = 'starlit-terrain-greengraze';
95 111 fab = starlit.type.fab {
96 112 element = {
97 113 carbon = 12;
98 114 };
99 115 time = {
100 116 shred = 2.5;
101 117 };
................................................................................
156 172 tiles = m.tiles or
157 173 (m.tone and {
158 174 string.format('default_stone.png^[colorizehsl:%s:%s:%s',
159 175 m.tone.hue, m.tone.sat, m.tone.lum)
160 176 }) or {'default_stone.png'};
161 177 groups = grp;
162 178 drop = m.rocks or '';
179 + sounds = hardSounds;
163 180 _starlit = {
164 181 kind = 'block';
165 182 elements = m.elements;
166 183 fab = m.fab;
167 184 recover = m.recover;
168 185 recover_vary = m.recover_vary;
169 186 };