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,459 @@
1
+ """__entity_raw — the C# side of the Entity API.
2
+
3
+ The LuaPreamble.lua sets up Entity(id) as an OOP wrapper that delegates
4
+ every method to __entity_raw.<method>(id, ...). We register every method
5
+ the preamble knows about + every method mentioned in ApiReference.
6
+
7
+ Signatures follow ApiReference exactly: most return multi-values (tuples),
8
+ which lupa unpacks when unpack_returned_tuples=True is set on the runtime.
9
+ """
10
+ import math
11
+ from typing import Any
12
+
13
+ from ..entity import Entity
14
+ from ..world import WorldContext
15
+
16
+ try:
17
+ from Box2D import b2_dynamicBody, b2_staticBody
18
+ _HAS_BOX2D = True
19
+ except ImportError:
20
+ _HAS_BOX2D = False
21
+ b2_dynamicBody = 2
22
+ b2_staticBody = 0
23
+
24
+
25
+ def _e(world: WorldContext, eid: Any) -> Entity | None:
26
+ if eid is None:
27
+ return None
28
+ try:
29
+ return world.get_entity(int(eid))
30
+ except (TypeError, ValueError):
31
+ return None
32
+
33
+
34
+ def register_entity_backend(lua, g, world: WorldContext):
35
+ raw = lua.table_from({})
36
+
37
+ # ===== Transform (11) =====
38
+ def get_position(id):
39
+ b = world.get_body(id)
40
+ if b:
41
+ return float(b.position.x), float(b.position.y)
42
+ e = _e(world, id)
43
+ if not e:
44
+ return 0.0, 0.0
45
+ return e.position_x, e.position_y
46
+
47
+ def set_position(id, x, y):
48
+ e = _e(world, id)
49
+ if not e: return
50
+ e.position_x = float(x); e.position_y = float(y)
51
+ b = world.get_body(id)
52
+ if b: b.position = (float(x), float(y))
53
+
54
+ def get_angle(id):
55
+ e = _e(world, id)
56
+ return e.angle if e else 0.0
57
+
58
+ def set_angle(id, a):
59
+ e = _e(world, id)
60
+ if not e: return
61
+ e.angle = float(a)
62
+ b = world.get_body(id)
63
+ if b: b.angle = math.radians(float(a))
64
+
65
+ def get_scale(id):
66
+ e = _e(world, id)
67
+ if not e: return 1.0, 1.0
68
+ return e.scale_x, e.scale_y
69
+
70
+ def set_scale(id, sx, sy):
71
+ e = _e(world, id)
72
+ if e:
73
+ e.scale_x = float(sx); e.scale_y = float(sy)
74
+
75
+ def get_normal(id):
76
+ e = _e(world, id)
77
+ if not e: return 0.0, 1.0
78
+ return e.normal_x, e.normal_y
79
+
80
+ def local_to_world(id, lx, ly):
81
+ e = _e(world, id)
82
+ if not e: return 0.0, 0.0
83
+ a = math.radians(e.angle)
84
+ ca, sa = math.cos(a), math.sin(a)
85
+ return e.position_x + lx * ca - ly * sa, e.position_y + lx * sa + ly * ca
86
+
87
+ def world_to_local(id, wx, wy):
88
+ e = _e(world, id)
89
+ if not e: return 0.0, 0.0
90
+ a = math.radians(-e.angle)
91
+ ca, sa = math.cos(a), math.sin(a)
92
+ dx, dy = wx - e.position_x, wy - e.position_y
93
+ return dx * ca - dy * sa, dx * sa + dy * ca
94
+
95
+ def local_angle_to_world(id, la):
96
+ e = _e(world, id)
97
+ return (e.angle + la) if e else la
98
+
99
+ def world_angle_to_local(id, wa):
100
+ e = _e(world, id)
101
+ return (wa - e.angle) if e else wa
102
+
103
+ # ===== Physics (15) =====
104
+ def get_velocity(id):
105
+ e = _e(world, id)
106
+ if not e: return 0.0, 0.0
107
+ b = world.get_body(id)
108
+ if b: return float(b.linearVelocity.x), float(b.linearVelocity.y)
109
+ return e.velocity_x, e.velocity_y
110
+
111
+ def set_velocity(id, vx, vy):
112
+ e = _e(world, id)
113
+ if not e: return
114
+ e.velocity_x = float(vx); e.velocity_y = float(vy)
115
+ b = world.get_body(id)
116
+ if b: b.linearVelocity = (float(vx), float(vy))
117
+
118
+ def get_angular_velocity(id):
119
+ e = _e(world, id)
120
+ if not e: return 0.0
121
+ b = world.get_body(id)
122
+ import math as _m
123
+ return _m.degrees(b.angularVelocity) if b else e.angular_velocity
124
+
125
+ def set_angular_velocity(id, w):
126
+ e = _e(world, id)
127
+ if not e: return
128
+ e.angular_velocity = float(w)
129
+ b = world.get_body(id)
130
+ if b:
131
+ import math as _m
132
+ b.angularVelocity = _m.radians(float(w))
133
+
134
+ def add_force(id, fx, fy):
135
+ b = world.get_body(id)
136
+ if b: b.ApplyForceToCenter((float(fx), float(fy)), wake=True)
137
+
138
+ def add_torque(id, t):
139
+ b = world.get_body(id)
140
+ if b: b.ApplyTorque(float(t), wake=True)
141
+
142
+ def add_force_at_position(id, fx, fy, px, py):
143
+ b = world.get_body(id)
144
+ if b: b.ApplyForce((float(fx), float(fy)), (float(px), float(py)), wake=True)
145
+
146
+ def get_velocity_at_point(id, px, py):
147
+ b = world.get_body(id)
148
+ if b:
149
+ v = b.GetLinearVelocityFromWorldPoint((float(px), float(py)))
150
+ return float(v.x), float(v.y)
151
+ e = _e(world, id)
152
+ if not e: return 0.0, 0.0
153
+ return e.velocity_x, e.velocity_y
154
+
155
+ def get_mass(id):
156
+ b = world.get_body(id)
157
+ if b: return float(b.mass)
158
+ e = _e(world, id)
159
+ return e.mass if e else 0.0
160
+
161
+ def get_center_of_mass(id):
162
+ b = world.get_body(id)
163
+ if b:
164
+ lc = b.localCenter
165
+ return float(lc.x), float(lc.y)
166
+ e = _e(world, id)
167
+ if not e: return 0.0, 0.0
168
+ return e.center_of_mass_x, e.center_of_mass_y
169
+
170
+ def get_gravity_scale(id):
171
+ b = world.get_body(id)
172
+ if b: return float(b.gravityScale)
173
+ e = _e(world, id)
174
+ return e.gravity_scale if e else 1.0
175
+
176
+ def set_gravity_scale(id, s):
177
+ e = _e(world, id)
178
+ if e: e.gravity_scale = float(s)
179
+ b = world.get_body(id)
180
+ if b: b.gravityScale = float(s)
181
+
182
+ def freeze(id, flag):
183
+ e = _e(world, id)
184
+ if e: e.is_frozen = bool(flag)
185
+ b = world.get_body(id)
186
+ if b: b.type = b2_staticBody if flag else b2_dynamicBody
187
+
188
+ def freeze_rotation(id, flag):
189
+ e = _e(world, id)
190
+ if e: e.is_rotation_frozen = bool(flag)
191
+ b = world.get_body(id)
192
+ if b: b.fixedRotation = bool(flag)
193
+
194
+ def set_collision_enabled(id, flag):
195
+ e = _e(world, id)
196
+ if e: e.collision_enabled = bool(flag)
197
+ b = world.get_body(id)
198
+ if b:
199
+ for f in b.fixtures:
200
+ f.sensor = not bool(flag)
201
+
202
+ # ===== Health / Temperature (8) =====
203
+ def get_temperature(id):
204
+ e = _e(world, id)
205
+ return e.temperature if e else 0.0
206
+
207
+ def set_temperature(id, t):
208
+ e = _e(world, id)
209
+ if e: e.temperature = float(t)
210
+
211
+ def is_on_fire(id):
212
+ e = _e(world, id)
213
+ return 1 if (e and e.on_fire) else 0
214
+
215
+ def is_frozen(id):
216
+ e = _e(world, id)
217
+ return 1 if (e and e.is_frozen) else 0
218
+
219
+ def ignite(id):
220
+ e = _e(world, id)
221
+ if e: e.on_fire = True
222
+
223
+ def extinguish(id):
224
+ e = _e(world, id)
225
+ if e: e.on_fire = False
226
+
227
+ def get_health(id):
228
+ e = _e(world, id)
229
+ return e.health if e else 0.0
230
+
231
+ def is_breakable(id):
232
+ e = _e(world, id)
233
+ return 1 if (e and e.breakable) else 0
234
+
235
+ # ===== Visuals (6) =====
236
+ def get_color(id):
237
+ e = _e(world, id)
238
+ if not e: return 1.0, 1.0, 1.0, 1.0
239
+ return e.color_r, e.color_g, e.color_b, e.color_a
240
+
241
+ def set_color(id, r, g, b, a=1.0):
242
+ e = _e(world, id)
243
+ if e:
244
+ e.color_r = float(r); e.color_g = float(g)
245
+ e.color_b = float(b); e.color_a = float(a)
246
+
247
+ def get_name(id):
248
+ e = _e(world, id)
249
+ return e.name if e else ""
250
+
251
+ def get_localized_name(id):
252
+ e = _e(world, id)
253
+ return (e.localized_name or e.name) if e else ""
254
+
255
+ def is_visible(id):
256
+ e = _e(world, id)
257
+ return 1 if (e and e.visible) else 0
258
+
259
+ def set_visible(id, flag):
260
+ e = _e(world, id)
261
+ if e: e.visible = bool(flag)
262
+
263
+ # ===== Electricity (1) =====
264
+ def get_voltage(id):
265
+ e = _e(world, id)
266
+ return e.voltage if e else 0.0
267
+
268
+ # ===== Interaction (5) =====
269
+ def is_draggable(id):
270
+ e = _e(world, id)
271
+ return 1 if (e and e.draggable) else 0
272
+
273
+ def set_draggable(id, flag):
274
+ e = _e(world, id)
275
+ if e: e.draggable = bool(flag)
276
+
277
+ def activate(id, flag):
278
+ e = _e(world, id)
279
+ if e: e.activation_input = 1.0 if flag else 0.0
280
+
281
+ def get_activation_input(id):
282
+ e = _e(world, id)
283
+ return e.activation_input if e else 0.0
284
+
285
+ def delete(id):
286
+ world.remove_entity(id)
287
+
288
+ # ===== Identity (4) =====
289
+ def get_id(id):
290
+ return int(id) if id else 0
291
+
292
+ def is_valid(id):
293
+ e = _e(world, id)
294
+ return 1 if e else 0
295
+
296
+ def all_(_id=None):
297
+ # called as __entity_raw.all() — but preamble assigns entity.all = _e.all
298
+ # so first arg may be nil. Count live entities.
299
+ return sum(1 for e in world.entities.values() if e.alive)
300
+
301
+ def find(_id_or_name, name=None):
302
+ # entity.find("Human") → id of first match
303
+ target = name if name is not None else _id_or_name
304
+ if not isinstance(target, str):
305
+ return None
306
+ for eid, e in world.entities.items():
307
+ if e.alive and e.name == target:
308
+ return eid
309
+ return None
310
+
311
+ # ===== Hierarchy (3) =====
312
+ def get_root(id):
313
+ e = _e(world, id)
314
+ if not e: return 0
315
+ cur = e
316
+ while cur.parent_id is not None:
317
+ p = world.entities.get(cur.parent_id)
318
+ if not p: break
319
+ cur = p
320
+ return cur.entity_id
321
+
322
+ def get_parent(id):
323
+ e = _e(world, id)
324
+ return e.parent_id if e else None
325
+
326
+ def get_children(id):
327
+ e = _e(world, id)
328
+ if not e: return []
329
+ return lua.table_from(list(e.children_ids))
330
+
331
+ # ===== Bounds (5) =====
332
+ def get_size(id):
333
+ e = _e(world, id)
334
+ if not e: return 1.0, 1.0
335
+ return e.real_size()
336
+
337
+ def get_base_size(id):
338
+ e = _e(world, id)
339
+ if not e: return 1.0, 1.0
340
+ return e.base_size_x, e.base_size_y
341
+
342
+ def get_bounds(id):
343
+ e = _e(world, id)
344
+ if not e: return 0.0, 0.0, 0.0, 0.0
345
+ w, h = e.real_size()
346
+ return e.position_x - w/2, e.position_y - h/2, e.position_x + w/2, e.position_y + h/2
347
+
348
+ def get_full_bounds(id):
349
+ return get_bounds(id) # mock: same as bounds
350
+
351
+ def get_collider_bounds(id):
352
+ return get_bounds(id) # mock
353
+
354
+ # ===== Extended (4) =====
355
+ def look_at(id, target_id, deg_per_sec=360):
356
+ e = _e(world, id)
357
+ t = _e(world, target_id)
358
+ if e and t:
359
+ dx, dy = t.position_x - e.position_x, t.position_y - e.position_y
360
+ e.angle = math.degrees(math.atan2(dy, dx)) + 90
361
+
362
+ def get_elevation(id, tx, ty):
363
+ e = _e(world, id)
364
+ if not e: return 0.0
365
+ dx, dy = tx - e.position_x, ty - e.position_y
366
+ return math.degrees(math.atan2(dy, dx))
367
+
368
+ def can_be_activated(id):
369
+ e = _e(world, id)
370
+ return 1 if (e and e.can_be_activated) else 0
371
+
372
+ def get_physic_material(id):
373
+ e = _e(world, id)
374
+ return e.physic_material if e else "Default"
375
+
376
+ # ===== Collision / Trigger / Wire subscriptions =====
377
+ # These register a callback id with the engine. The engine later fires
378
+ # __dispatch_collision / __dispatch_trigger / __dispatch_wire_* with
379
+ # __cb_id etc. set. We accept the cbId and store it; in the sandbox
380
+ # nothing fires unless the host injects events via runner.dispatch_*.
381
+
382
+ def _subscribe_stub(id, cb_id):
383
+ # Real game: register cbId against entity+event. We just remember it.
384
+ return cb_id
385
+
386
+ def _unsubscribe_stub(id, cb_id):
387
+ return 0
388
+
389
+ def unsubscribe_all(id):
390
+ return 0
391
+
392
+ # Build the table
393
+ methods = {
394
+ # Transform
395
+ "getPosition": get_position, "setPosition": set_position,
396
+ "getAngle": get_angle, "setAngle": set_angle,
397
+ "getScale": get_scale, "setScale": set_scale,
398
+ "getNormal": get_normal,
399
+ "localToWorld": local_to_world, "worldToLocal": world_to_local,
400
+ "localAngleToWorld": local_angle_to_world, "worldAngleToLocal": world_angle_to_local,
401
+ # Physics
402
+ "getVelocity": get_velocity, "setVelocity": set_velocity,
403
+ "getAngularVelocity": get_angular_velocity, "setAngularVelocity": set_angular_velocity,
404
+ "addForce": add_force, "addTorque": add_torque,
405
+ "addForceAtPosition": add_force_at_position,
406
+ "getVelocityAtPoint": get_velocity_at_point,
407
+ "getMass": get_mass, "getCenterOfMass": get_center_of_mass,
408
+ "getGravityScale": get_gravity_scale, "setGravityScale": set_gravity_scale,
409
+ "freeze": freeze, "freezeRotation": freeze_rotation,
410
+ "setCollisionEnabled": set_collision_enabled,
411
+ # Health / Temperature
412
+ "getTemperature": get_temperature, "setTemperature": set_temperature,
413
+ "isOnFire": is_on_fire, "isFrozen": is_frozen,
414
+ "ignite": ignite, "extinguish": extinguish,
415
+ "getHealth": get_health, "isBreakable": is_breakable,
416
+ # Visuals
417
+ "getColor": get_color, "setColor": set_color,
418
+ "getName": get_name, "getLocalizedName": get_localized_name,
419
+ "isVisible": is_visible, "setVisible": set_visible,
420
+ # Electricity
421
+ "getVoltage": get_voltage,
422
+ # Interaction
423
+ "isDraggable": is_draggable, "setDraggable": set_draggable,
424
+ "activate": activate, "getActivationInput": get_activation_input,
425
+ "delete": delete,
426
+ # Identity
427
+ "getId": get_id, "isValid": is_valid,
428
+ "all": all_, "find": find,
429
+ # Hierarchy
430
+ "getRoot": get_root, "getParent": get_parent, "getChildren": get_children,
431
+ # Bounds
432
+ "getSize": get_size, "getBaseSize": get_base_size,
433
+ "getBounds": get_bounds, "getFullBounds": get_full_bounds,
434
+ "getColliderBounds": get_collider_bounds,
435
+ # Extended
436
+ "lookAt": look_at, "getElevation": get_elevation,
437
+ "canBeActivated": can_be_activated, "getPhysicMaterial": get_physic_material,
438
+ # Subscriptions (stubs)
439
+ "subscribeCollisionEnter": _subscribe_stub,
440
+ "subscribeCollisionExit": _subscribe_stub,
441
+ "subscribeCollisionStay": _subscribe_stub,
442
+ "subscribeTriggerEnter": _subscribe_stub,
443
+ "subscribeTriggerExit": _subscribe_stub,
444
+ "subscribeTriggerStay": _subscribe_stub,
445
+ "subscribeWireConnected": _subscribe_stub,
446
+ "subscribeWireDisconnected": _subscribe_stub,
447
+ "unsubscribeCollisionEnter": _unsubscribe_stub,
448
+ "unsubscribeCollisionExit": _unsubscribe_stub,
449
+ "unsubscribeCollisionStay": _unsubscribe_stub,
450
+ "unsubscribeTriggerEnter": _unsubscribe_stub,
451
+ "unsubscribeTriggerExit": _unsubscribe_stub,
452
+ "unsubscribeTriggerStay": _unsubscribe_stub,
453
+ "unsubscribeWireConnected": _unsubscribe_stub,
454
+ "unsubscribeWireDisconnected": _unsubscribe_stub,
455
+ "unsubscribeAll": unsubscribe_all,
456
+ }
457
+ for name, fn in methods.items():
458
+ raw[name] = fn
459
+ g["__entity_raw"] = raw
@@ -0,0 +1,68 @@
1
+ """env — environment queries (15 methods).
2
+
3
+ Signatures from Example_ApiReference_en.lua:DemoEnv and EnvironmentApiModule.cs.
4
+ """
5
+ import time as _time
6
+ import math as _math
7
+ from datetime import datetime, timezone
8
+
9
+
10
+ def register_env_backend(lua, g, world):
11
+ env = lua.table_from({})
12
+
13
+ def time_():
14
+ return world.elapsed_time
15
+ def delta_time():
16
+ return 1.0 / 20.0 # fixed dt default; runner overrides via env var if needed
17
+ def fixed_delta_time():
18
+ return 1.0 / 50.0
19
+ def time_scale():
20
+ return world.time_scale
21
+ def set_time_scale(s):
22
+ s = max(0.0, min(2.0, float(s)))
23
+ world.time_scale = s
24
+ def frame_count():
25
+ return world.frame_count
26
+ def session_time():
27
+ return _time.time() - world.session_start
28
+ def entity_count():
29
+ return sum(1 for e in world.entities.values() if e.alive)
30
+ def is_world():
31
+ return 1 if True else 0 # sandbox always pretends to be in-world
32
+ def is_world_editor():
33
+ return 1 if world.is_world_editor else 0
34
+ def system_time():
35
+ return _time.time() # UTC seconds since epoch
36
+ def system_date():
37
+ # UTC days since epoch
38
+ return int(_time.time() // 86400)
39
+ def to_date(days):
40
+ try:
41
+ d = datetime.fromtimestamp(int(days) * 86400, tz=timezone.utc)
42
+ return d.strftime("%d.%m.%Y")
43
+ except Exception:
44
+ return ""
45
+ def to_time_format(utc_sec):
46
+ try:
47
+ d = datetime.fromtimestamp(int(utc_sec), tz=timezone.utc)
48
+ return d.strftime("%H:%M:%S")
49
+ except Exception:
50
+ return ""
51
+ def parse_date(s):
52
+ try:
53
+ d = datetime.strptime(str(s), "%d.%m.%Y").replace(tzinfo=timezone.utc)
54
+ return int(d.timestamp() // 86400)
55
+ except Exception:
56
+ return 0
57
+
58
+ for name, fn in {
59
+ "time": time_, "deltaTime": delta_time, "fixedDeltaTime": fixed_delta_time,
60
+ "timeScale": time_scale, "setTimeScale": set_time_scale,
61
+ "frameCount": frame_count, "sessionTime": session_time,
62
+ "entityCount": entity_count, "isWorld": is_world,
63
+ "isWorldEditor": is_world_editor, "systemTime": system_time,
64
+ "systemDate": system_date, "toDate": to_date,
65
+ "toTimeFormat": to_time_format, "parseDate": parse_date,
66
+ }.items():
67
+ env[name] = fn
68
+ g["env"] = env
@@ -0,0 +1,100 @@
1
+ """input — pointer / multi-touch / gestures / keyboard (31 methods).
2
+
3
+ Signatures from Example_ApiReference_en.lua:DemoInput and InputFilterApiModule.cs.
4
+ The host drives state by mutating world.input fields before each tick.
5
+ """
6
+ from ..world import WorldContext
7
+
8
+
9
+ def register_input_backend(lua, g, world: WorldContext):
10
+ inp = lua.table_from({})
11
+ s = world.input
12
+
13
+ # === Pointer ===
14
+ def pointer_down(): return 1 if s.pointer_down else 0
15
+ def pointer_up(): return 1 if s.pointer_up else 0
16
+ def pointer_pos(): return s.pointer_pos
17
+ def pointer_screen_pos(): return s.pointer_screen_pos
18
+ def pointer_delta(): return s.pointer_delta
19
+ def pointer_raycast(): return s.raycast_hit_id
20
+ def pointer_raycast_all(): return lua.table_from(list(s.raycast_all_hits))
21
+ def is_over_ui(): return 1 if s.over_ui else 0
22
+ def pointer_down_filtered(): return 1 if s.pointer_down_filtered else 0
23
+ def pointer_up_filtered(): return 1 if s.pointer_up_filtered else 0
24
+
25
+ # === Multi-touch (1-based index) ===
26
+ def touch_count(): return s.touch_count
27
+
28
+ def _get_touch(i):
29
+ if i is None or i < 1: return None
30
+ return s.touches.get(int(i))
31
+
32
+ def touch_set(i):
33
+ t = _get_touch(i); return 1 if t else 0
34
+ def touch_down(i):
35
+ t = _get_touch(i); return 1 if (t and t.get("down")) else 0
36
+ def touch_up(i):
37
+ t = _get_touch(i); return 1 if (t and t.get("up")) else 0
38
+ def touch_age(i):
39
+ t = _get_touch(i); return float(t["age"]) if t else 0.0
40
+ def touch_id(i):
41
+ t = _get_touch(i); return int(t["hw_id"]) if t else 0
42
+ def touch_pos(i):
43
+ t = _get_touch(i); return (t["pos"] if t else (0.0, 0.0))
44
+ def touch_screen_pos(i):
45
+ t = _get_touch(i); return (t["screen_pos"] if t else (0.0, 0.0))
46
+ def touch_start_screen_pos(i):
47
+ t = _get_touch(i); return (t["start_screen_pos"] if t else (0.0, 0.0))
48
+ def touch_delta(i):
49
+ t = _get_touch(i); return (t["delta"] if t else (0.0, 0.0))
50
+ def touch_swipe_delta(i):
51
+ t = _get_touch(i); return (t["swipe_delta"] if t else (0.0, 0.0))
52
+ def touch_tap(i):
53
+ t = _get_touch(i); return 1 if (t and t.get("tap")) else 0
54
+ def touch_tap_count(i):
55
+ t = _get_touch(i); return int(t["tap_count"]) if t else 0
56
+ def touch_swipe(i):
57
+ t = _get_touch(i); return 1 if (t and t.get("swipe")) else 0
58
+ def touch_is_over_ui(i):
59
+ t = _get_touch(i); return 1 if (t and t.get("over_ui")) else 0
60
+ def touch_started_over_ui(i):
61
+ t = _get_touch(i); return 1 if (t and t.get("started_over_ui")) else 0
62
+
63
+ # === Gestures (two fingers) ===
64
+ def pinch_distance(a=1, b=2):
65
+ return s.pinch_distance
66
+ def pinch_angle(a=1, b=2):
67
+ return s.pinch_angle
68
+ def pinch_center(a=1, b=2):
69
+ return s.pinch_center
70
+
71
+ # === Keyboard ===
72
+ def key(name):
73
+ return 1 if str(name).lower() in s.keys_held else 0
74
+ def key_down(name):
75
+ return 1 if str(name).lower() in s.keys_pressed_this_frame else 0
76
+
77
+ for name, fn in {
78
+ "pointerDown": pointer_down, "pointerUp": pointer_up,
79
+ "pointerPos": pointer_pos, "pointerScreenPos": pointer_screen_pos,
80
+ "pointerDelta": pointer_delta,
81
+ "pointerRaycast": pointer_raycast, "pointerRaycastAll": pointer_raycast_all,
82
+ "isOverUI": is_over_ui,
83
+ "pointerDownFiltered": pointer_down_filtered,
84
+ "pointerUpFiltered": pointer_up_filtered,
85
+ "touchCount": touch_count,
86
+ "touchSet": touch_set, "touchDown": touch_down, "touchUp": touch_up,
87
+ "touchAge": touch_age, "touchId": touch_id,
88
+ "touchPos": touch_pos, "touchScreenPos": touch_screen_pos,
89
+ "touchStartScreenPos": touch_start_screen_pos,
90
+ "touchDelta": touch_delta, "touchSwipeDelta": touch_swipe_delta,
91
+ "touchTap": touch_tap, "touchTapCount": touch_tap_count,
92
+ "touchSwipe": touch_swipe,
93
+ "touchIsOverUI": touch_is_over_ui,
94
+ "touchStartedOverUI": touch_started_over_ui,
95
+ "pinchDistance": pinch_distance, "pinchAngle": pinch_angle,
96
+ "pinchCenter": pinch_center,
97
+ "key": key, "keyDown": key_down,
98
+ }.items():
99
+ inp[name] = fn
100
+ g["input"] = inp
@@ -0,0 +1,67 @@
1
+ """mechanic — standard mechanics introspection (9 methods).
2
+
3
+ Source: MechanicApiModule.cs + Example_ApiReference_en.lua:DemoMechanic.
4
+ Excludes VPChip / LuaChip / UIControlMechanic (those have their own modules).
5
+ For the sandbox, mechanic metadata lives in world.chip_metadata under the
6
+ key "mechanic:<id>".
7
+ """
8
+ from typing import Any
9
+ from ..world import WorldContext
10
+
11
+
12
+ def _mech(world: WorldContext, eid: Any) -> dict:
13
+ try:
14
+ eid = int(eid)
15
+ except (TypeError, ValueError):
16
+ return {}
17
+ return world.chip_metadata.get(f"mechanic:{eid}", {})
18
+
19
+
20
+ def _gates_to_array(lua, gates_dict):
21
+ return lua.table_from([f"{k}|{v}" for k, v in gates_dict.items()])
22
+
23
+
24
+ def register_mechanic_backend(lua, g, world: WorldContext):
25
+ mech = lua.table_from({})
26
+
27
+ def has(eid):
28
+ return 1 if _mech(world, eid) else 0
29
+ def get_type(eid):
30
+ m = _mech(world, eid)
31
+ return m.get("type") if m else None
32
+ def get_inputs(eid):
33
+ m = _mech(world, eid)
34
+ return _gates_to_array(lua, m.get("inputs", {}))
35
+ def get_outputs(eid):
36
+ m = _mech(world, eid)
37
+ return _gates_to_array(lua, m.get("outputs", {}))
38
+ def get_value(eid, gate_name):
39
+ m = _mech(world, eid)
40
+ return m.get("values", {}).get(gate_name)
41
+ def set_value(eid, gate_name, value):
42
+ m = _mech(world, eid)
43
+ if not m: return 0
44
+ if gate_name in m.get("wired", set()): return 0
45
+ m.setdefault("values", {})[gate_name] = value
46
+ return 1
47
+ def has_wire(eid, gate_name):
48
+ m = _mech(world, eid)
49
+ return 1 if gate_name in m.get("wired", set()) else 0
50
+ def get_activation(eid):
51
+ m = _mech(world, eid)
52
+ return m.get("activation", 0.0)
53
+ def set_activation(eid, val):
54
+ m = _mech(world, eid)
55
+ if not m: return 0
56
+ m["activation"] = float(val)
57
+ return 1
58
+
59
+ for name, fn in {
60
+ "has": has, "getType": get_type,
61
+ "getInputs": get_inputs, "getOutputs": get_outputs,
62
+ "getValue": get_value, "setValue": set_value,
63
+ "hasWire": has_wire,
64
+ "getActivation": get_activation, "setActivation": set_activation,
65
+ }.items():
66
+ mech[name] = fn
67
+ g["mechanic"] = mech