melon-lua 3.4.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (986) hide show
  1. melon_lua/__init__.py +78 -0
  2. melon_lua/__main__.py +246 -0
  3. melon_lua/backend/__init__.py +49 -0
  4. melon_lua/backend/camera_backend.py +35 -0
  5. melon_lua/backend/chip_backend.py +95 -0
  6. melon_lua/backend/entity_backend.py +459 -0
  7. melon_lua/backend/env_backend.py +68 -0
  8. melon_lua/backend/input_backend.py +100 -0
  9. melon_lua/backend/mechanic_backend.py +67 -0
  10. melon_lua/backend/print_backend.py +63 -0
  11. melon_lua/backend/spawn_backend.py +116 -0
  12. melon_lua/backend/uicontrol_backend.py +110 -0
  13. melon_lua/backend/variables_backend.py +38 -0
  14. melon_lua/backend/world_backend.py +56 -0
  15. melon_lua/catalog.py +99 -0
  16. melon_lua/constraints.py +489 -0
  17. melon_lua/data/chip_template_1132.json +365 -0
  18. melon_lua/data/item_templates/0.json +215 -0
  19. melon_lua/data/item_templates/10.json +187 -0
  20. melon_lua/data/item_templates/102.json +89 -0
  21. melon_lua/data/item_templates/1096548672.json +208 -0
  22. melon_lua/data/item_templates/115.json +89 -0
  23. melon_lua/data/item_templates/116.json +203 -0
  24. melon_lua/data/item_templates/120.json +89 -0
  25. melon_lua/data/item_templates/121.json +105 -0
  26. melon_lua/data/item_templates/122.json +144 -0
  27. melon_lua/data/item_templates/123.json +89 -0
  28. melon_lua/data/item_templates/125.json +89 -0
  29. melon_lua/data/item_templates/1294925504.json +232 -0
  30. melon_lua/data/item_templates/13.json +209 -0
  31. melon_lua/data/item_templates/130.json +170 -0
  32. melon_lua/data/item_templates/131.json +118 -0
  33. melon_lua/data/item_templates/133.json +256 -0
  34. melon_lua/data/item_templates/1353580864.json +125 -0
  35. melon_lua/data/item_templates/138.json +89 -0
  36. melon_lua/data/item_templates/14.json +122 -0
  37. melon_lua/data/item_templates/140.json +89 -0
  38. melon_lua/data/item_templates/147.json +326 -0
  39. melon_lua/data/item_templates/15.json +322 -0
  40. melon_lua/data/item_templates/177.json +169 -0
  41. melon_lua/data/item_templates/178.json +173 -0
  42. melon_lua/data/item_templates/184.json +205 -0
  43. melon_lua/data/item_templates/1971846848.json +235 -0
  44. melon_lua/data/item_templates/201.json +268 -0
  45. melon_lua/data/item_templates/202.json +131 -0
  46. melon_lua/data/item_templates/2046689600.json +481 -0
  47. melon_lua/data/item_templates/21.json +245 -0
  48. melon_lua/data/item_templates/22.json +89 -0
  49. melon_lua/data/item_templates/222.json +192 -0
  50. melon_lua/data/item_templates/225.json +89 -0
  51. melon_lua/data/item_templates/226.json +136 -0
  52. melon_lua/data/item_templates/228.json +124 -0
  53. melon_lua/data/item_templates/229.json +149 -0
  54. melon_lua/data/item_templates/23.json +138 -0
  55. melon_lua/data/item_templates/233.json +173 -0
  56. melon_lua/data/item_templates/24.json +133 -0
  57. melon_lua/data/item_templates/246.json +385 -0
  58. melon_lua/data/item_templates/247.json +385 -0
  59. melon_lua/data/item_templates/248.json +391 -0
  60. melon_lua/data/item_templates/249.json +340 -0
  61. melon_lua/data/item_templates/25.json +225 -0
  62. melon_lua/data/item_templates/252.json +125 -0
  63. melon_lua/data/item_templates/253.json +182 -0
  64. melon_lua/data/item_templates/256.json +266 -0
  65. melon_lua/data/item_templates/257.json +170 -0
  66. melon_lua/data/item_templates/258.json +197 -0
  67. melon_lua/data/item_templates/261.json +260 -0
  68. melon_lua/data/item_templates/262.json +172 -0
  69. melon_lua/data/item_templates/271.json +174 -0
  70. melon_lua/data/item_templates/272.json +149 -0
  71. melon_lua/data/item_templates/274.json +386 -0
  72. melon_lua/data/item_templates/278.json +114 -0
  73. melon_lua/data/item_templates/28.json +105 -0
  74. melon_lua/data/item_templates/3.json +133 -0
  75. melon_lua/data/item_templates/303.json +196 -0
  76. melon_lua/data/item_templates/316.json +89 -0
  77. melon_lua/data/item_templates/319.json +176 -0
  78. melon_lua/data/item_templates/32.json +173 -0
  79. melon_lua/data/item_templates/33.json +123 -0
  80. melon_lua/data/item_templates/436732224.json +148 -0
  81. melon_lua/data/item_templates/50.json +89 -0
  82. melon_lua/data/item_templates/53.json +201 -0
  83. melon_lua/data/item_templates/57.json +133 -0
  84. melon_lua/data/item_templates/62.json +111 -0
  85. melon_lua/data/item_templates/687931072.json +122 -0
  86. melon_lua/data/item_templates/758447808.json +193 -0
  87. melon_lua/data/item_templates/76.json +105 -0
  88. melon_lua/data/item_templates/87.json +191 -0
  89. melon_lua/data/item_templates/897581376.json +144 -0
  90. melon_lua/data/melon_objects.json +15446 -0
  91. melon_lua/data/object_physics.json +16273 -0
  92. melon_lua/data/object_physics_by_id.json +34900 -0
  93. melon_lua/data/sprites_by_object_id.json +2747 -0
  94. melon_lua/data/sprites_pack/images/0000_obj_plastic.png +0 -0
  95. melon_lua/data/sprites_pack/images/0001_Propeller.png +0 -0
  96. melon_lua/data/sprites_pack/images/0001_Propeller_plastic.png +0 -0
  97. melon_lua/data/sprites_pack/images/0002_Apple.png +0 -0
  98. melon_lua/data/sprites_pack/images/0003_Armchair.png +0 -0
  99. melon_lua/data/sprites_pack/images/0003_Armchair_plastic.png +0 -0
  100. melon_lua/data/sprites_pack/images/0004_Armor.png +0 -0
  101. melon_lua/data/sprites_pack/images/0004_Armor_atlas.png +0 -0
  102. melon_lua/data/sprites_pack/images/0005_Arrow_atlas.png +0 -0
  103. melon_lua/data/sprites_pack/images/0006_ArrowH_atlas.png +0 -0
  104. melon_lua/data/sprites_pack/images/0007_AutoPistol.png +0 -0
  105. melon_lua/data/sprites_pack/images/0007_AutoPistol_plastic.png +0 -0
  106. melon_lua/data/sprites_pack/images/0008_AutoRifle.png +0 -0
  107. melon_lua/data/sprites_pack/images/0008_AutoRifle_plastic.png +0 -0
  108. melon_lua/data/sprites_pack/images/0009_Ax.png +0 -0
  109. melon_lua/data/sprites_pack/images/0009_Ax_plastic.png +0 -0
  110. melon_lua/data/sprites_pack/images/0010_Wing.png +0 -0
  111. melon_lua/data/sprites_pack/images/0011_AxeHammer.png +0 -0
  112. melon_lua/data/sprites_pack/images/0011_AxeHammer_plastic.png +0 -0
  113. melon_lua/data/sprites_pack/images/0012_AxeHev.png +0 -0
  114. melon_lua/data/sprites_pack/images/0012_AxeHev_plastic.png +0 -0
  115. melon_lua/data/sprites_pack/images/0013_Ranger.png +0 -0
  116. melon_lua/data/sprites_pack/images/0013_Ranger_plastic.png +0 -0
  117. melon_lua/data/sprites_pack/images/0014_Balk.png +0 -0
  118. melon_lua/data/sprites_pack/images/0014_Balk_atlas.png +0 -0
  119. melon_lua/data/sprites_pack/images/0015_BalkShort.png +0 -0
  120. melon_lua/data/sprites_pack/images/0015_BalkShort_plastic.png +0 -0
  121. melon_lua/data/sprites_pack/images/0016_Balloon_plastic.png +0 -0
  122. melon_lua/data/sprites_pack/images/0017_Bandage.png +0 -0
  123. melon_lua/data/sprites_pack/images/0017_Bandage_plastic.png +0 -0
  124. melon_lua/data/sprites_pack/images/0018_Bat.png +0 -0
  125. melon_lua/data/sprites_pack/images/0018_Bat_atlas.png +0 -0
  126. melon_lua/data/sprites_pack/images/0019_Beard.png +0 -0
  127. melon_lua/data/sprites_pack/images/0019_Beard_plastic.png +0 -0
  128. melon_lua/data/sprites_pack/images/0020_Boots.png +0 -0
  129. melon_lua/data/sprites_pack/images/0020_Boots_plastic.png +0 -0
  130. melon_lua/data/sprites_pack/images/0021_Bottle.png +0 -0
  131. melon_lua/data/sprites_pack/images/0021_Bottle_atlas.png +0 -0
  132. melon_lua/data/sprites_pack/images/0022_Bowl.png +0 -0
  133. melon_lua/data/sprites_pack/images/0022_Bowl_plastic.png +0 -0
  134. melon_lua/data/sprites_pack/images/0023_Box.png +0 -0
  135. melon_lua/data/sprites_pack/images/0024_Brick.png +0 -0
  136. melon_lua/data/sprites_pack/images/0024_Brick_plastic.png +0 -0
  137. melon_lua/data/sprites_pack/images/0025_BrickWall.png +0 -0
  138. melon_lua/data/sprites_pack/images/0025_BrickWall_plastic.png +0 -0
  139. melon_lua/data/sprites_pack/images/0026_NuclearBomb.png +0 -0
  140. melon_lua/data/sprites_pack/images/0026_NuclearBomb_plastic.png +0 -0
  141. melon_lua/data/sprites_pack/images/0027_Bulgeon.png +0 -0
  142. melon_lua/data/sprites_pack/images/0027_Bulgeon_plastic.png +0 -0
  143. melon_lua/data/sprites_pack/images/0028_BulletproofVestHeavy.png +0 -0
  144. melon_lua/data/sprites_pack/images/0028_BulletproofVestHeavy_plastic.png +0 -0
  145. melon_lua/data/sprites_pack/images/0029_BulletproofVestLight.png +0 -0
  146. melon_lua/data/sprites_pack/images/0029_BulletproofVestLight_plastic.png +0 -0
  147. melon_lua/data/sprites_pack/images/0030_BulletproofVestMedium.png +0 -0
  148. melon_lua/data/sprites_pack/images/0030_BulletproofVestMedium_plastic.png +0 -0
  149. melon_lua/data/sprites_pack/images/0031_Business suit.png +0 -0
  150. melon_lua/data/sprites_pack/images/0031_Business suit_plastic.png +0 -0
  151. melon_lua/data/sprites_pack/images/0032_C4.png +0 -0
  152. melon_lua/data/sprites_pack/images/0032_C4_plastic.png +0 -0
  153. melon_lua/data/sprites_pack/images/0033_Lever.png +0 -0
  154. melon_lua/data/sprites_pack/images/0033_Lever_atlas.png +0 -0
  155. melon_lua/data/sprites_pack/images/0034_Cap.png +0 -0
  156. melon_lua/data/sprites_pack/images/0034_Cap_plastic.png +0 -0
  157. melon_lua/data/sprites_pack/images/0035_Chair.png +0 -0
  158. melon_lua/data/sprites_pack/images/0035_Chair_plastic.png +0 -0
  159. melon_lua/data/sprites_pack/images/0036_Christmas hat.png +0 -0
  160. melon_lua/data/sprites_pack/images/0036_Christmas hat_atlas.png +0 -0
  161. melon_lua/data/sprites_pack/images/0037_Club.png +0 -0
  162. melon_lua/data/sprites_pack/images/0037_Club_plastic.png +0 -0
  163. melon_lua/data/sprites_pack/images/0038_Corn.png +0 -0
  164. melon_lua/data/sprites_pack/images/0039_Crossbow.png +0 -0
  165. melon_lua/data/sprites_pack/images/0039_Crossbow_atlas.png +0 -0
  166. melon_lua/data/sprites_pack/images/0040_Cup.png +0 -0
  167. melon_lua/data/sprites_pack/images/0040_Cup_plastic.png +0 -0
  168. melon_lua/data/sprites_pack/images/0041_DirectBomb.png +0 -0
  169. melon_lua/data/sprites_pack/images/0041_DirectBomb_plastic.png +0 -0
  170. melon_lua/data/sprites_pack/images/0042_Desintegrator.png +0 -0
  171. melon_lua/data/sprites_pack/images/0042_Desintegrator_plastic.png +0 -0
  172. melon_lua/data/sprites_pack/images/0043_Dress.png +0 -0
  173. melon_lua/data/sprites_pack/images/0043_Dress_plastic.png +0 -0
  174. melon_lua/data/sprites_pack/images/0044_Revolver.png +0 -0
  175. melon_lua/data/sprites_pack/images/0044_Revolver_plastic.png +0 -0
  176. melon_lua/data/sprites_pack/images/0045_CircularSaw.png +0 -0
  177. melon_lua/data/sprites_pack/images/0045_CircularSaw_atlas.png +0 -0
  178. melon_lua/data/sprites_pack/images/0046_Extinguisher.png +0 -0
  179. melon_lua/data/sprites_pack/images/0046_Extinguisher_plastic.png +0 -0
  180. melon_lua/data/sprites_pack/images/0047_FlameThrower.png +0 -0
  181. melon_lua/data/sprites_pack/images/0047_FlameThrower_plastic.png +0 -0
  182. melon_lua/data/sprites_pack/images/0048_FlashGranade.png +0 -0
  183. melon_lua/data/sprites_pack/images/0048_FlashGranade_plastic.png +0 -0
  184. melon_lua/data/sprites_pack/images/0049_FragGranade.png +0 -0
  185. melon_lua/data/sprites_pack/images/0049_FragGranade_plastic.png +0 -0
  186. melon_lua/data/sprites_pack/images/0050_Glass.png +0 -0
  187. melon_lua/data/sprites_pack/images/0050_Glass_plastic.png +0 -0
  188. melon_lua/data/sprites_pack/images/0051_RocketLauncher.png +0 -0
  189. melon_lua/data/sprites_pack/images/0051_RocketLauncher_plastic.png +0 -0
  190. melon_lua/data/sprites_pack/images/0052_GranadeLauncher.png +0 -0
  191. melon_lua/data/sprites_pack/images/0052_GranadeLauncher_plastic.png +0 -0
  192. melon_lua/data/sprites_pack/images/0053_ButtonF.png +0 -0
  193. melon_lua/data/sprites_pack/images/0053_ButtonF_atlas.png +0 -0
  194. melon_lua/data/sprites_pack/images/0054_HammerHev.png +0 -0
  195. melon_lua/data/sprites_pack/images/0054_HammerHev_plastic.png +0 -0
  196. melon_lua/data/sprites_pack/images/0055_Hard hat.png +0 -0
  197. melon_lua/data/sprites_pack/images/0055_Hard hat_plastic.png +0 -0
  198. melon_lua/data/sprites_pack/images/0056_Hat.png +0 -0
  199. melon_lua/data/sprites_pack/images/0056_Hat_plastic.png +0 -0
  200. melon_lua/data/sprites_pack/images/0057_HeartMonitor.png +0 -0
  201. melon_lua/data/sprites_pack/images/0058_Helmet Medieval 1.png +0 -0
  202. melon_lua/data/sprites_pack/images/0058_Helmet Medieval 1_plastic.png +0 -0
  203. melon_lua/data/sprites_pack/images/0059_Helmet Medieval 2.png +0 -0
  204. melon_lua/data/sprites_pack/images/0059_Helmet Medieval 2_plastic.png +0 -0
  205. melon_lua/data/sprites_pack/images/0060_Helmet Medieval 3.png +0 -0
  206. melon_lua/data/sprites_pack/images/0060_Helmet Medieval 3_plastic.png +0 -0
  207. melon_lua/data/sprites_pack/images/0061_Helmet.png +0 -0
  208. melon_lua/data/sprites_pack/images/0061_Helmet_plastic.png +0 -0
  209. melon_lua/data/sprites_pack/images/0062_Human.png +0 -0
  210. melon_lua/data/sprites_pack/images/0062_Human_atlas.png +0 -0
  211. melon_lua/data/sprites_pack/images/0063_HumanA.png +0 -0
  212. melon_lua/data/sprites_pack/images/0064_HumanC.png +0 -0
  213. melon_lua/data/sprites_pack/images/0064_HumanC_atlas.png +0 -0
  214. melon_lua/data/sprites_pack/images/0065_PulseGun.png +0 -0
  215. melon_lua/data/sprites_pack/images/0065_PulseGun_plastic.png +0 -0
  216. melon_lua/data/sprites_pack/images/0066_HumanP.png +0 -0
  217. melon_lua/data/sprites_pack/images/0066_HumanP_atlas.png +0 -0
  218. melon_lua/data/sprites_pack/images/0067_Impact Grenade_plastic.png +0 -0
  219. melon_lua/data/sprites_pack/images/0068_Jeans.png +0 -0
  220. melon_lua/data/sprites_pack/images/0068_Jeans_plastic.png +0 -0
  221. melon_lua/data/sprites_pack/images/0069_Knife.png +0 -0
  222. melon_lua/data/sprites_pack/images/0070_LandMineMini.png +0 -0
  223. melon_lua/data/sprites_pack/images/0070_LandMineMini_plastic.png +0 -0
  224. melon_lua/data/sprites_pack/images/0071_Mace_plastic.png +0 -0
  225. melon_lua/data/sprites_pack/images/0072_Machete.png +0 -0
  226. melon_lua/data/sprites_pack/images/0072_Machete_plastic.png +0 -0
  227. melon_lua/data/sprites_pack/images/0073_MedicalHat.png +0 -0
  228. melon_lua/data/sprites_pack/images/0073_MedicalHat_plastic.png +0 -0
  229. melon_lua/data/sprites_pack/images/0074_Melon.png +0 -0
  230. melon_lua/data/sprites_pack/images/0075_MelonGibs_plastic.png +0 -0
  231. melon_lua/data/sprites_pack/images/0076_MetalRod.png +0 -0
  232. melon_lua/data/sprites_pack/images/0076_MetalRod_plastic.png +0 -0
  233. melon_lua/data/sprites_pack/images/0077_MilitaryHelmet.png +0 -0
  234. melon_lua/data/sprites_pack/images/0077_MilitaryHelmet_plastic.png +0 -0
  235. melon_lua/data/sprites_pack/images/0078_MilitaryHelmetMedical.png +0 -0
  236. melon_lua/data/sprites_pack/images/0078_MilitaryHelmetMedical_plastic.png +0 -0
  237. melon_lua/data/sprites_pack/images/0079_Minigun.png +0 -0
  238. melon_lua/data/sprites_pack/images/0079_Minigun_plastic.png +0 -0
  239. melon_lua/data/sprites_pack/images/0080_Molotov.png +0 -0
  240. melon_lua/data/sprites_pack/images/0080_Molotov_plastic.png +0 -0
  241. melon_lua/data/sprites_pack/images/0081_Melon cooler.png +0 -0
  242. melon_lua/data/sprites_pack/images/0081_Melon cooler_atlas.png +0 -0
  243. melon_lua/data/sprites_pack/images/0082_Mask_atlas.png +0 -0
  244. melon_lua/data/sprites_pack/images/0083_MPM.png +0 -0
  245. melon_lua/data/sprites_pack/images/0083_MPM_plastic.png +0 -0
  246. melon_lua/data/sprites_pack/images/0084_Pads.png +0 -0
  247. melon_lua/data/sprites_pack/images/0084_Pads_atlas.png +0 -0
  248. melon_lua/data/sprites_pack/images/0085_Pickaxe.png +0 -0
  249. melon_lua/data/sprites_pack/images/0085_Pickaxe_plastic.png +0 -0
  250. melon_lua/data/sprites_pack/images/0086_Pistol.png +0 -0
  251. melon_lua/data/sprites_pack/images/0086_Pistol_plastic.png +0 -0
  252. melon_lua/data/sprites_pack/images/0087_Plate.png +0 -0
  253. melon_lua/data/sprites_pack/images/0087_Plate_plastic.png +0 -0
  254. melon_lua/data/sprites_pack/images/0088_Present.png +0 -0
  255. melon_lua/data/sprites_pack/images/0089_ProtoGun.png +0 -0
  256. melon_lua/data/sprites_pack/images/0089_ProtoGun_plastic.png +0 -0
  257. melon_lua/data/sprites_pack/images/0090_Pumpkin.png +0 -0
  258. melon_lua/data/sprites_pack/images/0091_PumpkinGibs_atlas.png +0 -0
  259. melon_lua/data/sprites_pack/images/0092_PushGranade.png +0 -0
  260. melon_lua/data/sprites_pack/images/0092_PushGranade_plastic.png +0 -0
  261. melon_lua/data/sprites_pack/images/0093_Railgun.png +0 -0
  262. melon_lua/data/sprites_pack/images/0093_Railgun_plastic.png +0 -0
  263. melon_lua/data/sprites_pack/images/0094_Ring.png +0 -0
  264. melon_lua/data/sprites_pack/images/0095_SawedOff.png +0 -0
  265. melon_lua/data/sprites_pack/images/0095_SawedOff_plastic.png +0 -0
  266. melon_lua/data/sprites_pack/images/0096_Sunglasses_plastic.png +0 -0
  267. melon_lua/data/sprites_pack/images/0097_Shoes.png +0 -0
  268. melon_lua/data/sprites_pack/images/0097_Shoes_atlas.png +0 -0
  269. melon_lua/data/sprites_pack/images/0098_Sniper.png +0 -0
  270. melon_lua/data/sprites_pack/images/0098_Sniper_plastic.png +0 -0
  271. melon_lua/data/sprites_pack/images/0099_SnowMan_plastic.png +0 -0
  272. melon_lua/data/sprites_pack/images/0100_Spas.png +0 -0
  273. melon_lua/data/sprites_pack/images/0100_Spas_atlas.png +0 -0
  274. melon_lua/data/sprites_pack/images/0101_Spear.png +0 -0
  275. melon_lua/data/sprites_pack/images/0101_Spear_atlas.png +0 -0
  276. melon_lua/data/sprites_pack/images/0102_Splint.png +0 -0
  277. melon_lua/data/sprites_pack/images/0102_Splint_plastic.png +0 -0
  278. melon_lua/data/sprites_pack/images/0103_FreezeStaff.png +0 -0
  279. melon_lua/data/sprites_pack/images/0103_FreezeStaff_plastic.png +0 -0
  280. melon_lua/data/sprites_pack/images/0104_StickyBomb.png +0 -0
  281. melon_lua/data/sprites_pack/images/0104_StickyBomb_plastic.png +0 -0
  282. melon_lua/data/sprites_pack/images/0105_Sword.png +0 -0
  283. melon_lua/data/sprites_pack/images/0105_Sword_plastic.png +0 -0
  284. melon_lua/data/sprites_pack/images/0106_SyringeAcid.png +0 -0
  285. melon_lua/data/sprites_pack/images/0106_SyringeAcid_plastic.png +0 -0
  286. melon_lua/data/sprites_pack/images/0107_SyringeFireproof.png +0 -0
  287. melon_lua/data/sprites_pack/images/0107_SyringeFireproof_plastic.png +0 -0
  288. melon_lua/data/sprites_pack/images/0108_SyringeHeal.png +0 -0
  289. melon_lua/data/sprites_pack/images/0108_SyringeHeal_plastic.png +0 -0
  290. melon_lua/data/sprites_pack/images/0109_SyringeImmortal.png +0 -0
  291. melon_lua/data/sprites_pack/images/0109_SyringeImmortal_plastic.png +0 -0
  292. melon_lua/data/sprites_pack/images/0110_SyringeRegen.png +0 -0
  293. melon_lua/data/sprites_pack/images/0110_SyringeRegen_plastic.png +0 -0
  294. melon_lua/data/sprites_pack/images/0111_SyringeVirus.png +0 -0
  295. melon_lua/data/sprites_pack/images/0111_SyringeVirus_plastic.png +0 -0
  296. melon_lua/data/sprites_pack/images/0112_SyringeWater.png +0 -0
  297. melon_lua/data/sprites_pack/images/0112_SyringeWater_plastic.png +0 -0
  298. melon_lua/data/sprites_pack/images/0113_T-shirt.png +0 -0
  299. melon_lua/data/sprites_pack/images/0113_T-shirt_plastic.png +0 -0
  300. melon_lua/data/sprites_pack/images/0114_Table.png +0 -0
  301. melon_lua/data/sprites_pack/images/0114_Table_plastic.png +0 -0
  302. melon_lua/data/sprites_pack/images/0115_Tea box.png +0 -0
  303. melon_lua/data/sprites_pack/images/0115_Tea box_plastic.png +0 -0
  304. melon_lua/data/sprites_pack/images/0116_Tokarev.png +0 -0
  305. melon_lua/data/sprites_pack/images/0116_Tokarev_plastic.png +0 -0
  306. melon_lua/data/sprites_pack/images/0117_TrapMain.png +0 -0
  307. melon_lua/data/sprites_pack/images/0117_TrapMain_plastic.png +0 -0
  308. melon_lua/data/sprites_pack/images/0118_Trousers.png +0 -0
  309. melon_lua/data/sprites_pack/images/0118_Trousers_plastic.png +0 -0
  310. melon_lua/data/sprites_pack/images/0119_Watergun.png +0 -0
  311. melon_lua/data/sprites_pack/images/0119_Watergun_atlas.png +0 -0
  312. melon_lua/data/sprites_pack/images/0120_Weight.png +0 -0
  313. melon_lua/data/sprites_pack/images/0121_Wheel.png +0 -0
  314. melon_lua/data/sprites_pack/images/0121_Wheel_plastic.png +0 -0
  315. melon_lua/data/sprites_pack/images/0122_Wooden lath.png +0 -0
  316. melon_lua/data/sprites_pack/images/0122_Wooden lath_plastic.png +0 -0
  317. melon_lua/data/sprites_pack/images/0123_WoodenBarel.png +0 -0
  318. melon_lua/data/sprites_pack/images/0123_WoodenBarel_plastic.png +0 -0
  319. melon_lua/data/sprites_pack/images/0124_Sunglasses_plastic.png +0 -0
  320. melon_lua/data/sprites_pack/images/0125_WoodenStick.png +0 -0
  321. melon_lua/data/sprites_pack/images/0125_WoodenStick_plastic.png +0 -0
  322. melon_lua/data/sprites_pack/images/0126_Camouflage pants.png +0 -0
  323. melon_lua/data/sprites_pack/images/0126_Camouflage pants_plastic.png +0 -0
  324. melon_lua/data/sprites_pack/images/0127_Camouflage suit.png +0 -0
  325. melon_lua/data/sprites_pack/images/0127_Camouflage suit_plastic.png +0 -0
  326. melon_lua/data/sprites_pack/images/0128_Construction vest.png +0 -0
  327. melon_lua/data/sprites_pack/images/0128_Construction vest_plastic.png +0 -0
  328. melon_lua/data/sprites_pack/images/0129_Teapot.png +0 -0
  329. melon_lua/data/sprites_pack/images/0129_Teapot_plastic.png +0 -0
  330. melon_lua/data/sprites_pack/images/0130_Gyroscope.png +0 -0
  331. melon_lua/data/sprites_pack/images/0130_Gyroscope_plastic.png +0 -0
  332. melon_lua/data/sprites_pack/images/0131_ElectroMotor.png +0 -0
  333. melon_lua/data/sprites_pack/images/0131_ElectroMotor_plastic.png +0 -0
  334. melon_lua/data/sprites_pack/images/0132_Thruster.png +0 -0
  335. melon_lua/data/sprites_pack/images/0132_Thruster_plastic.png +0 -0
  336. melon_lua/data/sprites_pack/images/0133_Piston.png +0 -0
  337. melon_lua/data/sprites_pack/images/0133_Piston_plastic.png +0 -0
  338. melon_lua/data/sprites_pack/images/0134_Button.png +0 -0
  339. melon_lua/data/sprites_pack/images/0134_Button_atlas.png +0 -0
  340. melon_lua/data/sprites_pack/images/0135_CupThrower.png +0 -0
  341. melon_lua/data/sprites_pack/images/0135_CupThrower_plastic.png +0 -0
  342. melon_lua/data/sprites_pack/images/0136_Turret.png +0 -0
  343. melon_lua/data/sprites_pack/images/0136_Turret_plastic.png +0 -0
  344. melon_lua/data/sprites_pack/images/0137_ResizableCamoGreen.png +0 -0
  345. melon_lua/data/sprites_pack/images/0137_ResizableCamoGreen_plastic.png +0 -0
  346. melon_lua/data/sprites_pack/images/0138_ResizableCamoGrey.png +0 -0
  347. melon_lua/data/sprites_pack/images/0138_ResizableCamoGrey_plastic.png +0 -0
  348. melon_lua/data/sprites_pack/images/0139_ResizableCamoYellow.png +0 -0
  349. melon_lua/data/sprites_pack/images/0139_ResizableCamoYellow_plastic.png +0 -0
  350. melon_lua/data/sprites_pack/images/0140_ResizableMetal.png +0 -0
  351. melon_lua/data/sprites_pack/images/0140_ResizableMetal_plastic.png +0 -0
  352. melon_lua/data/sprites_pack/images/0141_ResizableWood.png +0 -0
  353. melon_lua/data/sprites_pack/images/0141_ResizableWood_plastic.png +0 -0
  354. melon_lua/data/sprites_pack/images/0142_ToolGun.png +0 -0
  355. melon_lua/data/sprites_pack/images/0142_ToolGun_plastic.png +0 -0
  356. melon_lua/data/sprites_pack/images/0143_Sunglasses.png +0 -0
  357. melon_lua/data/sprites_pack/images/0143_Sunglasses_plastic.png +0 -0
  358. melon_lua/data/sprites_pack/images/0144_Mask.png +0 -0
  359. melon_lua/data/sprites_pack/images/0144_Mask_atlas.png +0 -0
  360. melon_lua/data/sprites_pack/images/0145_Toy1_plastic.png +0 -0
  361. melon_lua/data/sprites_pack/images/0146_Toy2_plastic.png +0 -0
  362. melon_lua/data/sprites_pack/images/0147_Toy3_plastic.png +0 -0
  363. melon_lua/data/sprites_pack/images/0148_Toy4_plastic.png +0 -0
  364. melon_lua/data/sprites_pack/images/0149_Toy5_plastic.png +0 -0
  365. melon_lua/data/sprites_pack/images/0150_Toy6_plastic.png +0 -0
  366. melon_lua/data/sprites_pack/images/0151_Toy7_plastic.png +0 -0
  367. melon_lua/data/sprites_pack/images/0152_Toy8_plastic.png +0 -0
  368. melon_lua/data/sprites_pack/images/0153_Parachute.png +0 -0
  369. melon_lua/data/sprites_pack/images/0153_Parachute_plastic.png +0 -0
  370. melon_lua/data/sprites_pack/images/0154_LimbConnector.png +0 -0
  371. melon_lua/data/sprites_pack/images/0154_LimbConnector_plastic.png +0 -0
  372. melon_lua/data/sprites_pack/images/0155_ResizableCamoSand.png +0 -0
  373. melon_lua/data/sprites_pack/images/0155_ResizableCamoSand_plastic.png +0 -0
  374. melon_lua/data/sprites_pack/images/0156_SpaceSuit.png +0 -0
  375. melon_lua/data/sprites_pack/images/0156_SpaceSuit_plastic.png +0 -0
  376. melon_lua/data/sprites_pack/images/0157_SpaceHelmet.png +0 -0
  377. melon_lua/data/sprites_pack/images/0157_SpaceHelmet_plastic.png +0 -0
  378. melon_lua/data/sprites_pack/images/0158_Cactus.png +0 -0
  379. melon_lua/data/sprites_pack/images/0159_Jeep.png +0 -0
  380. melon_lua/data/sprites_pack/images/0159_Jeep_plastic.png +0 -0
  381. melon_lua/data/sprites_pack/images/0160_SportsShorts.png +0 -0
  382. melon_lua/data/sprites_pack/images/0160_SportsShorts_plastic.png +0 -0
  383. melon_lua/data/sprites_pack/images/0161_BasketballBall.png +0 -0
  384. melon_lua/data/sprites_pack/images/0161_BasketballBall_plastic.png +0 -0
  385. melon_lua/data/sprites_pack/images/0162_BasketballHoop.png +0 -0
  386. melon_lua/data/sprites_pack/images/0162_BasketballHoop_plastic.png +0 -0
  387. melon_lua/data/sprites_pack/images/0163_FootballBall.png +0 -0
  388. melon_lua/data/sprites_pack/images/0163_FootballBall_plastic.png +0 -0
  389. melon_lua/data/sprites_pack/images/0164_FootballGoal.png +0 -0
  390. melon_lua/data/sprites_pack/images/0164_FootballGoal_plastic.png +0 -0
  391. melon_lua/data/sprites_pack/images/0165_TennisBall.png +0 -0
  392. melon_lua/data/sprites_pack/images/0165_TennisBall_plastic.png +0 -0
  393. melon_lua/data/sprites_pack/images/0166_TennisRacket.png +0 -0
  394. melon_lua/data/sprites_pack/images/0166_TennisRacket_plastic.png +0 -0
  395. melon_lua/data/sprites_pack/images/0167_HumanRobot_plastic.png +0 -0
  396. melon_lua/data/sprites_pack/images/0168_AxeHev_B.png +0 -0
  397. melon_lua/data/sprites_pack/images/0168_AxeHev_B_plastic.png +0 -0
  398. melon_lua/data/sprites_pack/images/0169_Pistol_B.png +0 -0
  399. melon_lua/data/sprites_pack/images/0169_Pistol_B_plastic.png +0 -0
  400. melon_lua/data/sprites_pack/images/0170_Revolver_B.png +0 -0
  401. melon_lua/data/sprites_pack/images/0170_Revolver_B_plastic.png +0 -0
  402. melon_lua/data/sprites_pack/images/0171_Sword_B.png +0 -0
  403. melon_lua/data/sprites_pack/images/0171_Sword_B_plastic.png +0 -0
  404. melon_lua/data/sprites_pack/images/0172_BTR_Vehicle.png +0 -0
  405. melon_lua/data/sprites_pack/images/0172_BTR_Vehicle_plastic.png +0 -0
  406. melon_lua/data/sprites_pack/images/0173_LaserGun.png +0 -0
  407. melon_lua/data/sprites_pack/images/0173_LaserGun_plastic.png +0 -0
  408. melon_lua/data/sprites_pack/images/0174_ScooterVehicle.png +0 -0
  409. melon_lua/data/sprites_pack/images/0174_ScooterVehicle_plastic.png +0 -0
  410. melon_lua/data/sprites_pack/images/0175_PaintballGun.png +0 -0
  411. melon_lua/data/sprites_pack/images/0175_PaintballGun_plastic.png +0 -0
  412. melon_lua/data/sprites_pack/images/0176_StreetLight.png +0 -0
  413. melon_lua/data/sprites_pack/images/0176_StreetLight_plastic.png +0 -0
  414. melon_lua/data/sprites_pack/images/0177_FlashLight.png +0 -0
  415. melon_lua/data/sprites_pack/images/0177_FlashLight_plastic.png +0 -0
  416. melon_lua/data/sprites_pack/images/0178_EdisonLamp.png +0 -0
  417. melon_lua/data/sprites_pack/images/0178_EdisonLamp_plastic.png +0 -0
  418. melon_lua/data/sprites_pack/images/0179_CandleLight.png +0 -0
  419. melon_lua/data/sprites_pack/images/0179_CandleLight_atlas.png +0 -0
  420. melon_lua/data/sprites_pack/images/0180_Candlestick.png +0 -0
  421. melon_lua/data/sprites_pack/images/0180_Candlestick_plastic.png +0 -0
  422. melon_lua/data/sprites_pack/images/0181_FestoonLight.png +0 -0
  423. melon_lua/data/sprites_pack/images/0181_FestoonLight_plastic.png +0 -0
  424. melon_lua/data/sprites_pack/images/0182_Firework.png +0 -0
  425. melon_lua/data/sprites_pack/images/0182_Firework_plastic.png +0 -0
  426. melon_lua/data/sprites_pack/images/0183_Cake.png +0 -0
  427. melon_lua/data/sprites_pack/images/0183_Cake_plastic.png +0 -0
  428. melon_lua/data/sprites_pack/images/0184_ContraptionSpawner.png +0 -0
  429. melon_lua/data/sprites_pack/images/0184_ContraptionSpawner_plastic.png +0 -0
  430. melon_lua/data/sprites_pack/images/0185_VacuumCleaner.png +0 -0
  431. melon_lua/data/sprites_pack/images/0185_VacuumCleaner_plastic.png +0 -0
  432. melon_lua/data/sprites_pack/images/0186_HumanCactus.png +0 -0
  433. melon_lua/data/sprites_pack/images/0186_HumanCactus_atlas.png +0 -0
  434. melon_lua/data/sprites_pack/images/0187_HalloweenPumpkin.png +0 -0
  435. melon_lua/data/sprites_pack/images/0187_HalloweenPumpkin_plastic.png +0 -0
  436. melon_lua/data/sprites_pack/images/0188_RabbitHat.png +0 -0
  437. melon_lua/data/sprites_pack/images/0188_RabbitHat_plastic.png +0 -0
  438. melon_lua/data/sprites_pack/images/0189_RabbitCostume.png +0 -0
  439. melon_lua/data/sprites_pack/images/0189_RabbitCostume_plastic.png +0 -0
  440. melon_lua/data/sprites_pack/images/0190_WitchHat.png +0 -0
  441. melon_lua/data/sprites_pack/images/0190_WitchHat_plastic.png +0 -0
  442. melon_lua/data/sprites_pack/images/0191_FairyWings.png +0 -0
  443. melon_lua/data/sprites_pack/images/0191_FairyWings_plastic.png +0 -0
  444. melon_lua/data/sprites_pack/images/0192_Bus.png +0 -0
  445. melon_lua/data/sprites_pack/images/0193_Spruce.png +0 -0
  446. melon_lua/data/sprites_pack/images/0193_Spruce_atlas.png +0 -0
  447. melon_lua/data/sprites_pack/images/0194_KefiaFull.png +0 -0
  448. melon_lua/data/sprites_pack/images/0194_KefiaFull_plastic.png +0 -0
  449. melon_lua/data/sprites_pack/images/0195_KefiaPartial.png +0 -0
  450. melon_lua/data/sprites_pack/images/0195_KefiaPartial_plastic.png +0 -0
  451. melon_lua/data/sprites_pack/images/0196_Shirt.png +0 -0
  452. melon_lua/data/sprites_pack/images/0196_Shirt_plastic.png +0 -0
  453. melon_lua/data/sprites_pack/images/0197_Santa_Costume.png +0 -0
  454. melon_lua/data/sprites_pack/images/0197_Santa_Costume_plastic.png +0 -0
  455. melon_lua/data/sprites_pack/images/0198_ElfHat.png +0 -0
  456. melon_lua/data/sprites_pack/images/0198_ElfHat_plastic.png +0 -0
  457. melon_lua/data/sprites_pack/images/0199_ElfCostume.png +0 -0
  458. melon_lua/data/sprites_pack/images/0199_ElfCostume_plastic.png +0 -0
  459. melon_lua/data/sprites_pack/images/0200_Sweater.png +0 -0
  460. melon_lua/data/sprites_pack/images/0200_Sweater_atlas.png +0 -0
  461. melon_lua/data/sprites_pack/images/0201_ResizableConcrete.png +0 -0
  462. melon_lua/data/sprites_pack/images/0201_ResizableConcrete_plastic.png +0 -0
  463. melon_lua/data/sprites_pack/images/0202_ResizablePlastic.png +0 -0
  464. melon_lua/data/sprites_pack/images/0202_ResizablePlastic_plastic.png +0 -0
  465. melon_lua/data/sprites_pack/images/0202_plastic_fallback.png +0 -0
  466. melon_lua/data/sprites_pack/images/0203_RedCoat.png +0 -0
  467. melon_lua/data/sprites_pack/images/0203_RedCoat_plastic.png +0 -0
  468. melon_lua/data/sprites_pack/images/0204_FurCoat.png +0 -0
  469. melon_lua/data/sprites_pack/images/0204_FurCoat_plastic.png +0 -0
  470. melon_lua/data/sprites_pack/images/0205_ResizableBrick.png +0 -0
  471. melon_lua/data/sprites_pack/images/0205_ResizableBrick_plastic.png +0 -0
  472. melon_lua/data/sprites_pack/images/0206_WinterJacket.png +0 -0
  473. melon_lua/data/sprites_pack/images/0206_WinterJacket_plastic.png +0 -0
  474. melon_lua/data/sprites_pack/images/0207_WinterCoat.png +0 -0
  475. melon_lua/data/sprites_pack/images/0207_WinterCoat_plastic.png +0 -0
  476. melon_lua/data/sprites_pack/images/0208_WinterSocks.png +0 -0
  477. melon_lua/data/sprites_pack/images/0208_WinterSocks_plastic.png +0 -0
  478. melon_lua/data/sprites_pack/images/0209_WarmPants.png +0 -0
  479. melon_lua/data/sprites_pack/images/0209_WarmPants_plastic.png +0 -0
  480. melon_lua/data/sprites_pack/images/0210_PompomHat.png +0 -0
  481. melon_lua/data/sprites_pack/images/0210_PompomHat_plastic.png +0 -0
  482. melon_lua/data/sprites_pack/images/0211_WinterBoots.png +0 -0
  483. melon_lua/data/sprites_pack/images/0211_WinterBoots_plastic.png +0 -0
  484. melon_lua/data/sprites_pack/images/0212_PilotHat.png +0 -0
  485. melon_lua/data/sprites_pack/images/0212_PilotHat_plastic.png +0 -0
  486. melon_lua/data/sprites_pack/images/0213_Truck.png +0 -0
  487. melon_lua/data/sprites_pack/images/0213_Truck_plastic.png +0 -0
  488. melon_lua/data/sprites_pack/images/0214_HumanTomato.png +0 -0
  489. melon_lua/data/sprites_pack/images/0214_HumanTomato_plastic.png +0 -0
  490. melon_lua/data/sprites_pack/images/0215_Thing_plastic.png +0 -0
  491. melon_lua/data/sprites_pack/images/0216_AppleTree.png +0 -0
  492. melon_lua/data/sprites_pack/images/0216_AppleTree_plastic.png +0 -0
  493. melon_lua/data/sprites_pack/images/0217_Tree.png +0 -0
  494. melon_lua/data/sprites_pack/images/0218_Bush.png +0 -0
  495. melon_lua/data/sprites_pack/images/0218_Bush_plastic.png +0 -0
  496. melon_lua/data/sprites_pack/images/0219_Palm.png +0 -0
  497. melon_lua/data/sprites_pack/images/0219_Palm_plastic.png +0 -0
  498. melon_lua/data/sprites_pack/images/0220_SpruceBig.png +0 -0
  499. melon_lua/data/sprites_pack/images/0220_SpruceBig_plastic.png +0 -0
  500. melon_lua/data/sprites_pack/images/0221_FireStaff.png +0 -0
  501. melon_lua/data/sprites_pack/images/0221_FireStaff_plastic.png +0 -0
  502. melon_lua/data/sprites_pack/images/0222_TriplexGlass.png +0 -0
  503. melon_lua/data/sprites_pack/images/0222_TriplexGlass_plastic.png +0 -0
  504. melon_lua/data/sprites_pack/images/0223_ResizableGothicBrick.png +0 -0
  505. melon_lua/data/sprites_pack/images/0223_ResizableGothicBrick_plastic.png +0 -0
  506. melon_lua/data/sprites_pack/images/0224_LogSide.png +0 -0
  507. melon_lua/data/sprites_pack/images/0224_LogSide_plastic.png +0 -0
  508. melon_lua/data/sprites_pack/images/0225_LogFront.png +0 -0
  509. melon_lua/data/sprites_pack/images/0225_LogFront_plastic.png +0 -0
  510. melon_lua/data/sprites_pack/images/0226_Cobblestone.png +0 -0
  511. melon_lua/data/sprites_pack/images/0226_Cobblestone_plastic.png +0 -0
  512. melon_lua/data/sprites_pack/images/0227_FuelBarrel1.png +0 -0
  513. melon_lua/data/sprites_pack/images/0227_FuelBarrel1_plastic.png +0 -0
  514. melon_lua/data/sprites_pack/images/0228_FuelBarrel2.png +0 -0
  515. melon_lua/data/sprites_pack/images/0228_FuelBarrel2_plastic.png +0 -0
  516. melon_lua/data/sprites_pack/images/0229_Generator.png +0 -0
  517. melon_lua/data/sprites_pack/images/0229_Generator_plastic.png +0 -0
  518. melon_lua/data/sprites_pack/images/0230_Adapter.png +0 -0
  519. melon_lua/data/sprites_pack/images/0230_Adapter_plastic.png +0 -0
  520. melon_lua/data/sprites_pack/images/0231_SyringeElectricityProtection.png +0 -0
  521. melon_lua/data/sprites_pack/images/0231_SyringeElectricityProtection_plastic.png +0 -0
  522. melon_lua/data/sprites_pack/images/0232_DuckNeon.png +0 -0
  523. melon_lua/data/sprites_pack/images/0232_DuckNeon_plastic.png +0 -0
  524. melon_lua/data/sprites_pack/images/0233_GlowLabel.png +0 -0
  525. melon_lua/data/sprites_pack/images/0233_GlowLabel_plastic.png +0 -0
  526. melon_lua/data/sprites_pack/images/0234_MelonNeon.png +0 -0
  527. melon_lua/data/sprites_pack/images/0234_MelonNeon_atlas.png +0 -0
  528. melon_lua/data/sprites_pack/images/0235_WatermelonNeon.png +0 -0
  529. melon_lua/data/sprites_pack/images/0235_WatermelonNeon_plastic.png +0 -0
  530. melon_lua/data/sprites_pack/images/0236_SyringeEmbalming.png +0 -0
  531. melon_lua/data/sprites_pack/images/0236_SyringeEmbalming_plastic.png +0 -0
  532. melon_lua/data/sprites_pack/images/0237_SyringeDamageResist.png +0 -0
  533. melon_lua/data/sprites_pack/images/0237_SyringeDamageResist_plastic.png +0 -0
  534. melon_lua/data/sprites_pack/images/0238_FreezeGrenade.png +0 -0
  535. melon_lua/data/sprites_pack/images/0238_FreezeGrenade_plastic.png +0 -0
  536. melon_lua/data/sprites_pack/images/0239_SyringeJointDiluent.png +0 -0
  537. melon_lua/data/sprites_pack/images/0239_SyringeJointDiluent_plastic.png +0 -0
  538. melon_lua/data/sprites_pack/images/0240_DarkStaff.png +0 -0
  539. melon_lua/data/sprites_pack/images/0240_DarkStaff_plastic.png +0 -0
  540. melon_lua/data/sprites_pack/images/0241_SmokeGrenade.png +0 -0
  541. melon_lua/data/sprites_pack/images/0241_SmokeGrenade_plastic.png +0 -0
  542. melon_lua/data/sprites_pack/images/0242_GasGrenade.png +0 -0
  543. melon_lua/data/sprites_pack/images/0242_GasGrenade_plastic.png +0 -0
  544. melon_lua/data/sprites_pack/images/0243_FragmentionGrenade.png +0 -0
  545. melon_lua/data/sprites_pack/images/0243_FragmentionGrenade_plastic.png +0 -0
  546. melon_lua/data/sprites_pack/images/0244_HumanDragonFruit_plastic.png +0 -0
  547. melon_lua/data/sprites_pack/images/0245_HumanDragonFruitNew.png +0 -0
  548. melon_lua/data/sprites_pack/images/0245_HumanDragonFruitNew_plastic.png +0 -0
  549. melon_lua/data/sprites_pack/images/0246_Door.png +0 -0
  550. melon_lua/data/sprites_pack/images/0246_Door_plastic.png +0 -0
  551. melon_lua/data/sprites_pack/images/0247_Grabber.png +0 -0
  552. melon_lua/data/sprites_pack/images/0247_Grabber_plastic.png +0 -0
  553. melon_lua/data/sprites_pack/images/0248_VPchip.png +0 -0
  554. melon_lua/data/sprites_pack/images/0248_VPchip_plastic.png +0 -0
  555. melon_lua/data/sprites_pack/images/0249_VPchipTutorial1.png +0 -0
  556. melon_lua/data/sprites_pack/images/0249_VPchipTutorial1_plastic.png +0 -0
  557. melon_lua/data/sprites_pack/images/0250_VPchipTutorial2.png +0 -0
  558. melon_lua/data/sprites_pack/images/0250_VPchipTutorial2_plastic.png +0 -0
  559. melon_lua/data/sprites_pack/images/0251_VPchipTutorial3.png +0 -0
  560. melon_lua/data/sprites_pack/images/0251_VPchipTutorial3_plastic.png +0 -0
  561. melon_lua/data/sprites_pack/images/0252_Trigger.png +0 -0
  562. melon_lua/data/sprites_pack/images/0252_Trigger_plastic.png +0 -0
  563. melon_lua/data/sprites_pack/images/0253_Timer.png +0 -0
  564. melon_lua/data/sprites_pack/images/0253_Timer_atlas.png +0 -0
  565. melon_lua/data/sprites_pack/images/0254_ContextActivator.png +0 -0
  566. melon_lua/data/sprites_pack/images/0254_ContextActivator_plastic.png +0 -0
  567. melon_lua/data/sprites_pack/images/0255_ElectricBaton.png +0 -0
  568. melon_lua/data/sprites_pack/images/0255_ElectricBaton_plastic.png +0 -0
  569. melon_lua/data/sprites_pack/images/0256_CameraDevice.png +0 -0
  570. melon_lua/data/sprites_pack/images/0256_CameraDevice_atlas.png +0 -0
  571. melon_lua/data/sprites_pack/images/0257_ScreenDevice.png +0 -0
  572. melon_lua/data/sprites_pack/images/0257_ScreenDevice_plastic.png +0 -0
  573. melon_lua/data/sprites_pack/images/0258_Radio.png +0 -0
  574. melon_lua/data/sprites_pack/images/0259_StunGun.png +0 -0
  575. melon_lua/data/sprites_pack/images/0259_StunGun_plastic.png +0 -0
  576. melon_lua/data/sprites_pack/images/0260_Helicopter.png +0 -0
  577. melon_lua/data/sprites_pack/images/0260_Helicopter_plastic.png +0 -0
  578. melon_lua/data/sprites_pack/images/0261_ScreenTextDevice.png +0 -0
  579. melon_lua/data/sprites_pack/images/0261_ScreenTextDevice_plastic.png +0 -0
  580. melon_lua/data/sprites_pack/images/0262_Synthesizer.png +0 -0
  581. melon_lua/data/sprites_pack/images/0262_Synthesizer_plastic.png +0 -0
  582. melon_lua/data/sprites_pack/images/0263_SyringeRegrowth.png +0 -0
  583. melon_lua/data/sprites_pack/images/0263_SyringeRegrowth_plastic.png +0 -0
  584. melon_lua/data/sprites_pack/images/0264_GasMask.png +0 -0
  585. melon_lua/data/sprites_pack/images/0264_GasMask_plastic.png +0 -0
  586. melon_lua/data/sprites_pack/images/0265_DragonFruit.png +0 -0
  587. melon_lua/data/sprites_pack/images/0265_DragonFruit_plastic.png +0 -0
  588. melon_lua/data/sprites_pack/images/0266_Icicle.png +0 -0
  589. melon_lua/data/sprites_pack/images/0266_Icicle_atlas.png +0 -0
  590. melon_lua/data/sprites_pack/images/0267_TomatoCan.png +0 -0
  591. melon_lua/data/sprites_pack/images/0267_TomatoCan_plastic.png +0 -0
  592. melon_lua/data/sprites_pack/images/0268_HumanRobotLivingMetal.png +0 -0
  593. melon_lua/data/sprites_pack/images/0268_HumanRobotLivingMetal_atlas.png +0 -0
  594. melon_lua/data/sprites_pack/images/0269_Snowblock.png +0 -0
  595. melon_lua/data/sprites_pack/images/0269_Snowblock_plastic.png +0 -0
  596. melon_lua/data/sprites_pack/images/0270_SnowMan2024.png +0 -0
  597. melon_lua/data/sprites_pack/images/0270_SnowMan2024_plastic.png +0 -0
  598. melon_lua/data/sprites_pack/images/0271_FreezeGun.png +0 -0
  599. melon_lua/data/sprites_pack/images/0271_FreezeGun_plastic.png +0 -0
  600. melon_lua/data/sprites_pack/images/0272_ImpulseThruster.png +0 -0
  601. melon_lua/data/sprites_pack/images/0272_ImpulseThruster_plastic.png +0 -0
  602. melon_lua/data/sprites_pack/images/0273_DirectionalEngineOld_plastic.png +0 -0
  603. melon_lua/data/sprites_pack/images/0274_WeightingAgent.png +0 -0
  604. melon_lua/data/sprites_pack/images/0274_WeightingAgent_plastic.png +0 -0
  605. melon_lua/data/sprites_pack/images/0275_Magnet.png +0 -0
  606. melon_lua/data/sprites_pack/images/0275_Magnet_atlas.png +0 -0
  607. melon_lua/data/sprites_pack/images/0276_DamageSensor.png +0 -0
  608. melon_lua/data/sprites_pack/images/0276_DamageSensor_plastic.png +0 -0
  609. melon_lua/data/sprites_pack/images/0277_ExplosiveCharge.png +0 -0
  610. melon_lua/data/sprites_pack/images/0277_ExplosiveCharge_plastic.png +0 -0
  611. melon_lua/data/sprites_pack/images/0278_BubbleLevel.png +0 -0
  612. melon_lua/data/sprites_pack/images/0278_BubbleLevel_plastic.png +0 -0
  613. melon_lua/data/sprites_pack/images/0279_Nanoassembler.png +0 -0
  614. melon_lua/data/sprites_pack/images/0279_Nanoassembler_plastic.png +0 -0
  615. melon_lua/data/sprites_pack/images/0280_Brick golem_plastic.png +0 -0
  616. melon_lua/data/sprites_pack/images/0281_Ceramic golem_plastic.png +0 -0
  617. melon_lua/data/sprites_pack/images/0282_Glass golem_plastic.png +0 -0
  618. melon_lua/data/sprites_pack/images/0283_Iron golem_plastic.png +0 -0
  619. melon_lua/data/sprites_pack/images/0284_Plastic golem_plastic.png +0 -0
  620. melon_lua/data/sprites_pack/images/0285_Toy golem_plastic.png +0 -0
  621. melon_lua/data/sprites_pack/images/0286_Wood golem_plastic.png +0 -0
  622. melon_lua/data/sprites_pack/images/0287_ChemicalProtectionHelmet.png +0 -0
  623. melon_lua/data/sprites_pack/images/0287_ChemicalProtectionHelmet_plastic.png +0 -0
  624. melon_lua/data/sprites_pack/images/0288_ChemicalProtectionSuit.png +0 -0
  625. melon_lua/data/sprites_pack/images/0288_ChemicalProtectionSuit_plastic.png +0 -0
  626. melon_lua/data/sprites_pack/images/0289_FlaskAcid.png +0 -0
  627. melon_lua/data/sprites_pack/images/0289_FlaskAcid_plastic.png +0 -0
  628. melon_lua/data/sprites_pack/images/0290_FlaskDamageResist.png +0 -0
  629. melon_lua/data/sprites_pack/images/0290_FlaskDamageResist_plastic.png +0 -0
  630. melon_lua/data/sprites_pack/images/0291_FlaskElectricityProtection.png +0 -0
  631. melon_lua/data/sprites_pack/images/0291_FlaskElectricityProtection_plastic.png +0 -0
  632. melon_lua/data/sprites_pack/images/0292_FlaskEmbalming.png +0 -0
  633. melon_lua/data/sprites_pack/images/0292_FlaskEmbalming_plastic.png +0 -0
  634. melon_lua/data/sprites_pack/images/0293_FlaskFireproof.png +0 -0
  635. melon_lua/data/sprites_pack/images/0293_FlaskFireproof_plastic.png +0 -0
  636. melon_lua/data/sprites_pack/images/0294_FlaskHeal.png +0 -0
  637. melon_lua/data/sprites_pack/images/0294_FlaskHeal_plastic.png +0 -0
  638. melon_lua/data/sprites_pack/images/0295_FlaskImmortal.png +0 -0
  639. melon_lua/data/sprites_pack/images/0295_FlaskImmortal_plastic.png +0 -0
  640. melon_lua/data/sprites_pack/images/0296_FlaskJointDiluent.png +0 -0
  641. melon_lua/data/sprites_pack/images/0296_FlaskJointDiluent_plastic.png +0 -0
  642. melon_lua/data/sprites_pack/images/0297_FlaskRegen.png +0 -0
  643. melon_lua/data/sprites_pack/images/0297_FlaskRegen_plastic.png +0 -0
  644. melon_lua/data/sprites_pack/images/0298_FlaskRegrowth.png +0 -0
  645. melon_lua/data/sprites_pack/images/0298_FlaskRegrowth_plastic.png +0 -0
  646. melon_lua/data/sprites_pack/images/0299_FlaskVirus.png +0 -0
  647. melon_lua/data/sprites_pack/images/0299_FlaskVirus_plastic.png +0 -0
  648. melon_lua/data/sprites_pack/images/0300_FlaskWater.png +0 -0
  649. melon_lua/data/sprites_pack/images/0300_FlaskWater_plastic.png +0 -0
  650. melon_lua/data/sprites_pack/images/0301_RackDecor.png +0 -0
  651. melon_lua/data/sprites_pack/images/0301_RackDecor_plastic.png +0 -0
  652. melon_lua/data/sprites_pack/images/0302_FluorescentLamp 2.png +0 -0
  653. melon_lua/data/sprites_pack/images/0302_FluorescentLamp 2_plastic.png +0 -0
  654. melon_lua/data/sprites_pack/images/0303_FluorescentLamp 1.png +0 -0
  655. melon_lua/data/sprites_pack/images/0303_FluorescentLamp 1_plastic.png +0 -0
  656. melon_lua/data/sprites_pack/images/0304_DecorConicalFlask.png +0 -0
  657. melon_lua/data/sprites_pack/images/0304_DecorConicalFlask_plastic.png +0 -0
  658. melon_lua/data/sprites_pack/images/0305_DecorMeasuringFlask.png +0 -0
  659. melon_lua/data/sprites_pack/images/0305_DecorMeasuringFlask_plastic.png +0 -0
  660. melon_lua/data/sprites_pack/images/0306_DecorReactionFlask.png +0 -0
  661. melon_lua/data/sprites_pack/images/0306_DecorReactionFlask_plastic.png +0 -0
  662. melon_lua/data/sprites_pack/images/0307_DecorSectionalTestTube.png +0 -0
  663. melon_lua/data/sprites_pack/images/0307_DecorSectionalTestTube_plastic.png +0 -0
  664. melon_lua/data/sprites_pack/images/0308_DecorThinTestTube.png +0 -0
  665. melon_lua/data/sprites_pack/images/0308_DecorThinTestTube_plastic.png +0 -0
  666. melon_lua/data/sprites_pack/images/0309_DecorWideTestTube.png +0 -0
  667. melon_lua/data/sprites_pack/images/0309_DecorWideTestTube_plastic.png +0 -0
  668. melon_lua/data/sprites_pack/images/0310_EffectGenerator.png +0 -0
  669. melon_lua/data/sprites_pack/images/0310_EffectGenerator_plastic.png +0 -0
  670. melon_lua/data/sprites_pack/images/0311_WelderGloves.png +0 -0
  671. melon_lua/data/sprites_pack/images/0311_WelderGloves_plastic.png +0 -0
  672. melon_lua/data/sprites_pack/images/0312_WelderMask.png +0 -0
  673. melon_lua/data/sprites_pack/images/0312_WelderMask_plastic.png +0 -0
  674. melon_lua/data/sprites_pack/images/0313_WelderSuit.png +0 -0
  675. melon_lua/data/sprites_pack/images/0313_WelderSuit_plastic.png +0 -0
  676. melon_lua/data/sprites_pack/images/0314_VatOfAcid.png +0 -0
  677. melon_lua/data/sprites_pack/images/0314_VatOfAcid_plastic.png +0 -0
  678. melon_lua/data/sprites_pack/images/0315_VirusBarrel.png +0 -0
  679. melon_lua/data/sprites_pack/images/0315_VirusBarrel_plastic.png +0 -0
  680. melon_lua/data/sprites_pack/images/0316_WasteBarrel.png +0 -0
  681. melon_lua/data/sprites_pack/images/0316_WasteBarrel_plastic.png +0 -0
  682. melon_lua/data/sprites_pack/images/0317_Wings.png +0 -0
  683. melon_lua/data/sprites_pack/images/0317_Wings_plastic.png +0 -0
  684. melon_lua/data/sprites_pack/images/0318_Nimbus.png +0 -0
  685. melon_lua/data/sprites_pack/images/0318_Nimbus_plastic.png +0 -0
  686. melon_lua/data/sprites_pack/images/0319_Iceblock.png +0 -0
  687. melon_lua/data/sprites_pack/images/0319_Iceblock_plastic.png +0 -0
  688. melon_lua/data/sprites_pack/images/0320_HeadPhones.png +0 -0
  689. melon_lua/data/sprites_pack/images/0320_HeadPhones_plastic.png +0 -0
  690. melon_lua/data/sprites_pack/images/0321_Wig.png +0 -0
  691. melon_lua/data/sprites_pack/images/0321_Wig_plastic.png +0 -0
  692. melon_lua/data/sprites_pack/images/0322_DarkWig.png +0 -0
  693. melon_lua/data/sprites_pack/images/0322_DarkWig_plastic.png +0 -0
  694. melon_lua/data/sprites_pack/images/0323_EmoWig.png +0 -0
  695. melon_lua/data/sprites_pack/images/0323_EmoWig_plastic.png +0 -0
  696. melon_lua/data/sprites_pack/images/0324_Iroquois.png +0 -0
  697. melon_lua/data/sprites_pack/images/0324_Iroquois_plastic.png +0 -0
  698. melon_lua/data/sprites_pack/images/0325_Piano.png +0 -0
  699. melon_lua/data/sprites_pack/images/0325_Piano_plastic.png +0 -0
  700. melon_lua/data/sprites_pack/images/0326_Guitar.png +0 -0
  701. melon_lua/data/sprites_pack/images/0326_Guitar_plastic.png +0 -0
  702. melon_lua/data/sprites_pack/images/0327_Xylophone.png +0 -0
  703. melon_lua/data/sprites_pack/images/0327_Xylophone_plastic.png +0 -0
  704. melon_lua/data/sprites_pack/images/0328_Flutes.png +0 -0
  705. melon_lua/data/sprites_pack/images/0328_Flutes_plastic.png +0 -0
  706. melon_lua/data/sprites_pack/images/0329_Drums.png +0 -0
  707. melon_lua/data/sprites_pack/images/0329_Drums_plastic.png +0 -0
  708. melon_lua/data/sprites_pack/images/0330_Chainsaw.png +0 -0
  709. melon_lua/data/sprites_pack/images/0330_Chainsaw_plastic.png +0 -0
  710. melon_lua/data/sprites_pack/images/0331_Battery.png +0 -0
  711. melon_lua/data/sprites_pack/images/0331_Battery_plastic.png +0 -0
  712. melon_lua/data/sprites_pack/images/0332_AcidicAmmoBox.png +0 -0
  713. melon_lua/data/sprites_pack/images/0332_AcidicAmmoBox_plastic.png +0 -0
  714. melon_lua/data/sprites_pack/images/0333_ArmorPiercingAmmoBox.png +0 -0
  715. melon_lua/data/sprites_pack/images/0333_ArmorPiercingAmmoBox_plastic.png +0 -0
  716. melon_lua/data/sprites_pack/images/0334_BouncingAmmoBox.png +0 -0
  717. melon_lua/data/sprites_pack/images/0334_BouncingAmmoBox_plastic.png +0 -0
  718. melon_lua/data/sprites_pack/images/0335_ExpandingAmmoBox.png +0 -0
  719. melon_lua/data/sprites_pack/images/0335_ExpandingAmmoBox_plastic.png +0 -0
  720. melon_lua/data/sprites_pack/images/0336_ExplosiveAmmoBox.png +0 -0
  721. melon_lua/data/sprites_pack/images/0336_ExplosiveAmmoBox_plastic.png +0 -0
  722. melon_lua/data/sprites_pack/images/0337_IncendiaryAmmoBox.png +0 -0
  723. melon_lua/data/sprites_pack/images/0337_IncendiaryAmmoBox_plastic.png +0 -0
  724. melon_lua/data/sprites_pack/images/0338_InvisibleAmmoBox.png +0 -0
  725. melon_lua/data/sprites_pack/images/0338_InvisibleAmmoBox_plastic.png +0 -0
  726. melon_lua/data/sprites_pack/images/0339_MixedAmmoBox_plastic.png +0 -0
  727. melon_lua/data/sprites_pack/images/0340_StandardAmmoBox.png +0 -0
  728. melon_lua/data/sprites_pack/images/0340_StandardAmmoBox_plastic.png +0 -0
  729. melon_lua/data/sprites_pack/images/0341_UnderwaterAmmoBox.png +0 -0
  730. melon_lua/data/sprites_pack/images/0341_UnderwaterAmmoBox_plastic.png +0 -0
  731. melon_lua/data/sprites_pack/images/0342_AmmoMixer.png +0 -0
  732. melon_lua/data/sprites_pack/images/0342_AmmoMixer_plastic.png +0 -0
  733. melon_lua/data/sprites_pack/images/0343_Relay.png +0 -0
  734. melon_lua/data/sprites_pack/images/0343_Relay_plastic.png +0 -0
  735. melon_lua/data/sprites_pack/images/0344_Defibrillator.png +0 -0
  736. melon_lua/data/sprites_pack/images/0344_Defibrillator_plastic.png +0 -0
  737. melon_lua/data/sprites_pack/images/0345_Slider.png +0 -0
  738. melon_lua/data/sprites_pack/images/0346_Voltmeter.png +0 -0
  739. melon_lua/data/sprites_pack/images/0346_Voltmeter_plastic.png +0 -0
  740. melon_lua/data/sprites_pack/images/0347_Conveyor.png +0 -0
  741. melon_lua/data/sprites_pack/images/0347_Conveyor_plastic.png +0 -0
  742. melon_lua/data/sprites_pack/images/0348_Transformer.png +0 -0
  743. melon_lua/data/sprites_pack/images/0348_Transformer_plastic.png +0 -0
  744. melon_lua/data/sprites_pack/images/0349_Plug.png +0 -0
  745. melon_lua/data/sprites_pack/images/0349_Plug_atlas.png +0 -0
  746. melon_lua/data/sprites_pack/images/0350_Socket.png +0 -0
  747. melon_lua/data/sprites_pack/images/0350_Socket_atlas.png +0 -0
  748. melon_lua/data/sprites_pack/images/0351_Old shawl.png +0 -0
  749. melon_lua/data/sprites_pack/images/0351_Old shawl_plastic.png +0 -0
  750. melon_lua/data/sprites_pack/images/0352_Old skirt.png +0 -0
  751. melon_lua/data/sprites_pack/images/0352_Old skirt_plastic.png +0 -0
  752. melon_lua/data/sprites_pack/images/0353_Old slippers.png +0 -0
  753. melon_lua/data/sprites_pack/images/0353_Old slippers_plastic.png +0 -0
  754. melon_lua/data/sprites_pack/images/0354_Old sweater.png +0 -0
  755. melon_lua/data/sprites_pack/images/0354_Old sweater_plastic.png +0 -0
  756. melon_lua/data/sprites_pack/images/0355_SpikedStaff.png +0 -0
  757. melon_lua/data/sprites_pack/images/0355_SpikedStaff_plastic.png +0 -0
  758. melon_lua/data/sprites_pack/images/0356_FluorescentStaff.png +0 -0
  759. melon_lua/data/sprites_pack/images/0356_FluorescentStaff_plastic.png +0 -0
  760. melon_lua/data/sprites_pack/images/0357_GlueStaff.png +0 -0
  761. melon_lua/data/sprites_pack/images/0357_GlueStaff_plastic.png +0 -0
  762. melon_lua/data/sprites_pack/images/0358_SlickStaff.png +0 -0
  763. melon_lua/data/sprites_pack/images/0358_SlickStaff_plastic.png +0 -0
  764. melon_lua/data/sprites_pack/images/0359_BallooningStaff.png +0 -0
  765. melon_lua/data/sprites_pack/images/0359_BallooningStaff_plastic.png +0 -0
  766. melon_lua/data/sprites_pack/images/0360_GhostlyStaff.png +0 -0
  767. melon_lua/data/sprites_pack/images/0360_GhostlyStaff_plastic.png +0 -0
  768. melon_lua/data/sprites_pack/images/0361_MutationStaff.png +0 -0
  769. melon_lua/data/sprites_pack/images/0361_MutationStaff_plastic.png +0 -0
  770. melon_lua/data/sprites_pack/images/0362_RoachesStaff.png +0 -0
  771. melon_lua/data/sprites_pack/images/0362_RoachesStaff_plastic.png +0 -0
  772. melon_lua/data/sprites_pack/images/0363_UIControl.png +0 -0
  773. melon_lua/data/sprites_pack/images/0363_UIControl_plastic.png +0 -0
  774. melon_lua/data/sprites_pack/images/0364_Policeman cap.png +0 -0
  775. melon_lua/data/sprites_pack/images/0364_Policeman cap_plastic.png +0 -0
  776. melon_lua/data/sprites_pack/images/0365_Policeman shirt.png +0 -0
  777. melon_lua/data/sprites_pack/images/0365_Policeman shirt_plastic.png +0 -0
  778. melon_lua/data/sprites_pack/images/0366_Policeman trousers.png +0 -0
  779. melon_lua/data/sprites_pack/images/0366_Policeman trousers_plastic.png +0 -0
  780. melon_lua/data/sprites_pack/images/0367_Clown nose.png +0 -0
  781. melon_lua/data/sprites_pack/images/0367_Clown nose_plastic.png +0 -0
  782. melon_lua/data/sprites_pack/images/0368_Clown shirt.png +0 -0
  783. melon_lua/data/sprites_pack/images/0368_Clown shirt_plastic.png +0 -0
  784. melon_lua/data/sprites_pack/images/0369_Clown shoes.png +0 -0
  785. melon_lua/data/sprites_pack/images/0369_Clown shoes_plastic.png +0 -0
  786. melon_lua/data/sprites_pack/images/0370_Clown trousers.png +0 -0
  787. melon_lua/data/sprites_pack/images/0370_Clown trousers_plastic.png +0 -0
  788. melon_lua/data/sprites_pack/images/0371_Clown wig.png +0 -0
  789. melon_lua/data/sprites_pack/images/0371_Clown wig_plastic.png +0 -0
  790. melon_lua/data/sprites_pack/images/0372_WizardBeard.png +0 -0
  791. melon_lua/data/sprites_pack/images/0372_WizardBeard_plastic.png +0 -0
  792. melon_lua/data/sprites_pack/images/0373_WizardRobe.png +0 -0
  793. melon_lua/data/sprites_pack/images/0373_WizardRobe_plastic.png +0 -0
  794. melon_lua/data/sprites_pack/images/0374_WizardShoes.png +0 -0
  795. melon_lua/data/sprites_pack/images/0374_WizardShoes_plastic.png +0 -0
  796. melon_lua/data/sprites_pack/images/0375_StopSign.png +0 -0
  797. melon_lua/data/sprites_pack/images/0375_StopSign_plastic.png +0 -0
  798. melon_lua/data/sprites_pack/images/0376_DirectionalEngine.png +0 -0
  799. melon_lua/data/sprites_pack/images/0376_DirectionalEngine_plastic.png +0 -0
  800. melon_lua/data/sprites_pack/images/0377_HeliumCylinder.png +0 -0
  801. melon_lua/data/sprites_pack/images/0377_HeliumCylinder_plastic.png +0 -0
  802. melon_lua/data/sprites_pack/images/0378_HeliumBalloon_plastic.png +0 -0
  803. melon_lua/data/sprites_pack/images/0379_PartyHat.png +0 -0
  804. melon_lua/data/sprites_pack/images/0379_PartyHat_plastic.png +0 -0
  805. melon_lua/data/sprites_pack/images/0380_PartyHorn.png +0 -0
  806. melon_lua/data/sprites_pack/images/0380_PartyHorn_plastic.png +0 -0
  807. melon_lua/data/sprites_pack/images/0381_HumanCake_plastic.png +0 -0
  808. melon_lua/data/sprites_pack/images/0382_ModularTurret.png +0 -0
  809. melon_lua/data/sprites_pack/images/0382_ModularTurret_plastic.png +0 -0
  810. melon_lua/data/sprites_pack/images/0383_HealingTurret.png +0 -0
  811. melon_lua/data/sprites_pack/images/0383_HealingTurret_plastic.png +0 -0
  812. melon_lua/data/sprites_pack/images/0384_RocketTurret.png +0 -0
  813. melon_lua/data/sprites_pack/images/0384_RocketTurret_plastic.png +0 -0
  814. melon_lua/data/sprites_pack/images/0385_KnifeTurret.png +0 -0
  815. melon_lua/data/sprites_pack/images/0385_KnifeTurret_plastic.png +0 -0
  816. melon_lua/data/sprites_pack/images/0386_KnifeProjectile_plastic.png +0 -0
  817. melon_lua/data/sprites_pack/images/0387_RocketTurretProjectile_plastic.png +0 -0
  818. melon_lua/data/sprites_pack/images/0388_Servo.png +0 -0
  819. melon_lua/data/sprites_pack/images/0388_Servo_plastic.png +0 -0
  820. melon_lua/data/sprites_pack/images/0389_BladeTrap.png +0 -0
  821. melon_lua/data/sprites_pack/images/0389_BladeTrap_plastic.png +0 -0
  822. melon_lua/data/sprites_pack/images/0390_SyringeFrozeProtection.png +0 -0
  823. melon_lua/data/sprites_pack/images/0390_SyringeFrozeProtection_plastic.png +0 -0
  824. melon_lua/data/sprites_pack/images/0391_RopeControllerDevice.png +0 -0
  825. melon_lua/data/sprites_pack/images/0391_RopeControllerDevice_plastic.png +0 -0
  826. melon_lua/data/sprites_pack/images/0392_FluidTank.png +0 -0
  827. melon_lua/data/sprites_pack/images/0392_FluidTank_plastic.png +0 -0
  828. melon_lua/data/sprites_pack/images/0393_OilCan.png +0 -0
  829. melon_lua/data/sprites_pack/images/0393_OilCan_plastic.png +0 -0
  830. melon_lua/data/sprites_pack/images/0394_JuiceBottle.png +0 -0
  831. melon_lua/data/sprites_pack/images/0394_JuiceBottle_plastic.png +0 -0
  832. melon_lua/data/sprites_pack/images/0395_TomatoBottle.png +0 -0
  833. melon_lua/data/sprites_pack/images/0395_TomatoBottle_plastic.png +0 -0
  834. melon_lua/data/sprites_pack/images/0396_PumpkinBottle.png +0 -0
  835. melon_lua/data/sprites_pack/images/0396_PumpkinBottle_atlas.png +0 -0
  836. melon_lua/data/sprites_pack/images/0397_MelonBottle.png +0 -0
  837. melon_lua/data/sprites_pack/images/0397_MelonBottle_plastic.png +0 -0
  838. melon_lua/data/sprites_pack/images/0398_DragonFruitBottle.png +0 -0
  839. melon_lua/data/sprites_pack/images/0398_DragonFruitBottle_plastic.png +0 -0
  840. melon_lua/data/sprites_pack/images/0399_CornBottle.png +0 -0
  841. melon_lua/data/sprites_pack/images/0399_CornBottle_plastic.png +0 -0
  842. melon_lua/data/sprites_pack/images/0400_CactusBottle.png +0 -0
  843. melon_lua/data/sprites_pack/images/0400_CactusBottle_plastic.png +0 -0
  844. melon_lua/data/sprites_pack/images/0401_AppleBottle.png +0 -0
  845. melon_lua/data/sprites_pack/images/0401_AppleBottle_plastic.png +0 -0
  846. melon_lua/data/sprites_pack/images/0402_WateringCan.png +0 -0
  847. melon_lua/data/sprites_pack/images/0402_WateringCan_atlas.png +0 -0
  848. melon_lua/data/sprites_pack/images/0403_GlassJar.png +0 -0
  849. melon_lua/data/sprites_pack/images/0403_GlassJar_plastic.png +0 -0
  850. melon_lua/data/sprites_pack/images/0404_LiquidCollector.png +0 -0
  851. melon_lua/data/sprites_pack/images/0404_LiquidCollector_plastic.png +0 -0
  852. melon_lua/data/sprites_pack/images/0405_LiquidValve.png +0 -0
  853. melon_lua/data/sprites_pack/images/0405_LiquidValve_plastic.png +0 -0
  854. melon_lua/data/sprites_pack/images/0406_Engine.png +0 -0
  855. melon_lua/data/sprites_pack/images/0406_Engine_plastic.png +0 -0
  856. melon_lua/data/sprites_pack/images/0407_Copywriter.png +0 -0
  857. melon_lua/data/sprites_pack/images/0407_Copywriter_plastic.png +0 -0
  858. melon_lua/data/sprites_pack/images/0408_NailGun.png +0 -0
  859. melon_lua/data/sprites_pack/images/0408_NailGun_plastic.png +0 -0
  860. melon_lua/data/sprites_pack/images/0409_Nail_plastic.png +0 -0
  861. melon_lua/data/sprites_pack/images/0410_Syringe_plastic.png +0 -0
  862. melon_lua/data/sprites_pack/images/0411_SyringeMachine.png +0 -0
  863. melon_lua/data/sprites_pack/images/0411_SyringeMachine_plastic.png +0 -0
  864. melon_lua/data/sprites_pack/images/0412_PumpkinLauncher.png +0 -0
  865. melon_lua/data/sprites_pack/images/0412_PumpkinLauncher_atlas.png +0 -0
  866. melon_lua/data/sprites_pack/images/0413_PumpkinProjectile_atlas.png +0 -0
  867. melon_lua/data/sprites_pack/images/0414_LiquidProbe.png +0 -0
  868. melon_lua/data/sprites_pack/images/0414_LiquidProbe_plastic.png +0 -0
  869. melon_lua/data/sprites_pack/images/0415_LiquidScanner.png +0 -0
  870. melon_lua/data/sprites_pack/images/0415_LiquidScanner_plastic.png +0 -0
  871. melon_lua/data/sprites_pack/images/0416_LeafBlower.png +0 -0
  872. melon_lua/data/sprites_pack/images/0416_LeafBlower_plastic.png +0 -0
  873. melon_lua/data/sprites_pack/images/0417_LiquidPump.png +0 -0
  874. melon_lua/data/sprites_pack/images/0417_LiquidPump_plastic.png +0 -0
  875. melon_lua/data/sprites_pack/images/0418_FlaskFrostProtection.png +0 -0
  876. melon_lua/data/sprites_pack/images/0418_FlaskFrostProtection_plastic.png +0 -0
  877. melon_lua/data/sprites_pack/images/0419_Radar.png +0 -0
  878. melon_lua/data/sprites_pack/images/0419_Radar_plastic.png +0 -0
  879. melon_lua/data/sprites_pack/images/0420_EntitiesMarker.png +0 -0
  880. melon_lua/data/sprites_pack/images/0420_EntitiesMarker_plastic.png +0 -0
  881. melon_lua/data/sprites_pack/images/0421_Saw_plastic.png +0 -0
  882. melon_lua/data/sprites_pack/images/0422_SawGun.png +0 -0
  883. melon_lua/data/sprites_pack/images/0422_SawGun_plastic.png +0 -0
  884. melon_lua/data/sprites_pack/images/0423_EnergySaber.png +0 -0
  885. melon_lua/data/sprites_pack/images/0423_EnergySaber_plastic.png +0 -0
  886. melon_lua/data/sprites_pack/images/0424_LEDMatrix.png +0 -0
  887. melon_lua/data/sprites_pack/images/0424_LEDMatrix_plastic.png +0 -0
  888. melon_lua/data/sprites_pack/images/0425_VPchipTutorial4_ArrayExample.png +0 -0
  889. melon_lua/data/sprites_pack/images/0425_VPchipTutorial4_ArrayExample_plastic.png +0 -0
  890. melon_lua/data/sprites_pack/images/0426_ImprovisedCharge.png +0 -0
  891. melon_lua/data/sprites_pack/images/0426_ImprovisedCharge_plastic.png +0 -0
  892. melon_lua/data/sprites_pack/images/0427_HomingLauncher.png +0 -0
  893. melon_lua/data/sprites_pack/images/0427_HomingLauncher_plastic.png +0 -0
  894. melon_lua/data/sprites_pack/images/0428_LetterGun.png +0 -0
  895. melon_lua/data/sprites_pack/images/0428_LetterGun_plastic.png +0 -0
  896. melon_lua/data/sprites_pack/images/0429_ParasiteCap.png +0 -0
  897. melon_lua/data/sprites_pack/images/0429_ParasiteCap_plastic.png +0 -0
  898. melon_lua/data/sprites_pack/images/0430_BouncyBombBox.png +0 -0
  899. melon_lua/data/sprites_pack/images/0430_BouncyBombBox_plastic.png +0 -0
  900. melon_lua/data/sprites_pack/images/0431_HoneyGrenade.png +0 -0
  901. melon_lua/data/sprites_pack/images/0431_HoneyGrenade_plastic.png +0 -0
  902. melon_lua/data/sprites_pack/images/0432_MutationGrenade.png +0 -0
  903. melon_lua/data/sprites_pack/images/0432_MutationGrenade_plastic.png +0 -0
  904. melon_lua/data/sprites_pack/images/0433_NastyBomb.png +0 -0
  905. melon_lua/data/sprites_pack/images/0433_NastyBomb_plastic.png +0 -0
  906. melon_lua/data/sprites_pack/images/0434_SpikeGrenade.png +0 -0
  907. melon_lua/data/sprites_pack/images/0434_SpikeGrenade_plastic.png +0 -0
  908. melon_lua/data/sprites_pack/images/0435_BouncyBomb_plastic.png +0 -0
  909. melon_lua/data/sprites_pack/images/0436_TeslaCoil.png +0 -0
  910. melon_lua/data/sprites_pack/images/0436_TeslaCoil_plastic.png +0 -0
  911. melon_lua/data/sprites_pack/images/0437_NewYearPresent.png +0 -0
  912. melon_lua/data/sprites_pack/images/0438_RectEndlessOceanRoom.png +0 -0
  913. melon_lua/data/sprites_pack/images/0438_RectEndlessOceanRoom_plastic.png +0 -0
  914. melon_lua/data/sprites_pack/images/0439_DepthAndPressureSensor.png +0 -0
  915. melon_lua/data/sprites_pack/images/0439_DepthAndPressureSensor_plastic.png +0 -0
  916. melon_lua/data/sprites_pack/images/0440_Speedboat.png +0 -0
  917. melon_lua/data/sprites_pack/images/0440_Speedboat_plastic.png +0 -0
  918. melon_lua/data/sprites_pack/images/0441_Submarine.png +0 -0
  919. melon_lua/data/sprites_pack/images/0441_Submarine_plastic.png +0 -0
  920. melon_lua/data/sprites_pack/images/0442_BoatVehicle.png +0 -0
  921. melon_lua/data/sprites_pack/images/0443_Wetsuit.png +0 -0
  922. melon_lua/data/sprites_pack/images/0443_Wetsuit_plastic.png +0 -0
  923. melon_lua/data/sprites_pack/images/0444_Diving armor.png +0 -0
  924. melon_lua/data/sprites_pack/images/0444_Diving armor_plastic.png +0 -0
  925. melon_lua/data/sprites_pack/images/0445_Diving suit.png +0 -0
  926. melon_lua/data/sprites_pack/images/0445_Diving suit_plastic.png +0 -0
  927. melon_lua/data/sprites_pack/images/0446_Ballast.png +0 -0
  928. melon_lua/data/sprites_pack/images/0446_Ballast_plastic.png +0 -0
  929. melon_lua/data/sprites_pack/images/0447_HermeticDoor.png +0 -0
  930. melon_lua/data/sprites_pack/images/0447_HermeticDoor_plastic.png +0 -0
  931. melon_lua/data/sprites_pack/images/0448_HumanCoral.png +0 -0
  932. melon_lua/data/sprites_pack/images/0448_HumanCoral_plastic.png +0 -0
  933. melon_lua/data/sprites_pack/images/0449_Passageway.png +0 -0
  934. melon_lua/data/sprites_pack/images/0449_Passageway_plastic.png +0 -0
  935. melon_lua/data/sprites_pack/images/0450_GlassDome.png +0 -0
  936. melon_lua/data/sprites_pack/images/0450_GlassDome_plastic.png +0 -0
  937. melon_lua/data/sprites_pack/images/0451_HermeticDoorBlue.png +0 -0
  938. melon_lua/data/sprites_pack/images/0451_HermeticDoorBlue_plastic.png +0 -0
  939. melon_lua/data/sprites_pack/images/0452_PassagewayBlue.png +0 -0
  940. melon_lua/data/sprites_pack/images/0452_PassagewayBlue_plastic.png +0 -0
  941. melon_lua/data/sprites_pack/images/0453_RectEndlessOceanRoomBlue.png +0 -0
  942. melon_lua/data/sprites_pack/images/0453_RectEndlessOceanRoomBlue_plastic.png +0 -0
  943. melon_lua/data/sprites_pack/images/0454_RectEndlessOceanDockingHatch.png +0 -0
  944. melon_lua/data/sprites_pack/images/0454_RectEndlessOceanDockingHatch_plastic.png +0 -0
  945. melon_lua/data/sprites_pack/images/0455_GlassDomeBlue.png +0 -0
  946. melon_lua/data/sprites_pack/images/0455_GlassDomeBlue_plastic.png +0 -0
  947. melon_lua/data/sprites_pack/images.zip +0 -0
  948. melon_lua/data/sprites_pack/sprites_by_object_id.json +2747 -0
  949. melon_lua/data/ui_controller_template.json +1 -0
  950. melon_lua/data/ui_element_prototypes.json +3590 -0
  951. melon_lua/entity.py +88 -0
  952. melon_lua/melmod.py +164 -0
  953. melon_lua/melsave.py +275 -0
  954. melon_lua/melsave_builder.py +744 -0
  955. melon_lua/melsave_writer.py +738 -0
  956. melon_lua/preamble.lua +388 -0
  957. melon_lua/preview.py +335 -0
  958. melon_lua/runner.py +409 -0
  959. melon_lua/session.py +396 -0
  960. melon_lua/spawn_queue.py +190 -0
  961. melon_lua/stdlib_bit32_shim.lua +105 -0
  962. melon_lua/stdlib_melon.py +113 -0
  963. melon_lua/uicontrol_builder.py +802 -0
  964. melon_lua/visuals.py +115 -0
  965. melon_lua/vpcompile/__init__.py +5 -0
  966. melon_lua/vpcompile/codegen.py +163 -0
  967. melon_lua/vpcompile/compile.py +20 -0
  968. melon_lua/vpcompile/graph.py +112 -0
  969. melon_lua/vpcompile/ir.py +33 -0
  970. melon_lua/vpcompile/nodes/__init__.py +22 -0
  971. melon_lua/vpcompile/nodes/_base.py +8 -0
  972. melon_lua/vpcompile/nodes/entity_read.py +164 -0
  973. melon_lua/vpcompile/nodes/entity_write.py +170 -0
  974. melon_lua/vpcompile/nodes/flow.py +323 -0
  975. melon_lua/vpcompile/nodes/logic.py +131 -0
  976. melon_lua/vpcompile/nodes/math_basic.py +235 -0
  977. melon_lua/vpcompile/nodes/math_trig.py +71 -0
  978. melon_lua/vpcompile/nodes/vector.py +101 -0
  979. melon_lua/vpcompile/ops.py +195 -0
  980. melon_lua/vpcompile/save_data.py +20 -0
  981. melon_lua/world.py +536 -0
  982. melon_lua-3.4.0.dist-info/METADATA +230 -0
  983. melon_lua-3.4.0.dist-info/RECORD +986 -0
  984. melon_lua-3.4.0.dist-info/WHEEL +5 -0
  985. melon_lua-3.4.0.dist-info/entry_points.txt +2 -0
  986. melon_lua-3.4.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,235 @@
1
+ """Shard A: basic scalar math NodeOperationType emitters."""
2
+ from __future__ import annotations
3
+
4
+ from ..ir import VPNode
5
+ from ._base import NodeEmitter
6
+
7
+
8
+ def _assign(uid: str, expr: str) -> list[str]:
9
+ return [f' G["{uid}"] = {expr}']
10
+
11
+
12
+ def _g(i: int, ins: list[str], default: str = "0") -> str:
13
+ return ins[i] if i < len(ins) else default
14
+
15
+
16
+ def _is_vector(n: VPNode) -> bool:
17
+ """Check if node operates on vector data."""
18
+ gdt = n.raw.get("GateDataType")
19
+ if isinstance(gdt, str) and gdt.strip() == "Vector":
20
+ return True
21
+ for inp in n.inputs:
22
+ dt = inp.get("DataType")
23
+ if isinstance(dt, str) and dt.strip() == "Vector":
24
+ return True
25
+ return False
26
+
27
+
28
+ def _vector_binop(uid: str, a: str, b: str, op: str) -> list[str]:
29
+ """Emit vector binary operation (a op b) component-wise."""
30
+ op_map = {"+": " + ", "-": " - ", "*": " * ", "/": " / "}
31
+ op_str = op_map.get(op, op)
32
+ return [
33
+ f" local _va, _vb = {a}, {b}",
34
+ f" local _vax = type(_va) == 'table' and (_va.x or _va[1] or 0) or _va",
35
+ f" local _vay = type(_va) == 'table' and (_va.y or _va[2] or 0) or 0",
36
+ f" local _vaz = type(_va) == 'table' and (_va.z or _va[3] or 0) or 0",
37
+ f" local _vaw = type(_va) == 'table' and (_va.w or _va[4] or 0) or 0",
38
+ f" local _vbx = type(_vb) == 'table' and (_vb.x or _vb[1] or 0) or _vb",
39
+ f" local _vby = type(_vb) == 'table' and (_vb.y or _vb[2] or 0) or 0",
40
+ f" local _vbz = type(_vb) == 'table' and (_vb.z or _vb[3] or 0) or 0",
41
+ f" local _vbw = type(_vb) == 'table' and (_vb.w or _vb[4] or 0) or 0",
42
+ f' G["{uid}"] = {{x = _vax {op_str} _vbx, y = _vay {op_str} _vby, z = _vaz {op_str} _vbz, w = _vaw {op_str} _vbw}}',
43
+ ]
44
+
45
+
46
+ def emit_add(uid: str, ins: list[str], n: VPNode) -> list[str]:
47
+ if _is_vector(n):
48
+ a, b = _g(0, ins, "{x=0,y=0,z=0,w=0}"), _g(1, ins, "{x=0,y=0,z=0,w=0}")
49
+ return _vector_binop(uid, a, b, "+")
50
+ if len(ins) >= 2:
51
+ return _assign(uid, f"({ins[0]}) + ({ins[1]})")
52
+ if len(ins) == 1:
53
+ return _assign(uid, f"({ins[0]}) + 0")
54
+ return _assign(uid, "0")
55
+
56
+
57
+ def emit_subtract(uid: str, ins: list[str], n: VPNode) -> list[str]:
58
+ if _is_vector(n):
59
+ a, b = _g(0, ins, "{x=0,y=0,z=0,w=0}"), _g(1, ins, "{x=0,y=0,z=0,w=0}")
60
+ return _vector_binop(uid, a, b, "-")
61
+ if len(ins) >= 2:
62
+ return _assign(uid, f"({ins[0]}) - ({ins[1]})")
63
+ return _assign(uid, "0")
64
+
65
+
66
+ def emit_multiply(uid: str, ins: list[str], n: VPNode) -> list[str]:
67
+ if _is_vector(n):
68
+ a, b = _g(0, ins, "{x=0,y=0,z=0,w=0}"), _g(1, ins, "{x=0,y=0,z=0,w=0}")
69
+ return _vector_binop(uid, a, b, "*")
70
+ if len(ins) >= 2:
71
+ return _assign(uid, f"({ins[0]}) * ({ins[1]})")
72
+ return _assign(uid, "0")
73
+
74
+
75
+ def emit_divide(uid: str, ins: list[str], n: VPNode) -> list[str]:
76
+ if _is_vector(n):
77
+ a, b = _g(0, ins, "{x=0,y=0,z=0,w=0}"), _g(1, ins, "{x=0,y=0,z=0,w=0}")
78
+ return [
79
+ f" local _va, _vb = {a}, {b}",
80
+ f" local _vax = type(_va) == 'table' and (_va.x or _va[1] or 0) or _va",
81
+ f" local _vay = type(_va) == 'table' and (_va.y or _va[2] or 0) or 0",
82
+ f" local _vaz = type(_va) == 'table' and (_va.z or _va[3] or 0) or 0",
83
+ f" local _vaw = type(_va) == 'table' and (_va.w or _va[4] or 0) or 0",
84
+ f" local _vbx = type(_vb) == 'table' and (_vb.x or _vb[1] or 0) or _vb",
85
+ f" local _vby = type(_vb) == 'table' and (_vb.y or _vb[2] or 0) or 0",
86
+ f" local _vbz = type(_vb) == 'table' and (_vb.z or _vb[3] or 0) or 0",
87
+ f" local _vbw = type(_vb) == 'table' and (_vb.w or _vb[4] or 0) or 0",
88
+ f' G["{uid}"] = {{x = _vbx ~= 0 and _vax / _vbx or 0, y = _vby ~= 0 and _vay / _vby or 0, z = _vbz ~= 0 and _vaz / _vbz or 0, w = _vbw ~= 0 and _vaw / _vbw or 0}}',
89
+ ]
90
+ if len(ins) >= 2:
91
+ return _assign(uid, f"(({ins[1]}) ~= 0 and ({ins[0]}) / ({ins[1]}) or 0)")
92
+ return _assign(uid, "0")
93
+
94
+
95
+ def emit_negate(uid: str, ins: list[str], n: VPNode) -> list[str]:
96
+ if _is_vector(n):
97
+ v = _g(0, ins, "{x=0,y=0,z=0,w=0}")
98
+ return [
99
+ f" local _nv = {v}",
100
+ f" local _nvx = type(_nv) == 'table' and (_nv.x or _nv[1] or 0) or _nv",
101
+ f" local _nvy = type(_nv) == 'table' and (_nv.y or _nv[2] or 0) or 0",
102
+ f" local _nvz = type(_nv) == 'table' and (_nv.z or _nv[3] or 0) or 0",
103
+ f" local _nvw = type(_nv) == 'table' and (_nv.w or _nv[4] or 0) or 0",
104
+ f' G["{uid}"] = {{x = -_nvx, y = -_nvy, z = -_nvz, w = -_nvw}}',
105
+ ]
106
+ return _assign(uid, f"-({_g(0, ins)})")
107
+
108
+
109
+ def emit_abs(uid: str, ins: list[str], _n: VPNode) -> list[str]:
110
+ return _assign(uid, f"math.abs({_g(0, ins)})")
111
+
112
+
113
+ def emit_min(uid: str, ins: list[str], _n: VPNode) -> list[str]:
114
+ if len(ins) >= 2:
115
+ return _assign(uid, f"math.min(({ins[0]}), ({ins[1]}))")
116
+ return _assign(uid, _g(0, ins))
117
+
118
+
119
+ def emit_max(uid: str, ins: list[str], _n: VPNode) -> list[str]:
120
+ if len(ins) >= 2:
121
+ return _assign(uid, f"math.max(({ins[0]}), ({ins[1]}))")
122
+ return _assign(uid, _g(0, ins))
123
+
124
+
125
+ def emit_clamp(uid: str, ins: list[str], _n: VPNode) -> list[str]:
126
+ v, lo, hi = _g(0, ins), _g(1, ins), _g(2, ins)
127
+ return _assign(uid, f"math.max(({lo}), math.min(({hi}), ({v})))")
128
+
129
+
130
+ def emit_clamp01(uid: str, ins: list[str], _n: VPNode) -> list[str]:
131
+ v = _g(0, ins)
132
+ return _assign(uid, f"math.max(0, math.min(1, ({v})))")
133
+
134
+
135
+ def emit_sqr(uid: str, ins: list[str], _n: VPNode) -> list[str]:
136
+ x = _g(0, ins)
137
+ return _assign(uid, f"({x}) * ({x})")
138
+
139
+
140
+ def emit_sqrt(uid: str, ins: list[str], _n: VPNode) -> list[str]:
141
+ return _assign(uid, f"math.sqrt(math.max(0, ({_g(0, ins)})))")
142
+
143
+
144
+ def emit_pow(uid: str, ins: list[str], _n: VPNode) -> list[str]:
145
+ if len(ins) >= 2:
146
+ return _assign(uid, f"math.pow(({ins[0]}), ({ins[1]}))")
147
+ return _assign(uid, "1")
148
+
149
+
150
+ def emit_mod(uid: str, ins: list[str], _n: VPNode) -> list[str]:
151
+ if len(ins) >= 2:
152
+ return _assign(uid, f"math.fmod(({ins[0]}), ({ins[1]}))")
153
+ return _assign(uid, "0")
154
+
155
+
156
+ def emit_lerp(uid: str, ins: list[str], _n: VPNode) -> list[str]:
157
+ a, b, t = _g(0, ins), _g(1, ins), _g(2, ins)
158
+ return _assign(uid, f"({a}) + (({b}) - ({a})) * ({t})")
159
+
160
+
161
+ def emit_floor(uid: str, ins: list[str], _n: VPNode) -> list[str]:
162
+ return _assign(uid, f"math.floor({_g(0, ins)})")
163
+
164
+
165
+ def emit_ceil(uid: str, ins: list[str], _n: VPNode) -> list[str]:
166
+ return _assign(uid, f"math.ceil({_g(0, ins)})")
167
+
168
+
169
+ def emit_round(uid: str, ins: list[str], _n: VPNode) -> list[str]:
170
+ return _assign(uid, f"math.floor(({_g(0, ins)}) + 0.5)")
171
+
172
+
173
+ def emit_sign(uid: str, ins: list[str], _n: VPNode) -> list[str]:
174
+ x = _g(0, ins)
175
+ return _assign(
176
+ uid,
177
+ f"(({x}) > 0 and 1 or (({x}) < 0 and -1 or 0))",
178
+ )
179
+
180
+
181
+ def emit_inverse(uid: str, ins: list[str], _n: VPNode) -> list[str]:
182
+ x = _g(0, ins)
183
+ return _assign(uid, f"(({x}) ~= 0 and 1 / ({x}) or 0)")
184
+
185
+
186
+ def emit_percent(uid: str, ins: list[str], _n: VPNode) -> list[str]:
187
+ if len(ins) >= 2:
188
+ return _assign(
189
+ uid,
190
+ f"(({ins[1]}) ~= 0 and (({ins[0]}) / ({ins[1]})) * 100 or 0)",
191
+ )
192
+ return _assign(uid, "0")
193
+
194
+
195
+ def emit_average(uid: str, ins: list[str], _n: VPNode) -> list[str]:
196
+ if len(ins) >= 2:
197
+ return _assign(uid, f"(({ins[0]}) + ({ins[1]})) / 2")
198
+ return _assign(uid, _g(0, ins))
199
+
200
+
201
+ def emit_exp(uid: str, ins: list[str], _n: VPNode) -> list[str]:
202
+ return _assign(uid, f"math.exp({_g(0, ins)})")
203
+
204
+
205
+ def emit_log(uid: str, ins: list[str], _n: VPNode) -> list[str]:
206
+ x = _g(0, ins)
207
+ return _assign(uid, f"(({x}) > 0 and math.log({x}) or 0)")
208
+
209
+
210
+ MATH_BASIC_EMITTERS: dict[str, NodeEmitter] = {
211
+ "Add": emit_add,
212
+ "Subtract": emit_subtract,
213
+ "Multiply": emit_multiply,
214
+ "Divide": emit_divide,
215
+ "Negate": emit_negate,
216
+ "Abs": emit_abs,
217
+ "Min": emit_min,
218
+ "Max": emit_max,
219
+ "Clamp": emit_clamp,
220
+ "Clamp01": emit_clamp01,
221
+ "Sqr": emit_sqr,
222
+ "Sqrt": emit_sqrt,
223
+ "Pow": emit_pow,
224
+ "Mod": emit_mod,
225
+ "Lerp": emit_lerp,
226
+ "Floor": emit_floor,
227
+ "Ceil": emit_ceil,
228
+ "Round": emit_round,
229
+ "Sign": emit_sign,
230
+ "Inverse": emit_inverse,
231
+ "Percent": emit_percent,
232
+ "Average": emit_average,
233
+ "Exp": emit_exp,
234
+ "Log": emit_log,
235
+ }
@@ -0,0 +1,71 @@
1
+ """Shard B: trig / angle math."""
2
+ from __future__ import annotations
3
+
4
+ from ..ir import VPNode
5
+ from ._base import NodeEmitter
6
+
7
+
8
+ def _g(i: int, ins: list[str]) -> str:
9
+ return ins[i] if i < len(ins) else "0"
10
+
11
+
12
+ def _assign(uid: str, expr: str) -> list[str]:
13
+ return [f' G["{uid}"] = {expr}']
14
+
15
+
16
+ def emit_acos(uid: str, ins: list[str], _n: VPNode) -> list[str]:
17
+ # Acos returns radians (standard math.acos behavior). RadToDeg node converts
18
+ # to degrees. Do NOT pre-convert here — that causes double conversion when
19
+ # followed by RadToDeg in the chip graph.
20
+ return _assign(uid, f"math.acos({_g(0, ins)})")
21
+
22
+
23
+ def emit_rad_to_deg(uid: str, ins: list[str], _n: VPNode) -> list[str]:
24
+ return _assign(uid, f"({ _g(0, ins) }) * (180 / math.pi)")
25
+
26
+
27
+ def emit_deg_to_rad(uid: str, ins: list[str], _n: VPNode) -> list[str]:
28
+ return _assign(uid, f"({ _g(0, ins) }) * (math.pi / 180)")
29
+
30
+
31
+ def emit_delta_angle(uid: str, ins: list[str], _n: VPNode) -> list[str]:
32
+ if len(ins) >= 2:
33
+ return _assign(
34
+ uid,
35
+ f"(({ins[1]}) - ({ins[0]})) * (180 / math.pi)",
36
+ )
37
+ return _assign(uid, "0")
38
+
39
+
40
+ def emit_cosine_formula_angle(uid: str, ins: list[str], _n: VPNode) -> list[str]:
41
+ # VP: side a,b,c -> angle at A via law of cosines; inputs: a,b,c scalars
42
+ if len(ins) >= 3:
43
+ a, b, c = ins[0], ins[1], ins[2]
44
+ return _assign(
45
+ uid,
46
+ f"(function() local aa,bb,cc=({a}),({b}),({c}); "
47
+ f"local x=(aa*aa+bb*bb-cc*cc)/(2*aa*bb); "
48
+ f"if x>1 then x=1 elseif x<-1 then x=-1 end; "
49
+ f"return math.acos(x)*(180/math.pi) end)()",
50
+ )
51
+ return _assign(uid, "0")
52
+
53
+
54
+ def emit_cosine_formula_side(uid: str, ins: list[str], _n: VPNode) -> list[str]:
55
+ if len(ins) >= 3:
56
+ a, ang, b = ins[0], ins[1], ins[2]
57
+ return _assign(
58
+ uid,
59
+ f"math.sqrt(({a})^2+({b})^2-2*({a})*({b})*math.cos(({ang})*math.pi/180))",
60
+ )
61
+ return _assign(uid, "0")
62
+
63
+
64
+ MATH_TRIG_EMITTERS: dict[str, NodeEmitter] = {
65
+ "Acos": emit_acos,
66
+ "RadToDeg": emit_rad_to_deg,
67
+ "DegToRad": emit_deg_to_rad,
68
+ "DeltaAngle": emit_delta_angle,
69
+ "CosineFormulaAngle": emit_cosine_formula_angle,
70
+ "CosineFormulaSide": emit_cosine_formula_side,
71
+ }
@@ -0,0 +1,101 @@
1
+ """Shard F: vector scalars (Magnitude etc.) + Split/Combine/Normalize."""
2
+ from __future__ import annotations
3
+
4
+ import math
5
+
6
+ from ..ir import VPNode
7
+ from ._base import NodeEmitter
8
+
9
+
10
+ def _assign(uid: str, expr: str) -> list[str]:
11
+ return [f' G["{uid}"] = {expr}']
12
+
13
+
14
+ def _g(i: int, ins: list[str], default: str = "0") -> str:
15
+ return ins[i] if i < len(ins) else default
16
+
17
+
18
+ def emit_magnitude(uid: str, ins: list[str], _n: VPNode) -> list[str]:
19
+ """Magnitude: Vector -> Number (sqrt(x^2+y^2+z^2+w^2), usually 2D)."""
20
+ v = _g(0, ins)
21
+ # Assume vector is {x, y, z, w} table; magnitude uses x,y for 2D
22
+ return [
23
+ f" local _vmag = {v}",
24
+ f" local _vx = type(_vmag) == 'table' and (_vmag.x or _vmag[1] or 0) or _vmag",
25
+ f" local _vy = type(_vmag) == 'table' and (_vmag.y or _vmag[2] or 0) or 0",
26
+ f' G["{uid}"] = math.sqrt(_vx * _vx + _vy * _vy)',
27
+ ]
28
+
29
+
30
+ def emit_sqr_magnitude(uid: str, ins: list[str], _n: VPNode) -> list[str]:
31
+ v = _g(0, ins)
32
+ return [
33
+ f" local _vsm = {v}",
34
+ f" local _vx = type(_vsm) == 'table' and (_vsm.x or _vsm[1] or 0) or _vsm",
35
+ f" local _vy = type(_vsm) == 'table' and (_vsm.y or _vsm[2] or 0) or 0",
36
+ f' G["{uid}"] = _vx * _vx + _vy * _vy',
37
+ ]
38
+
39
+
40
+ def emit_split(uid: str, ins: list[str], n: VPNode) -> list[str]:
41
+ """Split: Vector -> 4 Numbers (x, y, z, w)."""
42
+ v = _g(0, ins, "{x=0,y=0,z=0,w=0}")
43
+ outs = n.outputs or []
44
+ lines = [
45
+ f" local _spl = {v}",
46
+ f" local _splx = type(_spl) == 'table' and (_spl.x or _spl[1] or 0) or _spl",
47
+ f" local _spy = type(_spl) == 'table' and (_spl.y or _spl[2] or 0) or 0",
48
+ f" local _splz = type(_spl) == 'table' and (_spl.z or _spl[3] or 0) or 0",
49
+ f" local _splw = type(_spl) == 'table' and (_spl.w or _spl[4] or 0) or 0",
50
+ ]
51
+ # Emit outputs based on how many outputs the node has
52
+ for i in range(min(4, max(1, len(outs)))):
53
+ comp = ("_splx", "_spy", "_splz", "_splw")[i]
54
+ lines.append(f' G["{uid}_o{i}"] = {comp}')
55
+ # Primary output is x (first component)
56
+ lines.append(f' G["{uid}"] = _splx')
57
+ return lines
58
+
59
+
60
+ def emit_combine(uid: str, ins: list[str], n: VPNode) -> list[str]:
61
+ """Combine: 4 Numbers (x,y,z,w) -> Vector."""
62
+ x = _g(0, ins, "0")
63
+ y = _g(1, ins, "0")
64
+ z = _g(2, ins, "0")
65
+ w = _g(3, ins, "0")
66
+ # Use local variables to avoid field access on literals (0.x is syntax error)
67
+ return [
68
+ f" local _cxv = {x}",
69
+ f" local _cyv = {y}",
70
+ f" local _czv = {z}",
71
+ f" local _cwv = {w}",
72
+ f" local _cx = type(_cxv) == 'table' and (_cxv.x or _cxv[1] or 0) or _cxv",
73
+ f" local _cy = type(_cyv) == 'table' and (_cyv.y or _cyv[2] or 0) or _cyv",
74
+ f" local _cz = type(_czv) == 'table' and (_czv.z or _czv[3] or 0) or _czv",
75
+ f" local _cw = type(_cwv) == 'table' and (_cwv.w or _cwv[4] or 0) or _cwv",
76
+ f' G["{uid}"] = {{x = _cx, y = _cy, z = _cz, w = _cw}}',
77
+ ]
78
+
79
+
80
+ def emit_normalize(uid: str, ins: list[str], n: VPNode) -> list[str]:
81
+ """Normalize: Vector -> Vector (unit vector)."""
82
+ v = _g(0, ins, "{x=0,y=0,z=0,w=0}")
83
+ return [
84
+ f" local _norm = {v}",
85
+ f" local _nx = type(_norm) == 'table' and (_norm.x or _norm[1] or 0) or _norm",
86
+ f" local _ny = type(_norm) == 'table' and (_norm.y or _norm[2] or 0) or 0",
87
+ f" local _nz = type(_norm) == 'table' and (_norm.z or _norm[3] or 0) or 0",
88
+ f" local _nw = type(_norm) == 'table' and (_norm.w or _norm[4] or 0) or 0",
89
+ f" local _len = math.sqrt(_nx * _nx + _ny * _ny)",
90
+ f" local _flen = math.max(1e-6, _len)",
91
+ f' G["{uid}"] = {{x = _nx / _flen, y = _ny / _flen, z = _nz / _flen, w = _nw / _flen}}',
92
+ ]
93
+
94
+
95
+ VECTOR_EMITTERS: dict[str, NodeEmitter] = {
96
+ "Magnitude": emit_magnitude,
97
+ "SqrMagnitude": emit_sqr_magnitude,
98
+ "Split": emit_split,
99
+ "Combine": emit_combine,
100
+ "Normalize": emit_normalize,
101
+ }
@@ -0,0 +1,195 @@
1
+ """NodeOperationType — full enum from IL2CPP NodeOperationType.cs (Melon 36.x)."""
2
+ from __future__ import annotations
3
+
4
+ # Auto-aligned with Ui.Windows.Chip.NodeOperationType (VP36)
5
+ OP_NAME: dict[int, str] = {
6
+ 0: "Base",
7
+ 1: "Identity",
8
+ 5: "Sticker",
9
+ 256: "Root",
10
+ 257: "Constant",
11
+ 258: "Pi",
12
+ 259: "E",
13
+ 260: "Time",
14
+ 261: "Random",
15
+ 512: "Exit",
16
+ 768: "Variable",
17
+ 1280: "Split",
18
+ 1281: "Combine",
19
+ 1282: "Normalize",
20
+ 1283: "Magnitude",
21
+ 1284: "SqrMagnitude",
22
+ 1286: "VectorCross",
23
+ 1288: "VectorDot",
24
+ 1290: "VectorPositive",
25
+ 1292: "VectorRotate",
26
+ 1294: "VectorShiftLeft",
27
+ 1295: "VectorShiftRight",
28
+ 1296: "VectorAngleBetween",
29
+ 1297: "RgbToHsv",
30
+ 1298: "HsvToRgb",
31
+ 1537: "EntityNormal",
32
+ 1538: "Velocity",
33
+ 1539: "AngularVelocity",
34
+ 1540: "EntityAngle",
35
+ 1541: "Temperature",
36
+ 1542: "AddForce",
37
+ 1543: "Color",
38
+ 1544: "LookAt",
39
+ 1545: "AddAngularForce",
40
+ 1546: "AddForceAtPosition",
41
+ 1549: "EntityID",
42
+ 1550: "IDToEntity",
43
+ 1552: "IDIsValid",
44
+ 1553: "WorldPositionToLocal",
45
+ 1554: "WorldAngleToLocal",
46
+ 1555: "LocalPositionToWorld",
47
+ 1556: "LocalAngleToWorld",
48
+ 1557: "Mass",
49
+ 1558: "MassCenter",
50
+ 1559: "Position",
51
+ 1560: "VelocityAtPosition",
52
+ 1561: "CanBeActivated",
53
+ 1562: "Activate",
54
+ 1563: "Gravity",
55
+ 1566: "Freeze",
56
+ 1567: "Size",
57
+ 1569: "Ignite",
58
+ 1570: "Extinguish",
59
+ 1571: "Follow",
60
+ 1574: "Collision",
61
+ 1577: "Delete",
62
+ 1578: "Elevation",
63
+ 1579: "Voltage",
64
+ 1580: "PhysicMaterial",
65
+ 1581: "EntityName",
66
+ 1582: "UnlocalizedEntityName",
67
+ 1583: "Draggable",
68
+ 1584: "RadioSignal",
69
+ 2049: "Sin",
70
+ 2050: "Cos",
71
+ 2051: "Asin",
72
+ 2052: "Acos",
73
+ 2053: "Tan",
74
+ 2054: "Atan",
75
+ 2055: "Ctan",
76
+ 2056: "Actan",
77
+ 2057: "DegToRad",
78
+ 2058: "RadToDeg",
79
+ 2059: "DeltaAngle",
80
+ 2060: "CosineFormulaSide",
81
+ 2061: "CosineFormulaAngle",
82
+ 2062: "PythagoreanCathetus",
83
+ 2063: "PythagoreanSide",
84
+ 2064: "Atan2",
85
+ 2304: "Add",
86
+ 2305: "Subtract",
87
+ 2306: "Multiply",
88
+ 2307: "Divide",
89
+ 2308: "Exp",
90
+ 2309: "Average",
91
+ 2310: "Ceil",
92
+ 2311: "Clamp",
93
+ 2312: "Clamp01",
94
+ 2314: "ExpPow",
95
+ 2315: "Negate",
96
+ 2316: "Percent",
97
+ 2318: "Sign",
98
+ 2319: "Floor",
99
+ 2320: "Inverse",
100
+ 2321: "Sqr",
101
+ 2322: "Sqrt",
102
+ 2323: "Log",
103
+ 2324: "Abs",
104
+ 2325: "Pow",
105
+ 2326: "Round",
106
+ 2327: "Mod",
107
+ 2328: "Lerp",
108
+ 2329: "Min",
109
+ 2330: "Max",
110
+ 2560: "And",
111
+ 2561: "Or",
112
+ 2562: "Nand",
113
+ 2563: "Nor",
114
+ 2564: "Not",
115
+ 2565: "Xor",
116
+ 2566: "Nxor",
117
+ 2567: "Branch",
118
+ 2568: "Select",
119
+ 2816: "Equal",
120
+ 2817: "NotEqual",
121
+ 2818: "GreaterOrEqual",
122
+ 2819: "LessOrEqual",
123
+ 2820: "Greater",
124
+ 2821: "Less",
125
+ 2822: "InRangeInclusive",
126
+ 2823: "InRangeExclusive",
127
+ 3073: "BitAnd",
128
+ 3074: "BitNot",
129
+ 3075: "BitOr",
130
+ 3076: "BitXor",
131
+ 3077: "BitShiftLeft",
132
+ 3078: "BitShiftRight",
133
+ 3585: "StringSplit",
134
+ 3586: "StringFind",
135
+ 3587: "StringLength",
136
+ 3588: "StringLowercase",
137
+ 3589: "StringUppercase",
138
+ 3590: "StringReverse",
139
+ 3591: "StringRepeat",
140
+ 3592: "StringReplace",
141
+ 3593: "Substring",
142
+ 3594: "StringTrim",
143
+ 3595: "ToString",
144
+ 3596: "ToAscii",
145
+ 3597: "FromAscii",
146
+ 3598: "ToNumber",
147
+ 3599: "ToTime",
148
+ 3600: "ToDate",
149
+ 3801: "ArraysGet",
150
+ 3802: "ArraysSet",
151
+ 3803: "ArraysAdd",
152
+ 3804: "ArraysLength",
153
+ 3805: "ArraysRemoveAllByValue",
154
+ 3806: "ArraysRemoveByIndex",
155
+ 3807: "ArraysFind",
156
+ 3808: "ArraysClear",
157
+ 4097: "DeltaPreviousCurrent",
158
+ 4098: "Counter",
159
+ 4099: "Delay",
160
+ 4100: "Accumulate",
161
+ 4101: "PreviousFrame",
162
+ 4102: "Trigger",
163
+ 5001: "WorldSessionState",
164
+ 5002: "LoadWorldSessionState",
165
+ 5003: "SystemTime",
166
+ 5004: "GameTimer",
167
+ 5005: "ShowWorldInformationWindow",
168
+ 5006: "ShowWinWindow",
169
+ 5007: "ShowLoseWindow",
170
+ 5008: "Timer",
171
+ 5009: "SaveWorldSessionState",
172
+ 5010: "ResetWorldSessionState",
173
+ 5011: "ClearGibs",
174
+ 5012: "ClearDecals",
175
+ 5013: "ClearLivings",
176
+ 5014: "ClearCorpses",
177
+ 5015: "WorldInAppOpenShop",
178
+ 5016: "WorldInAppVisibility",
179
+ 5017: "GlobalVariable",
180
+ 5018: "Currency",
181
+ 5100: "LuaScript",
182
+ 5632: "CameraPosition",
183
+ 5633: "CameraZoom",
184
+ }
185
+
186
+ NAME_TO_OP: dict[str, int] = {v: k for k, v in OP_NAME.items()}
187
+
188
+ # Implemented node names: melon_lua/vpcompile/nodes/ REGISTRY (see codegen.py)
189
+
190
+
191
+ def op_name(operation_type: int, node_id: str) -> str:
192
+ if operation_type in OP_NAME:
193
+ return OP_NAME[operation_type]
194
+ head = (node_id or "").split(":")[0].strip()
195
+ return head or f"Op{operation_type}"
@@ -0,0 +1,20 @@
1
+ """Parse VP node SaveData JSON."""
2
+ from __future__ import annotations
3
+
4
+ import json
5
+
6
+ from .ir import VPNode
7
+
8
+
9
+ def constant_value(node: VPNode) -> float:
10
+ sd = node.save_data
11
+ if not sd:
12
+ return 0.0
13
+ try:
14
+ obj = json.loads(sd)
15
+ dv = obj.get("DataValue")
16
+ if dv is None:
17
+ return 0.0
18
+ return float(dv)
19
+ except (json.JSONDecodeError, TypeError, ValueError):
20
+ return 0.0