DEADSOFTWARE

blocks.cfg -> Blocks.pas
[cavecraft.git] / src / Blocks.pas
1 unit Blocks;
3 interface
5 const (* Block id *)
6 none = 0;
7 dirt = 1;
8 grass = 2;
9 stone = 3;
10 oakWoodPlanks = 4;
11 cobblestone = 5;
12 bedrock = 6;
13 sand = 7;
14 gravel = 8;
15 oakWood = 9;
16 obsidian = 10;
17 bookshelf = 11;
18 mossStone = 12;
19 blockOfIron = 13;
20 blockOfGold = 14;
21 blockOfDiamond = 15;
22 goldOre = 16;
23 ironOre = 17;
24 coalOre = 18;
25 diamondOre = 19;
26 redstoneOre = 20;
27 oakLeaves = 21;
28 redFlower = 22;
29 yellowFlower = 23;
30 redMooshroom = 24;
31 brownMooshroom = 25;
32 torch = 26;
33 tnt = 27;
34 chest = 28;
35 craftingTable = 29;
36 cactus = 30;
37 glass = 31;
38 wool1 = 32;
39 wool2 = 33;
40 wool3 = 34;
41 wool4 = 35;
42 wool5 = 36;
43 wool6 = 37;
44 wool7 = 38;
45 wool8 = 39;
46 wool9 = 40;
47 wool10 = 41;
48 wool11 = 42;
49 wool12 = 43;
50 wool13 = 44;
51 wool14 = 45;
52 wool15 = 46;
53 wool16 = 47;
54 snow = 48;
55 ladder = 49;
56 water = 50;
57 lava = 51;
58 oakSapling = 52;
59 sponge = 53;
60 lapisLazuliOre = 54;
61 lapisLazuliBlock = 55;
62 sandstone = 56;
63 tallGrass = 57;
64 deadBush = 58;
65 cobweb = 59;
66 bricks = 60;
67 snowBlock = 61;
68 ice = 62;
69 snowLayer = 63;
70 clayBlock = 64;
71 sugarCane = 65;
72 pumpkin = 66;
73 jackLantern = 67;
74 stoneBricks = 68;
75 mossyStoneBricks = 69;
76 crackedStoneBricks = 70;
77 chiseledStokeBricks = 71;
78 ironBras = 72;
79 melonBlock = 73;
80 mycelium = 74;
81 backgroundOakWood = 75;
82 spawner = 76;
83 bed1 = 77;
84 bed2 = 78;
85 openWoodenDoor1 = 79;
86 openWoodenDoor2 = 80;
87 closedWoodenDoor1 = 81;
88 closedWoodenDoor2 = 82;
89 birchWood = 83;
90 backgroundBirchWood = 84;
91 spruceWood = 85;
92 backgroundSpruceWood = 86;
93 spruceLeaves = 87;
94 redMushroomBlock1 = 88;
95 redMushroomBlock2 = 89;
96 brownMushroomBlock1 = 90;
97 brownMushroomBlock2 = 91;
98 oakFence = 92;
99 backgroundOakFence = 93;
100 backgroundOakWoodPlanks = 94;
101 painting1 = 95;
102 painting2 = 96;
103 painting3 = 97;
104 painting4 = 98;
105 painting5 = 99;
106 painting6 = 100;
107 painting7 = 101;
108 giftChest = 102;
109 vines = 103;
110 sign = 104;
111 redstoneTorch = 105;
112 furnace = 106;
113 closedWoodenTrapdoor = 107;
114 openWoodenTrapdoor = 108;
115 netherrack = 109;
116 netherPortal = 110;
117 glowstone = 111;
118 birchLeaves = 112;
119 soulSand = 113;
120 birchSapling = 114;
121 spruceSapling = 115;
122 redstoneLampOff = 116;
123 redstoneLampOn = 117;
124 backgroundObsidian = 118;
125 glassPlane = 119;
126 farmland = 120;
127 cake = 121;
128 wheat = 122;
129 melonStem = 123;
130 pumpkinStem = 124;
131 burningFurnace = 125;
132 reservedBlock = 126;
134 function GetTexture(id : integer) : integer;
135 function GetResistant(id : integer) : integer;
136 function GetTool(id : integer) : integer;
137 function GetLevel(id : integer) : integer;
138 function GetLightAbsorbtion(id : integer) : integer;
139 function GetLightEmission(id : integer) : integer;
141 function IsTransporent(id : integer) : boolean;
142 function IsForeground(id : integer) : boolean;
143 function IsOverlapped(id : integer) : boolean;
144 function IsSolid(id : integer) : boolean;
146 implementation
148 uses items_store;
150 const
151 lastBlock = 125;
153 var
154 bltex, hp, tool, lvl, abslight, emmlight, flags : array [0..lastBlock] of integer;
156 function GetTexture(id : integer) : integer;
157 begin
158 result := bltex[id];
159 end;
161 function GetResistant(id : integer) : integer;
162 begin
163 result := hp[id];
164 end;
166 function GetTool(id : integer) : integer;
167 begin
168 result := tool[id];
169 end;
171 function GetLevel(id : integer) : integer;
172 begin
173 result := lvl[id];
174 end;
176 function GetLightAbsorbtion(id : integer) : integer;
177 begin
178 result := abslight[id];
179 end;
181 function GetLightEmission(id : integer) : integer;
182 begin
183 result := emmlight[id];
184 end;
186 function IsTransporent(id : integer) : boolean;
187 begin
188 result := (flags[id] and (1 << 0)) <> 0;
189 end;
191 function IsForeground(id : integer) : boolean;
192 begin
193 result := (flags[id] and (1 << 1)) <> 0;
194 end;
196 function IsOverlapped(id : integer) : boolean;
197 begin
198 result := (flags[id] and (1 << 2)) <> 0;
199 end;
201 function IsSolid(id : integer) : boolean;
202 begin
203 result := (flags[id] and (1 << 3)) <> 0;
204 end;
206 procedure InitBlock(id, xtex, xhp, xtool, xlvl, xabslight, xemmlight : integer; solid, transporent, foreground, overlap : boolean);
207 begin
208 Assert((id >= 0) and (id <= lastBlock));
209 bltex[id] := xtex;
210 hp[id] := xhp;
211 tool[id] := xtool;
212 lvl[id] := xlvl;
213 abslight[id] := xabslight;
214 emmlight[id] := xemmlight;
215 flags[id] := 0;
216 if transporent then flags[id] := flags[id] or (1 << 0);
217 if foreground then flags[id] := flags[id] or (1 << 1);
218 if overlap then flags[id] := flags[id] or (1 << 2);
219 if solid then flags[id] := flags[id] or (1 << 3);
220 end;
222 initialization
223 InitBlock(none, 0, 0, 0, 0, 0, 0, false, true, false, true);
224 InitBlock(dirt, 1, 9, 2, 0, 15, 0, true, false, false, false);
225 InitBlock(grass, 2, 9, 2, 0, 15, 0, true, false, false, false);
226 InitBlock(stone, 3, 60, 1, 1, 15, 0, true, false, false, false);
227 InitBlock(oakWoodPlanks, 4, 30, 3, 0, 15, 0, true, false, false, false);
228 InitBlock(cobblestone, 5, 60, 1, 1, 15, 0, true, false, false, false);
229 InitBlock(bedrock, 6, 2147483647, 0, 0, 15, 0, true, false, false, false);
230 InitBlock(sand, 7, 9, 2, 0, 15, 0, true, false, false, false);
231 InitBlock(gravel, 8, 9, 2, 0, 15, 0, true, false, false, false);
232 InitBlock(oakWood, 9, 30, 3, 0, 15, 0, true, false, false, false);
233 InitBlock(obsidian, 10, 1000, 1, 5, 15, 0, true, false, false, false);
234 InitBlock(bookshelf, 11, 24, 3, 0, 0, 0, false, false, false, false);
235 InitBlock(mossStone, 12, 40, 1, 1, 15, 0, true, false, false, false);
236 InitBlock(blockOfIron, 13, 40, 1, 2, 15, 0, true, false, false, false);
237 InitBlock(blockOfGold, 14, 60, 1, 3, 15, 0, true, false, false, false);
238 InitBlock(blockOfDiamond, 15, 60, 1, 3, 15, 0, true, false, false, false);
239 InitBlock(goldOre, 16, 65, 1, 3, 15, 0, true, false, false, false);
240 InitBlock(ironOre, 17, 65, 1, 2, 15, 0, true, false, false, false);
241 InitBlock(coalOre, 18, 65, 1, 1, 15, 0, true, false, false, false);
242 InitBlock(diamondOre, 19, 65, 1, 3, 15, 0, true, false, false, false);
243 InitBlock(redstoneOre, 20, 65, 1, 3, 15, 6, true, false, false, false);
244 InitBlock(oakLeaves, 21, 3, 4, 1, 1, 0, true, false, false, false);
245 InitBlock(redFlower, 22, 0, 0, 0, 0, 0, false, true, false, true);
246 InitBlock(yellowFlower, 23, 0, 0, 0, 0, 0, false, true, false, true);
247 InitBlock(redMooshroom, 24, 0, 0, 0, 0, 0, false, true, false, true);
248 InitBlock(brownMooshroom, 25, 0, 0, 0, 0, 0, false, true, false, true);
249 InitBlock(torch, 26, 0, 0, 0, 0, 14, false, true, false, false);
250 InitBlock(tnt, 27, 0, 0, 0, 15, 0, true, false, false, false);
251 InitBlock(chest, 28, 39, 3, 0, 0, 0, false, false, false, false);
252 InitBlock(craftingTable, 29, 39, 3, 0, 0, 0, false, false, false, false);
253 InitBlock(cactus, 30, 6, 0, 0, 0, 0, true, true, false, false);
254 InitBlock(glass, 31, 6, 0, 1, 1, 0, true, true, false, false);
255 InitBlock(wool1, 32, 12, 0, 0, 0, 0, false, false, false, false);
256 InitBlock(wool2, 33, 12, 0, 0, 0, 0, false, false, false, false);
257 InitBlock(wool3, 34, 12, 0, 0, 0, 0, false, false, false, false);
258 InitBlock(wool4, 35, 12, 0, 0, 0, 0, false, false, false, false);
259 InitBlock(wool5, 36, 12, 0, 0, 0, 0, false, false, false, false);
260 InitBlock(wool6, 37, 12, 0, 0, 0, 0, false, false, false, false);
261 InitBlock(wool7, 38, 12, 0, 0, 0, 0, false, false, false, false);
262 InitBlock(wool8, 39, 12, 0, 0, 0, 0, false, false, false, false);
263 InitBlock(wool9, 40, 12, 0, 0, 0, 0, false, false, false, false);
264 InitBlock(wool10, 41, 12, 0, 0, 0, 0, false, false, false, false);
265 InitBlock(wool11, 42, 12, 0, 0, 0, 0, false, false, false, false);
266 InitBlock(wool12, 43, 12, 0, 0, 0, 0, false, false, false, false);
267 InitBlock(wool13, 44, 12, 0, 0, 0, 0, false, false, false, false);
268 InitBlock(wool14, 45, 12, 0, 0, 0, 0, false, false, false, false);
269 InitBlock(wool15, 46, 12, 0, 0, 0, 0, false, false, false, false);
270 InitBlock(wool16, 47, 12, 0, 0, 0, 0, false, false, false, false);
271 InitBlock(snow, 48, 9, 2, 0, 15, 0, true, false, false, false);
272 InitBlock(ladder, 49, 6, 0, 0, 0, 0, false, true, false, false);
273 InitBlock(water, 50, 2147483647, 0, 0, 1, 0, false, true, true, true);
274 InitBlock(lava, 55, 2147483647, 0, 0, 15, 15, false, true, true, true);
275 InitBlock(oakSapling, 60, 0, 0, 0, 0, 0, false, true, false, true);
276 InitBlock(sponge, 61, 9, 0, 0, 15, 0, true, false, false, false);
277 InitBlock(lapisLazuliOre, 62, 65, 1, 2, 15, 0, true, false, false, false);
278 InitBlock(lapisLazuliBlock, 63, 65, 1, 2, 15, 0, true, false, false, false);
279 InitBlock(sandstone, 64, 50, 1, 1, 15, 0, true, false, false, false);
280 InitBlock(tallGrass, 65, 0, 4, 1, 0, 0, false, true, false, true);
281 InitBlock(deadBush, 66, 0, 4, 1, 0, 0, false, true, false, true);
282 InitBlock(cobweb, 67, 60, 4, 1, 0, 0, false, true, false, true);
283 InitBlock(bricks, 68, 60, 1, 1, 15, 0, true, false, false, false);
284 InitBlock(snowBlock, 69, 3, 2, 0, 15, 0, true, false, false, false);
285 InitBlock(ice, 70, 8, 1, 6, 2, 0, true, true, false, false);
286 InitBlock(snowLayer, 71, 2, 2, 1, 1, 0, false, true, true, true);
287 InitBlock(clayBlock, 72, 9, 2, 0, 15, 0, true, false, false, false);
288 InitBlock(sugarCane, 73, 0, 0, 0, 0, 0, false, true, true, true);
289 InitBlock(pumpkin, 74, 15, 3, 0, 1, 0, true, false, false, false);
290 InitBlock(jackLantern, 75, 15, 3, 0, 1, 15, true, false, false, false);
291 InitBlock(stoneBricks, 76, 60, 1, 1, 15, 0, true, false, false, false);
292 InitBlock(mossyStoneBricks, 77, 60, 1, 1, 15, 0, true, false, false, false);
293 InitBlock(crackedStoneBricks, 78, 60, 1, 1, 15, 0, true, false, false, false);
294 InitBlock(chiseledStokeBricks, 79, 60, 1, 1, 15, 0, true, false, false, false);
295 InitBlock(ironBras, 80, 60, 1, 1, 0, 0, false, true, true, false);
296 InitBlock(melonBlock, 81, 15, 0, 0, 15, 0, true, false, false, false);
297 InitBlock(mycelium, 82, 8, 2, 0, 15, 0, true, false, false, false);
298 InitBlock(backgroundOakWood, 98, 30, 3, 0, 0, 0, false, false, false, false);
299 InitBlock(spawner, 83, 75, 0, 0, 0, 0, false, true, false, false);
300 InitBlock(bed1, 84, 3, 0, 0, 0, 0, false, true, false, false);
301 InitBlock(bed2, 85, 3, 0, 0, 0, 0, false, true, false, false);
302 InitBlock(openWoodenDoor1, 86, 30, 3, 0, 0, 0, false, true, false, false);
303 InitBlock(openWoodenDoor2, 102, 30, 3, 0, 0, 0, false, true, false, false);
304 InitBlock(closedWoodenDoor1, 88, 30, 3, 0, 0, 0, true, true, true, false);
305 InitBlock(closedWoodenDoor2, 104, 30, 3, 0, 0, 0, true, true, true, false);
306 InitBlock(birchWood, 90, 30, 3, 0, 0, 0, true, false, false, false);
307 InitBlock(backgroundBirchWood, 99, 30, 3, 0, 0, 0, false, false, false, false);
308 InitBlock(spruceWood, 91, 30, 3, 0, 0, 0, true, false, false, false);
309 InitBlock(backgroundSpruceWood, 100, 30, 3, 0, 0, 0, false, false, false, false);
310 InitBlock(spruceLeaves, 92, 3, 4, 1, 1, 0, true, false, false, false);
311 InitBlock(redMushroomBlock1, 93, 3, 3, 0, 2, 0, true, false, false, false);
312 InitBlock(redMushroomBlock2, 95, 3, 3, 0, 0, 0, false, false, false, false);
313 InitBlock(brownMushroomBlock1, 94, 3, 3, 0, 2, 0, true, false, false, false);
314 InitBlock(brownMushroomBlock2, 95, 3, 3, 0, 0, 0, false, false, false, false);
315 InitBlock(oakFence, 96, 30, 3, 0, 0, 0, true, true, false, false);
316 InitBlock(backgroundOakFence, 101, 30, 3, 0, 0, 0, false, true, false, false);
317 InitBlock(backgroundOakWoodPlanks, 97, 30, 3, 0, 0, 0, false, false, false, false);
318 InitBlock(painting1, 106, 0, 0, 0, 0, 0, false, true, false, true);
319 InitBlock(painting2, 107, 0, 0, 0, 0, 0, false, true, false, true);
320 InitBlock(painting3, 108, 0, 0, 0, 0, 0, false, true, false, true);
321 InitBlock(painting4, 109, 0, 0, 0, 0, 0, false, true, false, true);
322 InitBlock(painting5, 110, 0, 0, 0, 0, 0, false, true, false, true);
323 InitBlock(painting6, 111, 0, 0, 0, 0, 0, false, true, false, true);
324 InitBlock(painting7, 112, 0, 0, 0, 0, 0, false, true, false, true);
325 InitBlock(giftChest, 113, 30, 3, 0, 0, 15, false, false, false, false);
326 InitBlock(vines, 114, 3, 4, 1, 0, 0, false, true, true, true);
327 InitBlock(sign, 115, 15, 0, 0, 0, 0, false, true, false, false);
328 InitBlock(redstoneTorch, 116, 0, 0, 0, 0, 7, false, true, false, true);
329 InitBlock(furnace, 117, 40, 3, 0, 0, 0, false, false, false, false);
330 InitBlock(closedWoodenTrapdoor, 118, 30, 3, 0, 0, 0, true, true, true, false);
331 InitBlock(openWoodenTrapdoor, 119, 30, 3, 0, 0, 0, false, true, false, false);
332 InitBlock(netherrack, 120, 30, 1, 1, 15, 0, true, false, false, false);
333 InitBlock(netherPortal, 129, 2147483647, 0, 0, 0, 11, false, true, true, false);
334 InitBlock(glowstone, 121, 10, 1, 0, 0, 15, true, false, false, false);
335 InitBlock(birchLeaves, 135, 3, 4, 1, 1, 0, true, false, false, false);
336 InitBlock(soulSand, 122, 9, 2, 0, 15, 0, true, false, false, false);
337 InitBlock(birchSapling, 123, 0, 0, 0, 0, 0, false, true, false, true);
338 InitBlock(spruceSapling, 124, 0, 0, 0, 0, 0, false, true, false, true);
339 InitBlock(redstoneLampOff, 125, 10, 1, 0, 0, 0, true, false, false, false);
340 InitBlock(redstoneLampOn, 126, 10, 1, 0, 0, 15, true, false, false, false);
341 InitBlock(backgroundObsidian, 127, 1000, 1, 5, 15, 0, false, false, false, false);
342 InitBlock(glassPlane, 128, 6, 0, 1, 1, 0, false, true, false, false);
343 InitBlock(farmland, 136, 9, 2, 0, 15, 0, true, false, false, false);
344 InitBlock(cake, 137, 9, 0, 0, 0, 0, false, true, false, false);
345 InitBlock(wheat, 138, 1, 0, 0, 0, 0, false, true, false, true);
346 InitBlock(melonStem, 139, 1, 0, 0, 0, 0, false, true, false, true);
347 InitBlock(pumpkinStem, 139, 1, 0, 0, 0, 0, false, true, false, true);
348 InitBlock(burningFurnace, 134, 40, 3, 0, 0, 15, false, false, false, false);
349 end.