elements.lua 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550
  1. -- The Minetest engine gives us 256 palette indexes to work with. For
  2. -- this particular mod, we don't need quite that many though. Much of
  3. -- he functionality of this mod assumes that the palette index of the
  4. -- node defined in this mod will always have an item name associated
  5. -- with it, and that'd be a valid assumption, considering that this mod
  6. -- will never grant players a copy of the node with an "unused" index.
  7. -- However, other mods might change the param2 value for a node, or
  8. -- perhaps give players new copies of nodes with palette indexes
  9. -- outside the expected range. For this reason, among others, all
  10. -- palette indexes have been assigned an item. Under normal
  11. -- circumstances, you'll see less than an eighth of these indexes
  12. -- actually used in the world, but having them defined prevents
  13. -- unexpected behaviour. That said, other mods shouldn't be messing
  14. -- with param2 values of nodes they're not familiar with, and changing
  15. -- the param2 value of one of these nodes (or generating a new node
  16. -- with an odd palette index) isn't recommended, and with the valid
  17. -- value lost, a random item will become associated with the
  18. -- newly-indexed node based on its new index.
  19. --
  20. -- Some of these items were never obtainable and/or are no longer
  21. -- defined in the game. That doesn't really matter. Random strings
  22. -- could have been associated with the unused indexes so long as they
  23. -- were in the format valid for item names.
  24. local to_element = {
  25. [ 0] = "default:coal_lump",
  26. [ 1] = "default:iron_lump",
  27. [ 2] = "default:sand",
  28. [ 3] = "default:sapling",
  29. [ 4] = "default:mese_crystal",
  30. [ 5] = "default:copper_lump",
  31. [ 6] = "default:diamond",
  32. [ 7] = "default:gold_lump",
  33. [ 8] = "default:junglesapling",
  34. [ 9] = "farming:seed_cotton",
  35. [ 10] = "farming:seed_wheat",
  36. [ 11] = "farming:string",
  37. [ 12] = "farming:wheat",
  38. [ 13] = "farming:cotton",
  39. [ 14] = "default:pine_sapling",
  40. [ 15] = "default:acacia_sapling",
  41. [ 16] = "flowers:mushroom_brown",
  42. [ 17] = "flowers:mushroom_red",
  43. [ 18] = "flowers:mushroom_spores_brown",
  44. [ 19] = "flowers:mushroom_spores_red",
  45. [ 20] = "default:aspen_sapling",
  46. [ 21] = "default:flint",
  47. [ 22] = "default:coral_skeleton",
  48. [ 23] = "default:acacia_bush_sapling",
  49. [ 24] = "default:bush_sapling",
  50. [ 25] = "default:tin_lump",
  51. [ 26] = "default:coalblock",
  52. [ 27] = "default:copperblock",
  53. [ 28] = "default:desert_stonebrick",
  54. [ 29] = "default:dirt_with_snow",
  55. [ 30] = "default:ice",
  56. [ 31] = "default:sandstonebrick",
  57. [ 32] = "default:snow",
  58. [ 33] = "default:snowblock",
  59. [ 34] = "farming:bread",
  60. [ 35] = "farming:cotton_1",
  61. [ 36] = "farming:cotton_2",
  62. [ 37] = "farming:cotton_3",
  63. [ 38] = "farming:cotton_4",
  64. [ 39] = "farming:cotton_5",
  65. [ 40] = "farming:cotton_6",
  66. [ 41] = "farming:cotton_7",
  67. [ 42] = "farming:cotton_8",
  68. [ 43] = "farming:flour",
  69. [ 44] = "farming:hoe_bronze",
  70. [ 45] = "farming:hoe_steel",
  71. [ 46] = "farming:hoe_stone",
  72. [ 47] = "farming:hoe_wood",
  73. [ 48] = "farming:soil",
  74. [ 49] = "farming:soil_wet",
  75. [ 50] = "farming:wheat_1",
  76. [ 51] = "farming:wheat_2",
  77. [ 52] = "farming:wheat_3",
  78. [ 53] = "farming:wheat_4",
  79. [ 54] = "farming:wheat_5",
  80. [ 55] = "farming:wheat_6",
  81. [ 56] = "farming:wheat_7",
  82. [ 57] = "farming:wheat_8",
  83. [ 58] = "flowers:dandelion_white",
  84. [ 59] = "flowers:dandelion_yellow",
  85. [ 60] = "flowers:geranium",
  86. [ 61] = "flowers:rose",
  87. [ 62] = "flowers:tulip",
  88. [ 63] = "flowers:viola",
  89. [ 64] = "bones:bones",
  90. [ 65] = "default:axe_bronze",
  91. [ 66] = "default:axe_diamond",
  92. [ 67] = "default:axe_mese",
  93. [ 68] = "default:bronze_ingot",
  94. [ 69] = "default:bronzeblock",
  95. [ 70] = "default:copper_ingot",
  96. [ 71] = "default:diamondblock",
  97. [ 72] = "default:gold_ingot",
  98. [ 73] = "default:goldblock",
  99. [ 74] = "default:grass_1",
  100. [ 75] = "default:grass_2",
  101. [ 76] = "default:grass_3",
  102. [ 77] = "default:grass_4",
  103. [ 78] = "default:grass_5",
  104. [ 79] = "default:jungleleaves",
  105. [ 80] = "default:junglewood",
  106. [ 81] = "default:obsidian",
  107. [ 82] = "default:obsidian_glass",
  108. [ 83] = "default:obsidian_shard",
  109. [ 84] = "default:pick_bronze",
  110. [ 85] = "default:pick_diamond",
  111. [ 86] = "default:shovel_bronze",
  112. [ 87] = "default:shovel_diamond",
  113. [ 88] = "default:shovel_mese",
  114. [ 89] = "default:stone_with_copper",
  115. [ 90] = "default:stone_with_diamond",
  116. [ 91] = "default:stone_with_gold",
  117. [ 92] = "default:stonebrick",
  118. [ 93] = "default:sword_bronze",
  119. [ 94] = "default:sword_diamond",
  120. [ 95] = "default:sword_mese",
  121. [ 96] = "screwdriver:screwdriver",
  122. [ 97] = "screwdriver:screwdriver1",
  123. [ 98] = "screwdriver:screwdriver2",
  124. [ 99] = "screwdriver:screwdriver3",
  125. [100] = "screwdriver:screwdriver4",
  126. [101] = "stairs:slab_junglewood",
  127. [102] = "stairs:slab_junglewoodupside_down",
  128. [103] = "stairs:slab_stonebrick",
  129. [104] = "stairs:slab_stonebrickupside_down",
  130. [105] = "stairs:stair_junglewood",
  131. [106] = "stairs:stair_junglewoodupside_down",
  132. [107] = "stairs:stair_stonebrick",
  133. [108] = "stairs:stair_stonebrickupside_down",
  134. [109] = "default:mese_crystal_fragment",
  135. [110] = "default:stone_with_mese",
  136. [111] = "stairs:slab_brickupside_down",
  137. [112] = "stairs:slab_cobbleupside_down",
  138. [113] = "stairs:slab_sandstoneupside_down",
  139. [114] = "stairs:slab_stoneupside_down",
  140. [115] = "stairs:slab_woodupside_down",
  141. [116] = "stairs:stair_brickupside_down",
  142. [117] = "stairs:stair_cobbleupside_down",
  143. [118] = "stairs:stair_sandstoneupside_down",
  144. [119] = "stairs:stair_stoneupside_down",
  145. [120] = "stairs:stair_woodupside_down",
  146. [121] = "doors:door_steel",
  147. [122] = "doors:door_steel_b_1",
  148. [123] = "doors:door_steel_b_2",
  149. [124] = "doors:door_steel_t_1",
  150. [125] = "doors:door_steel_t_2",
  151. [126] = "doors:door_wood_b_1",
  152. [127] = "doors:door_wood_b_2",
  153. [128] = "doors:door_wood_t_1",
  154. [129] = "doors:door_wood_t_2",
  155. [130] = "vessels:drinking_glass",
  156. [131] = "vessels:glass_bottle",
  157. [132] = "vessels:glass_fragments",
  158. [133] = "vessels:steel_bottle",
  159. [134] = "dye:black",
  160. [135] = "dye:blue",
  161. [136] = "dye:brown",
  162. [137] = "dye:cyan",
  163. [138] = "dye:dark_green",
  164. [139] = "dye:dark_grey",
  165. [140] = "dye:green",
  166. [141] = "dye:grey",
  167. [142] = "dye:magenta",
  168. [143] = "dye:orange",
  169. [144] = "dye:pink",
  170. [145] = "dye:red",
  171. [146] = "dye:violet",
  172. [147] = "dye:white",
  173. [148] = "dye:yellow",
  174. [149] = "wool:black",
  175. [150] = "wool:blue",
  176. [151] = "wool:brown",
  177. [152] = "wool:cyan",
  178. [153] = "wool:dark_green",
  179. [154] = "wool:dark_grey",
  180. [155] = "wool:green",
  181. [156] = "wool:grey",
  182. [157] = "wool:magenta",
  183. [158] = "wool:orange",
  184. [159] = "wool:pink",
  185. [160] = "wool:red",
  186. [161] = "wool:violet",
  187. [162] = "wool:white",
  188. [163] = "wool:yellow",
  189. [164] = "bucket:bucket_empty",
  190. [165] = "bucket:bucket_lava",
  191. [166] = "bucket:bucket_water",
  192. [167] = "cooked_rat",
  193. [168] = "default:apple",
  194. [169] = "default:axe_steel",
  195. [170] = "default:axe_stone",
  196. [171] = "default:axe_wood",
  197. [172] = "default:book",
  198. [173] = "default:bookshelf",
  199. [174] = "default:brick",
  200. [175] = "default:cactus",
  201. [176] = "default:chest",
  202. [177] = "default:chest_locked",
  203. [178] = "default:clay",
  204. [179] = "default:clay_brick",
  205. [180] = "default:clay_lump",
  206. [181] = "default:cloud",
  207. [182] = "default:cobble",
  208. [183] = "default:desert_sand",
  209. [184] = "default:desert_stone",
  210. [185] = "default:dirt",
  211. [186] = "default:dirt_with_grass",
  212. [187] = "default:dirt_with_grass_footsteps",
  213. [188] = "default:dry_shrub",
  214. [189] = "default:fence_wood",
  215. [190] = "default:furnace",
  216. [191] = "default:furnace_active",
  217. [192] = "default:glass",
  218. [193] = "default:gravel",
  219. [194] = "default:junglegrass",
  220. [195] = "default:jungletree",
  221. [196] = "default:ladder",
  222. [197] = "default:lava_flowing",
  223. [198] = "default:lava_source",
  224. [199] = "default:leaves",
  225. [200] = "default:mese",
  226. [201] = "default:mossycobble",
  227. [202] = "default:nyancat",
  228. [203] = "default:nyancat_rainbow",
  229. [204] = "default:paper",
  230. [205] = "default:papyrus",
  231. [206] = "default:pick_mese",
  232. [207] = "default:pick_steel",
  233. [208] = "default:pick_stone",
  234. [209] = "default:pick_wood",
  235. [210] = "default:rail",
  236. [211] = "default:sandstone",
  237. [212] = "default:scorched_stuff",
  238. [213] = "default:shovel_steel",
  239. [214] = "default:shovel_stone",
  240. [215] = "default:shovel_wood",
  241. [216] = "default:sign_wall",
  242. [217] = "default:steel_ingot",
  243. [218] = "default:steelblock",
  244. [219] = "default:stick",
  245. [220] = "default:stone",
  246. [221] = "default:stone_with_coal",
  247. [222] = "default:stone_with_iron",
  248. [223] = "default:sword_steel",
  249. [224] = "default:sword_stone",
  250. [225] = "default:sword_wood",
  251. [226] = "default:torch",
  252. [227] = "default:tree",
  253. [228] = "default:water_flowing",
  254. [229] = "default:water_source",
  255. [230] = "default:wood",
  256. [231] = "doors:door_wood",
  257. [232] = "doors:door_wood_a_c",
  258. [233] = "doors:door_wood_a_o",
  259. [234] = "doors:door_wood_b_c",
  260. [235] = "doors:door_wood_b_o",
  261. [236] = "experimental:soundblock",
  262. [237] = "experimental:tester_node_1",
  263. [238] = "experimental:tester_tool_1",
  264. [239] = "experimental:tnt",
  265. [240] = "fire:basic_flame",
  266. [241] = "firefly",
  267. [242] = "rat",
  268. [243] = "stairs:slab_brick",
  269. [244] = "stairs:slab_cobble",
  270. [245] = "stairs:slab_sandstone",
  271. [246] = "stairs:slab_stone",
  272. [247] = "stairs:slab_wood",
  273. [248] = "stairs:stair_brick",
  274. [249] = "stairs:stair_cobble",
  275. [250] = "stairs:stair_sandstone",
  276. [251] = "stairs:stair_stone",
  277. [252] = "stairs:stair_wood",
  278. [253] = "air",
  279. [254] = "ignore",
  280. [255] = "unknown",
  281. }
  282. local to_index = {}
  283. for index, element in next, to_element do
  284. to_index[element] = index
  285. end
  286. local palette_colour = {
  287. [ 0] = "#4e4e4e",
  288. [ 1] = "#b8714e",
  289. [ 2] = "#cda462",
  290. [ 3] = "#45432a",
  291. [ 4] = "#45432a",
  292. [ 5] = "#977553",
  293. [ 6] = "#352910",
  294. [ 7] = "#ddc70b",
  295. [ 8] = "#352910",
  296. [ 9] = "#d3c0aa",
  297. [ 10] = "#c1a357",
  298. [ 11] = "#e7e7e7",
  299. [ 12] = "#c5b56e",
  300. [ 13] = "#e7e7e7",
  301. [ 14] = "#2a311c",
  302. [ 15] = "#577442",
  303. [ 16] = "#755b54",
  304. [ 17] = "#c14040",
  305. [ 18] = "#d76000",
  306. [ 19] = "#ff0000",
  307. [ 20] = "#53762c",
  308. [ 21] = "#45413d",
  309. [ 22] = "#ece9da",
  310. [ 23] = "#4a792e",
  311. [ 24] = "#4a792e",
  312. [ 25] = "#a9a9a9",
  313. [ 26] = "#3b3b3b",
  314. [ 27] = "#a37e59",
  315. [ 28] = "#85513f",
  316. [ 29] = "#9c9191",
  317. [ 30] = "#a9a9fc",
  318. [ 31] = "#bcad8b",
  319. [ 32] = "#eaebff",
  320. [ 33] = "#ebedff",
  321. [ 34] = "#8f550a",
  322. [ 35] = "#403b1e",
  323. [ 36] = "#3e361d",
  324. [ 37] = "#3c321c",
  325. [ 38] = "#3e321d",
  326. [ 39] = "#3d3420",
  327. [ 40] = "#413825",
  328. [ 41] = "#726f69",
  329. [ 42] = "#94938f",
  330. [ 43] = "#e8e8e8",
  331. [ 44] = "#945319",
  332. [ 45] = "#8e8784",
  333. [ 46] = "#695e59",
  334. [ 47] = "#563721",
  335. [ 48] = "#724f38",
  336. [ 49] = "#432511",
  337. [ 50] = "#87c058",
  338. [ 51] = "#87c058",
  339. [ 52] = "#9bc259",
  340. [ 53] = "#acbe56",
  341. [ 54] = "#bfb45b",
  342. [ 55] = "#b8a55a",
  343. [ 56] = "#b8a55a",
  344. [ 57] = "#bdac5d",
  345. [ 58] = "#9cb293",
  346. [ 59] = "#adaf03",
  347. [ 60] = "#4e61ac",
  348. [ 61] = "#814502",
  349. [ 62] = "#996302",
  350. [ 63] = "#667460",
  351. [ 64] = "#7c7c7c",
  352. [ 65] = "#99541a",
  353. [ 66] = "#86a5a0",
  354. [ 67] = "#a19a1f",
  355. [ 68] = "#e07e1d",
  356. [ 69] = "#f0b43e",
  357. [ 70] = "#be9873",
  358. [ 71] = "#aaeeea",
  359. [ 72] = "#e6cd00",
  360. [ 73] = "#f3da00",
  361. [ 74] = "#466a20",
  362. [ 75] = "#466a20",
  363. [ 76] = "#466a20",
  364. [ 77] = "#496f21",
  365. [ 78] = "#476c20",
  366. [ 79] = "#182312",
  367. [ 80] = "#3e2c12",
  368. [ 81] = "#171b22",
  369. [ 82] = "#20324b",
  370. [ 83] = "#202734",
  371. [ 84] = "#ae5f14",
  372. [ 85] = "#96b7b4",
  373. [ 86] = "#8a480e",
  374. [ 87] = "#76a8a4",
  375. [ 88] = "#938e16",
  376. [ 89] = "#7c6a5c",
  377. [ 90] = "#8da4a2",
  378. [ 91] = "#928654",
  379. [ 92] = "#857f7c",
  380. [ 93] = "#b16013",
  381. [ 94] = "#8ddfdb",
  382. [ 95] = "#bbbb31",
  383. [ 96] = "#bcb9b9",
  384. [ 97] = "#b6b4af",
  385. [ 98] = "#afaca1",
  386. [ 99] = "#b7b4a4",
  387. [100] = "#bab8ab",
  388. [101] = "#3e2c12",
  389. [102] = "#3e2c12",
  390. [103] = "#857f7c",
  391. [104] = "#857f7c",
  392. [105] = "#3e2c12",
  393. [106] = "#3e2c12",
  394. [107] = "#857f7c",
  395. [108] = "#857f7c",
  396. [109] = "#eff153",
  397. [110] = "#a4a44d",
  398. [111] = "#7f6561",
  399. [112] = "#857f7c",
  400. [113] = "#bead84",
  401. [114] = "#656261",
  402. [115] = "#937343",
  403. [116] = "#7f6561",
  404. [117] = "#857f7c",
  405. [118] = "#bead84",
  406. [119] = "#656261",
  407. [120] = "#937343",
  408. [121] = "#acacac",
  409. [122] = "#a5a5a5",
  410. [123] = "#a5a5a5",
  411. [124] = "#a7a7a7",
  412. [125] = "#a7a7a7",
  413. [126] = "#59401b",
  414. [127] = "#59401b",
  415. [128] = "#5a3f18",
  416. [129] = "#5a3f18",
  417. [130] = "#c9c9c9",
  418. [131] = "#b7b7b7",
  419. [132] = "#eaeaea",
  420. [133] = "#afafaf",
  421. [134] = "#242424",
  422. [135] = "#00468e",
  423. [136] = "#5b2e00",
  424. [137] = "#00848c",
  425. [138] = "#246b00",
  426. [139] = "#3c3c3c",
  427. [140] = "#5dd71c",
  428. [141] = "#868686",
  429. [142] = "#c6036d",
  430. [143] = "#d04e14",
  431. [144] = "#ff9393",
  432. [145] = "#ac1212",
  433. [146] = "#430576",
  434. [147] = "#dadada",
  435. [148] = "#fde20f",
  436. [149] = "#1f1f1f",
  437. [150] = "#004a92",
  438. [151] = "#592d00",
  439. [152] = "#00868d",
  440. [153] = "#226800",
  441. [154] = "#3d3d3d",
  442. [155] = "#5edb1c",
  443. [156] = "#868686",
  444. [157] = "#ca0371",
  445. [158] = "#d65416",
  446. [159] = "#ff8686",
  447. [160] = "#ab1212",
  448. [161] = "#5d03aa",
  449. [162] = "#dddddd",
  450. [163] = "#fee310",
  451. [164] = "#727272",
  452. [165] = "#a96d69",
  453. [166] = "#6b6d8e",
  454. [167] = "#763b00",
  455. [168] = "#bd3a00",
  456. [169] = "#948c88",
  457. [170] = "#655851",
  458. [171] = "#5b3b22",
  459. [172] = "#a49585",
  460. [173] = "#967351",
  461. [174] = "#d0837e",
  462. [175] = "#50763d",
  463. [176] = "#92775a",
  464. [177] = "#907455",
  465. [178] = "#b7b7b7",
  466. [179] = "#d21a1a",
  467. [180] = "#828282",
  468. [181] = "#ffffff",
  469. [182] = "#857f7c",
  470. [183] = "#db7c46",
  471. [184] = "#7a4033",
  472. [185] = "#7a563e",
  473. [186] = "#665e35",
  474. [187] = "#665d33",
  475. [188] = "#6b4611",
  476. [189] = "#6c4f33",
  477. [190] = "#696562",
  478. [191] = "#7a6c62",
  479. [192] = "#c0c0e3",
  480. [193] = "#544c44",
  481. [194] = "#426d1b",
  482. [195] = "#948a68",
  483. [196] = "#8a6429",
  484. [197] = "#d17212",
  485. [198] = "#d17212",
  486. [199] = "#243f20",
  487. [200] = "#d1d100",
  488. [201] = "#6b704e",
  489. [202] = "#da99ba",
  490. [203] = "#a59e8c",
  491. [204] = "#c3c6bf",
  492. [205] = "#8ada4f",
  493. [206] = "#baa25d",
  494. [207] = "#a9a6a4",
  495. [208] = "#6e6967",
  496. [209] = "#57391d",
  497. [210] = "#80796c",
  498. [211] = "#bead84",
  499. [212] = "#2c1300",
  500. [213] = "#867f7c",
  501. [214] = "#5c514c",
  502. [215] = "#4f3017",
  503. [216] = "#b7a47c",
  504. [217] = "#a2a2a2",
  505. [218] = "#c3c3c3",
  506. [219] = "#492a12",
  507. [220] = "#656261",
  508. [221] = "#5a5756",
  509. [222] = "#7a6058",
  510. [223] = "#9b8f81",
  511. [224] = "#5d5a58",
  512. [225] = "#4d3015",
  513. [226] = "#d99128",
  514. [227] = "#6d573d",
  515. [228] = "#0f4184",
  516. [229] = "#0f4184",
  517. [230] = "#937343",
  518. [231] = "#5f4319",
  519. [232] = "#583f1b",
  520. [233] = "#583f1b",
  521. [234] = "#57401e",
  522. [235] = "#57401e",
  523. [236] = "#a1726e",
  524. [237] = "#a98760",
  525. [238] = "#576357",
  526. [239] = "#9f716a",
  527. [240] = "#df942e",
  528. [241] = "#bcb264",
  529. [242] = "#424200",
  530. [243] = "#d0837e",
  531. [244] = "#857f7c",
  532. [245] = "#bead84",
  533. [246] = "#656261",
  534. [247] = "#937343",
  535. [248] = "#d0837e",
  536. [249] = "#857f7c",
  537. [250] = "#bead84",
  538. [251] = "#656261",
  539. [252] = "#937343",
  540. [253] = "#b0625f",
  541. [254] = "#b0625f",
  542. [255] = "#718e87",
  543. }
  544. return to_element, to_index, palette_colour