studyup 0.0.0-stage → 1.0.1

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 (898) hide show
  1. package/hexgl-package/HexGL-master/.htaccess +4 -0
  2. package/hexgl-package/HexGL-master/LICENSE +21 -0
  3. package/hexgl-package/HexGL-master/README.md +26 -0
  4. package/hexgl-package/HexGL-master/audio/LICENSE +28 -0
  5. package/hexgl-package/HexGL-master/audio/bg.ogg +0 -0
  6. package/hexgl-package/HexGL-master/audio/boost.ogg +0 -0
  7. package/hexgl-package/HexGL-master/audio/crash.ogg +0 -0
  8. package/hexgl-package/HexGL-master/audio/destroyed.ogg +0 -0
  9. package/hexgl-package/HexGL-master/audio/wind.ogg +0 -0
  10. package/hexgl-package/HexGL-master/bkcore/Audio.js +142 -0
  11. package/hexgl-package/HexGL-master/bkcore/hexgl/CameraChase.js +73 -0
  12. package/hexgl-package/HexGL-master/bkcore/hexgl/Gameplay.js +231 -0
  13. package/hexgl-package/HexGL-master/bkcore/hexgl/HUD.js +270 -0
  14. package/hexgl-package/HexGL-master/bkcore/hexgl/HexGL.js +446 -0
  15. package/hexgl-package/HexGL-master/bkcore/hexgl/Ladder.js +52 -0
  16. package/hexgl-package/HexGL-master/bkcore/hexgl/RaceData.js +99 -0
  17. package/hexgl-package/HexGL-master/bkcore/hexgl/ShipControls.js +806 -0
  18. package/hexgl-package/HexGL-master/bkcore/hexgl/ShipEffects.js +186 -0
  19. package/hexgl-package/HexGL-master/bkcore/hexgl/tracks/Cityscape.js +521 -0
  20. package/hexgl-package/HexGL-master/bkcore/threejs/Loader.js +260 -0
  21. package/hexgl-package/HexGL-master/bkcore/threejs/Particles.js +191 -0
  22. package/hexgl-package/HexGL-master/bkcore/threejs/Preloader.js +151 -0
  23. package/hexgl-package/HexGL-master/bkcore/threejs/RenderManager.js +132 -0
  24. package/hexgl-package/HexGL-master/bkcore/threejs/Shaders.js +950 -0
  25. package/hexgl-package/HexGL-master/bkcore.coffee/ImageData.coffee +141 -0
  26. package/hexgl-package/HexGL-master/bkcore.coffee/ImageData.js +156 -0
  27. package/hexgl-package/HexGL-master/bkcore.coffee/Timer.coffee +118 -0
  28. package/hexgl-package/HexGL-master/bkcore.coffee/Timer.js +159 -0
  29. package/hexgl-package/HexGL-master/bkcore.coffee/Utils.coffee +193 -0
  30. package/hexgl-package/HexGL-master/bkcore.coffee/Utils.js +250 -0
  31. package/hexgl-package/HexGL-master/bkcore.coffee/controllers/GamepadController.coffee +45 -0
  32. package/hexgl-package/HexGL-master/bkcore.coffee/controllers/GamepadController.js +73 -0
  33. package/hexgl-package/HexGL-master/bkcore.coffee/controllers/OrientationController.coffee +72 -0
  34. package/hexgl-package/HexGL-master/bkcore.coffee/controllers/OrientationController.js +130 -0
  35. package/hexgl-package/HexGL-master/bkcore.coffee/controllers/TouchController.coffee +109 -0
  36. package/hexgl-package/HexGL-master/bkcore.coffee/controllers/TouchController.js +188 -0
  37. package/hexgl-package/HexGL-master/bkcore.coffee/tests.html +10 -0
  38. package/hexgl-package/HexGL-master/bkcore.coffee/threejs/Particles.coffee +199 -0
  39. package/hexgl-package/HexGL-master/bkcore.coffee/threejs/Particles.js +210 -0
  40. package/hexgl-package/HexGL-master/cache.appcache +74 -0
  41. package/hexgl-package/HexGL-master/css/BebasNeue-webfont.eot +0 -0
  42. package/hexgl-package/HexGL-master/css/BebasNeue-webfont.svg +245 -0
  43. package/hexgl-package/HexGL-master/css/BebasNeue-webfont.ttf +0 -0
  44. package/hexgl-package/HexGL-master/css/BebasNeue-webfont.woff +0 -0
  45. package/hexgl-package/HexGL-master/css/bg.jpg +0 -0
  46. package/hexgl-package/HexGL-master/css/fonts.css +16 -0
  47. package/hexgl-package/HexGL-master/css/help-0.png +0 -0
  48. package/hexgl-package/HexGL-master/css/help-1.png +0 -0
  49. package/hexgl-package/HexGL-master/css/help-2.png +0 -0
  50. package/hexgl-package/HexGL-master/css/help-3.png +0 -0
  51. package/hexgl-package/HexGL-master/css/mobile-controls-1.jpg +0 -0
  52. package/hexgl-package/HexGL-master/css/mobile-controls-2.jpg +0 -0
  53. package/hexgl-package/HexGL-master/css/mobile-over.jpg +0 -0
  54. package/hexgl-package/HexGL-master/css/mobile.jpg +0 -0
  55. package/hexgl-package/HexGL-master/css/multi.css +264 -0
  56. package/hexgl-package/HexGL-master/css/title.png +0 -0
  57. package/hexgl-package/HexGL-master/css/touchcontroller.css +8 -0
  58. package/hexgl-package/HexGL-master/favicon.png +0 -0
  59. package/hexgl-package/HexGL-master/geometries/bonus/base/base.js +45 -0
  60. package/hexgl-package/HexGL-master/geometries/booster/booster.js +45 -0
  61. package/hexgl-package/HexGL-master/geometries/ships/feisar/feisar.js +45 -0
  62. package/hexgl-package/HexGL-master/geometries/tracks/cityscape/bonus/speed.js +45 -0
  63. package/hexgl-package/HexGL-master/geometries/tracks/cityscape/scrapers1.js +45 -0
  64. package/hexgl-package/HexGL-master/geometries/tracks/cityscape/scrapers2.js +45 -0
  65. package/hexgl-package/HexGL-master/geometries/tracks/cityscape/start.js +45 -0
  66. package/hexgl-package/HexGL-master/geometries/tracks/cityscape/startbanner.js +45 -0
  67. package/hexgl-package/HexGL-master/geometries/tracks/cityscape/track.js +45 -0
  68. package/hexgl-package/HexGL-master/geometries/tracks/edge/track.js +38 -0
  69. package/hexgl-package/HexGL-master/icon_128.png +0 -0
  70. package/hexgl-package/HexGL-master/icon_256.png +0 -0
  71. package/hexgl-package/HexGL-master/icon_32.png +0 -0
  72. package/hexgl-package/HexGL-master/icon_64.png +0 -0
  73. package/hexgl-package/HexGL-master/index.html +129 -0
  74. package/hexgl-package/HexGL-master/launch.coffee +85 -0
  75. package/hexgl-package/HexGL-master/launch.js +116 -0
  76. package/hexgl-package/HexGL-master/libs/DAT.GUI.min.js +53 -0
  77. package/hexgl-package/HexGL-master/libs/Detector.js +59 -0
  78. package/hexgl-package/HexGL-master/libs/Editor.html +717 -0
  79. package/hexgl-package/HexGL-master/libs/Editor_files/App.js +212 -0
  80. package/hexgl-package/HexGL-master/libs/Editor_files/CanvasRenderer.js +389 -0
  81. package/hexgl-package/HexGL-master/libs/Editor_files/Diagram.js +148 -0
  82. package/hexgl-package/HexGL-master/libs/Editor_files/Iterator.js +92 -0
  83. package/hexgl-package/HexGL-master/libs/Editor_files/Links.js +56 -0
  84. package/hexgl-package/HexGL-master/libs/Editor_files/ModuleList.js +47 -0
  85. package/hexgl-package/HexGL-master/libs/Editor_files/Node.js +122 -0
  86. package/hexgl-package/HexGL-master/libs/Editor_files/Parser.js +140 -0
  87. package/hexgl-package/HexGL-master/libs/Editor_files/Project.js +162 -0
  88. package/hexgl-package/HexGL-master/libs/Editor_files/Timer.js +166 -0
  89. package/hexgl-package/HexGL-master/libs/Editor_files/ace.js +11 -0
  90. package/hexgl-package/HexGL-master/libs/Editor_files/class.js +989 -0
  91. package/hexgl-package/HexGL-master/libs/Editor_files/editor.css +16 -0
  92. package/hexgl-package/HexGL-master/libs/Editor_files/font.css +24 -0
  93. package/hexgl-package/HexGL-master/libs/Editor_files/gamecore.js +133 -0
  94. package/hexgl-package/HexGL-master/libs/Editor_files/hashlist.js +41 -0
  95. package/hexgl-package/HexGL-master/libs/Editor_files/jhashtable.js +468 -0
  96. package/hexgl-package/HexGL-master/libs/Editor_files/jquery-1.8.js +2 -0
  97. package/hexgl-package/HexGL-master/libs/Editor_files/kinetic.js +30 -0
  98. package/hexgl-package/HexGL-master/libs/Editor_files/main.css +204 -0
  99. package/hexgl-package/HexGL-master/libs/Editor_files/mode-json.js +1 -0
  100. package/hexgl-package/HexGL-master/libs/Editor_files/pooled.js +542 -0
  101. package/hexgl-package/HexGL-master/libs/Editor_files/theme-monokai.js +1 -0
  102. package/hexgl-package/HexGL-master/libs/ShaderExtras.js +1788 -0
  103. package/hexgl-package/HexGL-master/libs/Stats.js +6 -0
  104. package/hexgl-package/HexGL-master/libs/Three.dev.js +758 -0
  105. package/hexgl-package/HexGL-master/libs/Three.r53.js +767 -0
  106. package/hexgl-package/HexGL-master/libs/leap-0.4.1.min.js +3 -0
  107. package/hexgl-package/HexGL-master/libs/postprocessing/BloomPass.js +100 -0
  108. package/hexgl-package/HexGL-master/libs/postprocessing/DotScreenPass.js +52 -0
  109. package/hexgl-package/HexGL-master/libs/postprocessing/EffectComposer.js +143 -0
  110. package/hexgl-package/HexGL-master/libs/postprocessing/FilmPass.js +51 -0
  111. package/hexgl-package/HexGL-master/libs/postprocessing/MaskPass.js +86 -0
  112. package/hexgl-package/HexGL-master/libs/postprocessing/RenderPass.js +63 -0
  113. package/hexgl-package/HexGL-master/libs/postprocessing/SavePass.js +52 -0
  114. package/hexgl-package/HexGL-master/libs/postprocessing/ShaderPass.js +51 -0
  115. package/hexgl-package/HexGL-master/libs/postprocessing/TexturePass.js +37 -0
  116. package/hexgl-package/HexGL-master/manifest.webapp +18 -0
  117. package/hexgl-package/HexGL-master/package.webapp +10 -0
  118. package/hexgl-package/HexGL-master/package.zip +0 -0
  119. package/hexgl-package/HexGL-master/replays/cityscape-casual/bkcore.replay.json +1 -0
  120. package/hexgl-package/HexGL-master/textures/bonus/base/diffuse.jpg +0 -0
  121. package/hexgl-package/HexGL-master/textures/bonus/base/normal.jpg +0 -0
  122. package/hexgl-package/HexGL-master/textures/bonus/base/specular.jpg +0 -0
  123. package/hexgl-package/HexGL-master/textures/checker.png +0 -0
  124. package/hexgl-package/HexGL-master/textures/hud/hex.jpg +0 -0
  125. package/hexgl-package/HexGL-master/textures/hud/hud-bg.png +0 -0
  126. package/hexgl-package/HexGL-master/textures/hud/hud-fg-shield.png +0 -0
  127. package/hexgl-package/HexGL-master/textures/hud/hud-fg-speed.png +0 -0
  128. package/hexgl-package/HexGL-master/textures/particles/cloud - Copie.png +0 -0
  129. package/hexgl-package/HexGL-master/textures/particles/cloud.png +0 -0
  130. package/hexgl-package/HexGL-master/textures/particles/damage.png +0 -0
  131. package/hexgl-package/HexGL-master/textures/particles/spark - Copie.png +0 -0
  132. package/hexgl-package/HexGL-master/textures/particles/spark.png +0 -0
  133. package/hexgl-package/HexGL-master/textures/ships/feisar/booster/booster.png +0 -0
  134. package/hexgl-package/HexGL-master/textures/ships/feisar/booster/boostersprite.jpg +0 -0
  135. package/hexgl-package/HexGL-master/textures/ships/feisar/diffuse.jpg +0 -0
  136. package/hexgl-package/HexGL-master/textures/ships/feisar/normal.jpg +0 -0
  137. package/hexgl-package/HexGL-master/textures/ships/feisar/specular.jpg +0 -0
  138. package/hexgl-package/HexGL-master/textures/skybox/dawnclouds/nx.jpg +0 -0
  139. package/hexgl-package/HexGL-master/textures/skybox/dawnclouds/ny.jpg +0 -0
  140. package/hexgl-package/HexGL-master/textures/skybox/dawnclouds/nz.jpg +0 -0
  141. package/hexgl-package/HexGL-master/textures/skybox/dawnclouds/px.jpg +0 -0
  142. package/hexgl-package/HexGL-master/textures/skybox/dawnclouds/py.jpg +0 -0
  143. package/hexgl-package/HexGL-master/textures/skybox/dawnclouds/pz.jpg +0 -0
  144. package/hexgl-package/HexGL-master/textures/tracks/cityscape/collision.png +0 -0
  145. package/hexgl-package/HexGL-master/textures/tracks/cityscape/diffuse.jpg +0 -0
  146. package/hexgl-package/HexGL-master/textures/tracks/cityscape/height.png +0 -0
  147. package/hexgl-package/HexGL-master/textures/tracks/cityscape/normal.jpg +0 -0
  148. package/hexgl-package/HexGL-master/textures/tracks/cityscape/scrapers1/diffuse.jpg +0 -0
  149. package/hexgl-package/HexGL-master/textures/tracks/cityscape/scrapers1/normal.jpg +0 -0
  150. package/hexgl-package/HexGL-master/textures/tracks/cityscape/scrapers1/specular.jpg +0 -0
  151. package/hexgl-package/HexGL-master/textures/tracks/cityscape/scrapers2/diffuse.jpg +0 -0
  152. package/hexgl-package/HexGL-master/textures/tracks/cityscape/scrapers2/normal.jpg +0 -0
  153. package/hexgl-package/HexGL-master/textures/tracks/cityscape/scrapers2/specular.jpg +0 -0
  154. package/hexgl-package/HexGL-master/textures/tracks/cityscape/specular.jpg +0 -0
  155. package/hexgl-package/HexGL-master/textures/tracks/cityscape/start/diffuse.jpg +0 -0
  156. package/hexgl-package/HexGL-master/textures/tracks/cityscape/start/normal.jpg +0 -0
  157. package/hexgl-package/HexGL-master/textures/tracks/cityscape/start/specular.jpg +0 -0
  158. package/hexgl-package/HexGL-master/textures/tracks/cityscape/start/start.jpg +0 -0
  159. package/hexgl-package/HexGL-master/textures.full/bonus/base/diffuse.jpg +0 -0
  160. package/hexgl-package/HexGL-master/textures.full/bonus/base/normal.jpg +0 -0
  161. package/hexgl-package/HexGL-master/textures.full/bonus/base/specular.jpg +0 -0
  162. package/hexgl-package/HexGL-master/textures.full/checker.png +0 -0
  163. package/hexgl-package/HexGL-master/textures.full/hud/hex.jpg +0 -0
  164. package/hexgl-package/HexGL-master/textures.full/hud/hud-bg.png +0 -0
  165. package/hexgl-package/HexGL-master/textures.full/hud/hud-fg-shield.png +0 -0
  166. package/hexgl-package/HexGL-master/textures.full/hud/hud-fg-speed.png +0 -0
  167. package/hexgl-package/HexGL-master/textures.full/particles/cloud - Copie.png +0 -0
  168. package/hexgl-package/HexGL-master/textures.full/particles/cloud.png +0 -0
  169. package/hexgl-package/HexGL-master/textures.full/particles/damage.png +0 -0
  170. package/hexgl-package/HexGL-master/textures.full/particles/spark - Copie.png +0 -0
  171. package/hexgl-package/HexGL-master/textures.full/particles/spark.png +0 -0
  172. package/hexgl-package/HexGL-master/textures.full/ships/feisar/booster/booster.png +0 -0
  173. package/hexgl-package/HexGL-master/textures.full/ships/feisar/booster/boostersprite.jpg +0 -0
  174. package/hexgl-package/HexGL-master/textures.full/ships/feisar/diffuse.jpg +0 -0
  175. package/hexgl-package/HexGL-master/textures.full/ships/feisar/normal.jpg +0 -0
  176. package/hexgl-package/HexGL-master/textures.full/ships/feisar/specular.jpg +0 -0
  177. package/hexgl-package/HexGL-master/textures.full/skybox/dawnclouds/nx.jpg +0 -0
  178. package/hexgl-package/HexGL-master/textures.full/skybox/dawnclouds/ny.jpg +0 -0
  179. package/hexgl-package/HexGL-master/textures.full/skybox/dawnclouds/nz.jpg +0 -0
  180. package/hexgl-package/HexGL-master/textures.full/skybox/dawnclouds/px.jpg +0 -0
  181. package/hexgl-package/HexGL-master/textures.full/skybox/dawnclouds/py.jpg +0 -0
  182. package/hexgl-package/HexGL-master/textures.full/skybox/dawnclouds/pz.jpg +0 -0
  183. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/collision.png +0 -0
  184. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/diffuse.jpg +0 -0
  185. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/height.png +0 -0
  186. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/normal.jpg +0 -0
  187. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/scrapers1/diffuse.jpg +0 -0
  188. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/scrapers1/normal.jpg +0 -0
  189. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/scrapers1/specular.jpg +0 -0
  190. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/scrapers2/diffuse.jpg +0 -0
  191. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/scrapers2/normal.jpg +0 -0
  192. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/scrapers2/specular.jpg +0 -0
  193. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/specular.jpg +0 -0
  194. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/start/diffuse.jpg +0 -0
  195. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/start/normal.jpg +0 -0
  196. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/start/specular.jpg +0 -0
  197. package/hexgl-package/HexGL-master/textures.full/tracks/cityscape/start/start.jpg +0 -0
  198. package/index.html +518 -0
  199. package/package.json +13 -4
  200. package/sandboxels-package/sandboxels-1.13.2/.github/CONTRIBUTING.md +10 -0
  201. package/sandboxels-package/sandboxels-1.13.2/.github/FUNDING.yml +13 -0
  202. package/sandboxels-package/sandboxels-1.13.2/.github/SUPPORT.md +9 -0
  203. package/sandboxels-package/sandboxels-1.13.2/404.html +74 -0
  204. package/sandboxels-package/sandboxels-1.13.2/CITATION.cff +42 -0
  205. package/sandboxels-package/sandboxels-1.13.2/CNAME +1 -0
  206. package/sandboxels-package/sandboxels-1.13.2/README.md +47 -0
  207. package/sandboxels-package/sandboxels-1.13.2/SECURITY.md +9 -0
  208. package/sandboxels-package/sandboxels-1.13.2/ad.html +73 -0
  209. package/sandboxels-package/sandboxels-1.13.2/aff.json +3 -0
  210. package/sandboxels-package/sandboxels-1.13.2/archive/first-version.html +234 -0
  211. package/sandboxels-package/sandboxels-1.13.2/archive/second-version.html +1293 -0
  212. package/sandboxels-package/sandboxels-1.13.2/archive/third-version.html +2242 -0
  213. package/sandboxels-package/sandboxels-1.13.2/archive.txt +231 -0
  214. package/sandboxels-package/sandboxels-1.13.2/backgrounds/License.txt +1 -0
  215. package/sandboxels-package/sandboxels-1.13.2/backgrounds/sky.png +0 -0
  216. package/sandboxels-package/sandboxels-1.13.2/backgrounds/sky_dark.png +0 -0
  217. package/sandboxels-package/sandboxels-1.13.2/backgrounds/sky_grass.png +0 -0
  218. package/sandboxels-package/sandboxels-1.13.2/backgrounds/sky_pink.png +0 -0
  219. package/sandboxels-package/sandboxels-1.13.2/backgrounds/sky_purple.png +0 -0
  220. package/sandboxels-package/sandboxels-1.13.2/backgrounds/sky_warm.png +0 -0
  221. package/sandboxels-package/sandboxels-1.13.2/changelog.html +3362 -0
  222. package/sandboxels-package/sandboxels-1.13.2/changelog.txt +3096 -0
  223. package/sandboxels-package/sandboxels-1.13.2/controls.html +191 -0
  224. package/sandboxels-package/sandboxels-1.13.2/controls.txt +65 -0
  225. package/sandboxels-package/sandboxels-1.13.2/education-use.html +109 -0
  226. package/sandboxels-package/sandboxels-1.13.2/feed.rss +30 -0
  227. package/sandboxels-package/sandboxels-1.13.2/feedback.html +89 -0
  228. package/sandboxels-package/sandboxels-1.13.2/fonts/PressStart2P-License-OFL.txt +93 -0
  229. package/sandboxels-package/sandboxels-1.13.2/fonts/PressStart2P-Regular.ttf +0 -0
  230. package/sandboxels-package/sandboxels-1.13.2/fonts/VT323-License-OFL.txt +93 -0
  231. package/sandboxels-package/sandboxels-1.13.2/fonts/VT323-Regular.ttf +0 -0
  232. package/sandboxels-package/sandboxels-1.13.2/fonts/Vietnamese_Pixel.ttf +0 -0
  233. package/sandboxels-package/sandboxels-1.13.2/fonts/fusion-pixel-12px-monospaced-ja.ttf +0 -0
  234. package/sandboxels-package/sandboxels-1.13.2/fonts/fusion-pixel-12px-monospaced-ko.ttf +0 -0
  235. package/sandboxels-package/sandboxels-1.13.2/fonts/fusion-pixel-12px-monospaced-latin.ttf +0 -0
  236. package/sandboxels-package/sandboxels-1.13.2/fonts/fusion-pixel-12px-monospaced-zh_hans.ttf +0 -0
  237. package/sandboxels-package/sandboxels-1.13.2/fonts/fusion-pixel-12px-monospaced-zh_hant.ttf +0 -0
  238. package/sandboxels-package/sandboxels-1.13.2/help.html +122 -0
  239. package/sandboxels-package/sandboxels-1.13.2/icons/80x15.png +0 -0
  240. package/sandboxels-package/sandboxels-1.13.2/icons/88x31.png +0 -0
  241. package/sandboxels-package/sandboxels-1.13.2/icons/android-chrome-192x192.png +0 -0
  242. package/sandboxels-package/sandboxels-1.13.2/icons/android-chrome-384x384.png +0 -0
  243. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-114x114-precomposed.png +0 -0
  244. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-114x114.png +0 -0
  245. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-120x120-precomposed.png +0 -0
  246. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-120x120.png +0 -0
  247. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-144x144-precomposed.png +0 -0
  248. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-144x144.png +0 -0
  249. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-152x152-precomposed.png +0 -0
  250. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-152x152.png +0 -0
  251. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-180x180-precomposed.png +0 -0
  252. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-180x180.png +0 -0
  253. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-57x57-precomposed.png +0 -0
  254. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-57x57.png +0 -0
  255. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-60x60-precomposed.png +0 -0
  256. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-60x60.png +0 -0
  257. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-72x72-precomposed.png +0 -0
  258. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-72x72.png +0 -0
  259. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-76x76-precomposed.png +0 -0
  260. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-76x76.png +0 -0
  261. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon-precomposed.png +0 -0
  262. package/sandboxels-package/sandboxels-1.13.2/icons/apple-touch-icon.png +0 -0
  263. package/sandboxels-package/sandboxels-1.13.2/icons/browserconfig.xml +9 -0
  264. package/sandboxels-package/sandboxels-1.13.2/icons/card.png +0 -0
  265. package/sandboxels-package/sandboxels-1.13.2/icons/cover-3840x1240px-text.png +0 -0
  266. package/sandboxels-package/sandboxels-1.13.2/icons/cover-3840x1240px.png +0 -0
  267. package/sandboxels-package/sandboxels-1.13.2/icons/cover-3840x1240px.webp +0 -0
  268. package/sandboxels-package/sandboxels-1.13.2/icons/cover.png +0 -0
  269. package/sandboxels-package/sandboxels-1.13.2/icons/favicon-16x16.png +0 -0
  270. package/sandboxels-package/sandboxels-1.13.2/icons/favicon-32x32.png +0 -0
  271. package/sandboxels-package/sandboxels-1.13.2/icons/favicon.ico +0 -0
  272. package/sandboxels-package/sandboxels-1.13.2/icons/icon-hd.png +0 -0
  273. package/sandboxels-package/sandboxels-1.13.2/icons/icon.png +0 -0
  274. package/sandboxels-package/sandboxels-1.13.2/icons/index.html +196 -0
  275. package/sandboxels-package/sandboxels-1.13.2/icons/modulator.png +0 -0
  276. package/sandboxels-package/sandboxels-1.13.2/icons/mstile-150x150.png +0 -0
  277. package/sandboxels-package/sandboxels-1.13.2/icons/original-logo-recreated-pixel.png +0 -0
  278. package/sandboxels-package/sandboxels-1.13.2/icons/promo1.png +0 -0
  279. package/sandboxels-package/sandboxels-1.13.2/icons/promo2.png +0 -0
  280. package/sandboxels-package/sandboxels-1.13.2/icons/promo3.png +0 -0
  281. package/sandboxels-package/sandboxels-1.13.2/icons/promo4.png +0 -0
  282. package/sandboxels-package/sandboxels-1.13.2/icons/safari-pinned-tab.svg +107 -0
  283. package/sandboxels-package/sandboxels-1.13.2/icons/site.webmanifest +20 -0
  284. package/sandboxels-package/sandboxels-1.13.2/icons/tall.webp +0 -0
  285. package/sandboxels-package/sandboxels-1.13.2/icons/wallpaper-old.png +0 -0
  286. package/sandboxels-package/sandboxels-1.13.2/icons/wallpaper.png +0 -0
  287. package/sandboxels-package/sandboxels-1.13.2/icons/wallpaper.webp +0 -0
  288. package/sandboxels-package/sandboxels-1.13.2/icons/wordmark-black.png +0 -0
  289. package/sandboxels-package/sandboxels-1.13.2/icons/wordmark-white.png +0 -0
  290. package/sandboxels-package/sandboxels-1.13.2/index.html +21523 -0
  291. package/sandboxels-package/sandboxels-1.13.2/lang/README.txt +5 -0
  292. package/sandboxels-package/sandboxels-1.13.2/lang/af.json +1 -0
  293. package/sandboxels-package/sandboxels-1.13.2/lang/ar.json +1 -0
  294. package/sandboxels-package/sandboxels-1.13.2/lang/ar_sy.json +1 -0
  295. package/sandboxels-package/sandboxels-1.13.2/lang/bn.json +1 -0
  296. package/sandboxels-package/sandboxels-1.13.2/lang/ca.json +1 -0
  297. package/sandboxels-package/sandboxels-1.13.2/lang/cs.json +1 -0
  298. package/sandboxels-package/sandboxels-1.13.2/lang/da.json +1 -0
  299. package/sandboxels-package/sandboxels-1.13.2/lang/de.json +1 -0
  300. package/sandboxels-package/sandboxels-1.13.2/lang/el.json +1 -0
  301. package/sandboxels-package/sandboxels-1.13.2/lang/en.json +1 -0
  302. package/sandboxels-package/sandboxels-1.13.2/lang/en_au.json +1 -0
  303. package/sandboxels-package/sandboxels-1.13.2/lang/en_ca.json +1 -0
  304. package/sandboxels-package/sandboxels-1.13.2/lang/en_gb.json +1 -0
  305. package/sandboxels-package/sandboxels-1.13.2/lang/es.json +1 -0
  306. package/sandboxels-package/sandboxels-1.13.2/lang/et.json +1 -0
  307. package/sandboxels-package/sandboxels-1.13.2/lang/fi.json +1 -0
  308. package/sandboxels-package/sandboxels-1.13.2/lang/fil.json +1 -0
  309. package/sandboxels-package/sandboxels-1.13.2/lang/fr.json +1 -0
  310. package/sandboxels-package/sandboxels-1.13.2/lang/gen.js +21 -0
  311. package/sandboxels-package/sandboxels-1.13.2/lang/he.json +1 -0
  312. package/sandboxels-package/sandboxels-1.13.2/lang/hu.json +1 -0
  313. package/sandboxels-package/sandboxels-1.13.2/lang/id.json +1 -0
  314. package/sandboxels-package/sandboxels-1.13.2/lang/it.json +1 -0
  315. package/sandboxels-package/sandboxels-1.13.2/lang/ja.json +1 -0
  316. package/sandboxels-package/sandboxels-1.13.2/lang/ko.json +1 -0
  317. package/sandboxels-package/sandboxels-1.13.2/lang/la.json +1 -0
  318. package/sandboxels-package/sandboxels-1.13.2/lang/ne.json +1 -0
  319. package/sandboxels-package/sandboxels-1.13.2/lang/nl.json +1 -0
  320. package/sandboxels-package/sandboxels-1.13.2/lang/no.json +1 -0
  321. package/sandboxels-package/sandboxels-1.13.2/lang/pl.json +1 -0
  322. package/sandboxels-package/sandboxels-1.13.2/lang/pt.json +1 -0
  323. package/sandboxels-package/sandboxels-1.13.2/lang/pt_br.json +1 -0
  324. package/sandboxels-package/sandboxels-1.13.2/lang/qha.json +1 -0
  325. package/sandboxels-package/sandboxels-1.13.2/lang/qvp.json +1 -0
  326. package/sandboxels-package/sandboxels-1.13.2/lang/ro.json +1 -0
  327. package/sandboxels-package/sandboxels-1.13.2/lang/ru.json +1 -0
  328. package/sandboxels-package/sandboxels-1.13.2/lang/sr.json +1 -0
  329. package/sandboxels-package/sandboxels-1.13.2/lang/sv.json +1 -0
  330. package/sandboxels-package/sandboxels-1.13.2/lang/template.json +677 -0
  331. package/sandboxels-package/sandboxels-1.13.2/lang/th.json +1 -0
  332. package/sandboxels-package/sandboxels-1.13.2/lang/tok.json +1 -0
  333. package/sandboxels-package/sandboxels-1.13.2/lang/tok_old.json +543 -0
  334. package/sandboxels-package/sandboxels-1.13.2/lang/tr.json +1 -0
  335. package/sandboxels-package/sandboxels-1.13.2/lang/uk.json +1 -0
  336. package/sandboxels-package/sandboxels-1.13.2/lang/vi.json +1 -0
  337. package/sandboxels-package/sandboxels-1.13.2/lang/xem.json +1 -0
  338. package/sandboxels-package/sandboxels-1.13.2/lang/zh_cn.json +1 -0
  339. package/sandboxels-package/sandboxels-1.13.2/lang/zh_hant.json +1 -0
  340. package/sandboxels-package/sandboxels-1.13.2/license.txt +48 -0
  341. package/sandboxels-package/sandboxels-1.13.2/lite.html +1599 -0
  342. package/sandboxels-package/sandboxels-1.13.2/manifest.json +33 -0
  343. package/sandboxels-package/sandboxels-1.13.2/media.html +134 -0
  344. package/sandboxels-package/sandboxels-1.13.2/mobile-use.html +110 -0
  345. package/sandboxels-package/sandboxels-1.13.2/mod-list.html +535 -0
  346. package/sandboxels-package/sandboxels-1.13.2/mods/1.10example.js +118 -0
  347. package/sandboxels-package/sandboxels-1.13.2/mods/10kelements.js +172 -0
  348. package/sandboxels-package/sandboxels-1.13.2/mods/3pms_mod.js +144 -0
  349. package/sandboxels-package/sandboxels-1.13.2/mods/AnonymousWorldgenLibrary.js +55 -0
  350. package/sandboxels-package/sandboxels-1.13.2/mods/Batteries.js +288 -0
  351. package/sandboxels-package/sandboxels-1.13.2/mods/BlueStuff.js +681 -0
  352. package/sandboxels-package/sandboxels-1.13.2/mods/CandyCanes.js +15 -0
  353. package/sandboxels-package/sandboxels-1.13.2/mods/CandyCorn.js +8 -0
  354. package/sandboxels-package/sandboxels-1.13.2/mods/CherrySoda.js +77 -0
  355. package/sandboxels-package/sandboxels-1.13.2/mods/EasterEggs.js +1 -0
  356. package/sandboxels-package/sandboxels-1.13.2/mods/ExtraMachines.js +2338 -0
  357. package/sandboxels-package/sandboxels-1.13.2/mods/FoodFoodFood.js +114 -0
  358. package/sandboxels-package/sandboxels-1.13.2/mods/Gemstones.js +80 -0
  359. package/sandboxels-package/sandboxels-1.13.2/mods/GrapeSoda.js +141 -0
  360. package/sandboxels-package/sandboxels-1.13.2/mods/Humanitize.js +959 -0
  361. package/sandboxels-package/sandboxels-1.13.2/mods/Inators.js +108 -0
  362. package/sandboxels-package/sandboxels-1.13.2/mods/IreThings.js +169 -0
  363. package/sandboxels-package/sandboxels-1.13.2/mods/Lab.js +397 -0
  364. package/sandboxels-package/sandboxels-1.13.2/mods/LimesAdditions.js +401 -0
  365. package/sandboxels-package/sandboxels-1.13.2/mods/MarkusFoodMod.js +334 -0
  366. package/sandboxels-package/sandboxels-1.13.2/mods/Mucho_frio_y_Calor.js +16 -0
  367. package/sandboxels-package/sandboxels-1.13.2/mods/Natural_disasters.js +207 -0
  368. package/sandboxels-package/sandboxels-1.13.2/mods/Neutronium Mod.js +1228 -0
  369. package/sandboxels-package/sandboxels-1.13.2/mods/PRNGworldgenlib.js +526 -0
  370. package/sandboxels-package/sandboxels-1.13.2/mods/Quicksand_one.js +1355 -0
  371. package/sandboxels-package/sandboxels-1.13.2/mods/RF_transmitter_receiver.js +62 -0
  372. package/sandboxels-package/sandboxels-1.13.2/mods/Random_quicksands.js +932 -0
  373. package/sandboxels-package/sandboxels-1.13.2/mods/Science_mod.js +1791 -0
  374. package/sandboxels-package/sandboxels-1.13.2/mods/Shroomboxels.js +71 -0
  375. package/sandboxels-package/sandboxels-1.13.2/mods/SuperASAX_Funny_Mod.js +297 -0
  376. package/sandboxels-package/sandboxels-1.13.2/mods/Temperature+.js +47 -0
  377. package/sandboxels-package/sandboxels-1.13.2/mods/Thread.js +180 -0
  378. package/sandboxels-package/sandboxels-1.13.2/mods/UAMM.js +502 -0
  379. package/sandboxels-package/sandboxels-1.13.2/mods/Ultra_Steel.js +61 -0
  380. package/sandboxels-package/sandboxels-1.13.2/mods/UwUify.js +87 -0
  381. package/sandboxels-package/sandboxels-1.13.2/mods/VCR_OSD_MONO.ttf +0 -0
  382. package/sandboxels-package/sandboxels-1.13.2/mods/Vegan.js +255 -0
  383. package/sandboxels-package/sandboxels-1.13.2/mods/WhisperingTheory.js +213 -0
  384. package/sandboxels-package/sandboxels-1.13.2/mods/aChefsDream.js +8159 -0
  385. package/sandboxels-package/sandboxels-1.13.2/mods/aChefsDream2.js +815 -0
  386. package/sandboxels-package/sandboxels-1.13.2/mods/aChefsDream_beta.js +12 -0
  387. package/sandboxels-package/sandboxels-1.13.2/mods/aScientistsWish.js +1195 -0
  388. package/sandboxels-package/sandboxels-1.13.2/mods/a_bundle_of_tests.js +417 -0
  389. package/sandboxels-package/sandboxels-1.13.2/mods/a_mod_by_alice.js +46043 -0
  390. package/sandboxels-package/sandboxels-1.13.2/mods/acid_and_shapes.js +1 -0
  391. package/sandboxels-package/sandboxels-1.13.2/mods/adaceythings.js +343 -0
  392. package/sandboxels-package/sandboxels-1.13.2/mods/adjustablepixelsize.js +28 -0
  393. package/sandboxels-package/sandboxels-1.13.2/mods/advanced_colonies.js +146 -0
  394. package/sandboxels-package/sandboxels-1.13.2/mods/advancedbugs.js +37 -0
  395. package/sandboxels-package/sandboxels-1.13.2/mods/aircrafts.js +260 -0
  396. package/sandboxels-package/sandboxels-1.13.2/mods/alchem.js +372 -0
  397. package/sandboxels-package/sandboxels-1.13.2/mods/alchemy.js +69 -0
  398. package/sandboxels-package/sandboxels-1.13.2/mods/alcohol.js +113 -0
  399. package/sandboxels-package/sandboxels-1.13.2/mods/alkahest.js +33 -0
  400. package/sandboxels-package/sandboxels-1.13.2/mods/alkali_metal.js +308 -0
  401. package/sandboxels-package/sandboxels-1.13.2/mods/all_around_fillers.js +73 -0
  402. package/sandboxels-package/sandboxels-1.13.2/mods/all_stain.js +7 -0
  403. package/sandboxels-package/sandboxels-1.13.2/mods/allliquids.js +24 -0
  404. package/sandboxels-package/sandboxels-1.13.2/mods/amogus.js +69 -0
  405. package/sandboxels-package/sandboxels-1.13.2/mods/anmm.js +566 -0
  406. package/sandboxels-package/sandboxels-1.13.2/mods/ants.js +137 -0
  407. package/sandboxels-package/sandboxels-1.13.2/mods/apioforms_pre.js +238 -0
  408. package/sandboxels-package/sandboxels-1.13.2/mods/applestuff.js +80 -0
  409. package/sandboxels-package/sandboxels-1.13.2/mods/asciiboxels.js +231 -0
  410. package/sandboxels-package/sandboxels-1.13.2/mods/aussieAdditions.js +123 -0
  411. package/sandboxels-package/sandboxels-1.13.2/mods/baby.js +65 -0
  412. package/sandboxels-package/sandboxels-1.13.2/mods/background_changer.js +59 -0
  413. package/sandboxels-package/sandboxels-1.13.2/mods/bacteria_mod.js +121 -0
  414. package/sandboxels-package/sandboxels-1.13.2/mods/bananas.js +543 -0
  415. package/sandboxels-package/sandboxels-1.13.2/mods/barf_mod.js +42 -0
  416. package/sandboxels-package/sandboxels-1.13.2/mods/barista.js +209 -0
  417. package/sandboxels-package/sandboxels-1.13.2/mods/bere.js +85 -0
  418. package/sandboxels-package/sandboxels-1.13.2/mods/betterMenuScreens.js +279 -0
  419. package/sandboxels-package/sandboxels-1.13.2/mods/betterModManager.js +174 -0
  420. package/sandboxels-package/sandboxels-1.13.2/mods/betterSettings.js +304 -0
  421. package/sandboxels-package/sandboxels-1.13.2/mods/betterStats.js +55 -0
  422. package/sandboxels-package/sandboxels-1.13.2/mods/better_smooth_water.js +6 -0
  423. package/sandboxels-package/sandboxels-1.13.2/mods/betterelec.js +51 -0
  424. package/sandboxels-package/sandboxels-1.13.2/mods/bettergraygoo.js +1 -0
  425. package/sandboxels-package/sandboxels-1.13.2/mods/bettermetalscrap.js +37 -0
  426. package/sandboxels-package/sandboxels-1.13.2/mods/bf.js +394 -0
  427. package/sandboxels-package/sandboxels-1.13.2/mods/bfdi.js +145 -0
  428. package/sandboxels-package/sandboxels-1.13.2/mods/bigger_star_spawners.js +198 -0
  429. package/sandboxels-package/sandboxels-1.13.2/mods/biology.js +8694 -0
  430. package/sandboxels-package/sandboxels-1.13.2/mods/bioooze_and_pyrogens.js +264 -0
  431. package/sandboxels-package/sandboxels-1.13.2/mods/black_hole.js +43 -0
  432. package/sandboxels-package/sandboxels-1.13.2/mods/blocks.js +164 -0
  433. package/sandboxels-package/sandboxels-1.13.2/mods/boiling_things.js +540 -0
  434. package/sandboxels-package/sandboxels-1.13.2/mods/bojithekings_mod.js +377 -0
  435. package/sandboxels-package/sandboxels-1.13.2/mods/boompaste.js +76 -0
  436. package/sandboxels-package/sandboxels-1.13.2/mods/borders.js +76 -0
  437. package/sandboxels-package/sandboxels-1.13.2/mods/bouncing_balls.js +703 -0
  438. package/sandboxels-package/sandboxels-1.13.2/mods/broken_mod_test.js +1 -0
  439. package/sandboxels-package/sandboxels-1.13.2/mods/building.js +154 -0
  440. package/sandboxels-package/sandboxels-1.13.2/mods/buildingreplicator.js +210 -0
  441. package/sandboxels-package/sandboxels-1.13.2/mods/c_fighter_jet.js +449 -0
  442. package/sandboxels-package/sandboxels-1.13.2/mods/cannibal_cooking.js +620 -0
  443. package/sandboxels-package/sandboxels-1.13.2/mods/cash_n_more.js +58 -0
  444. package/sandboxels-package/sandboxels-1.13.2/mods/cat.js +100 -0
  445. package/sandboxels-package/sandboxels-1.13.2/mods/cells.js +376 -0
  446. package/sandboxels-package/sandboxels-1.13.2/mods/chalcopyrite.js +124 -0
  447. package/sandboxels-package/sandboxels-1.13.2/mods/chalk.js +499 -0
  448. package/sandboxels-package/sandboxels-1.13.2/mods/change.js +58 -0
  449. package/sandboxels-package/sandboxels-1.13.2/mods/changePixelDebug.js +9 -0
  450. package/sandboxels-package/sandboxels-1.13.2/mods/changeTempReactionParameter.js +73 -0
  451. package/sandboxels-package/sandboxels-1.13.2/mods/chaos.js +32 -0
  452. package/sandboxels-package/sandboxels-1.13.2/mods/charsonsmodbeta.js +494 -0
  453. package/sandboxels-package/sandboxels-1.13.2/mods/charsonsmoduno.js +2116 -0
  454. package/sandboxels-package/sandboxels-1.13.2/mods/chem.js +7877 -0
  455. package/sandboxels-package/sandboxels-1.13.2/mods/chemFormula.js +44 -0
  456. package/sandboxels-package/sandboxels-1.13.2/mods/chemFormulas.json +549 -0
  457. package/sandboxels-package/sandboxels-1.13.2/mods/cherries.js +543 -0
  458. package/sandboxels-package/sandboxels-1.13.2/mods/chess.js +1463 -0
  459. package/sandboxels-package/sandboxels-1.13.2/mods/children.js +14 -0
  460. package/sandboxels-package/sandboxels-1.13.2/mods/circuitcore.js +1914 -0
  461. package/sandboxels-package/sandboxels-1.13.2/mods/circuitcore_displays.js +157 -0
  462. package/sandboxels-package/sandboxels-1.13.2/mods/citybuilding.js +193 -0
  463. package/sandboxels-package/sandboxels-1.13.2/mods/classic_explosives.js +62 -0
  464. package/sandboxels-package/sandboxels-1.13.2/mods/classic_textures.js +196 -0
  465. package/sandboxels-package/sandboxels-1.13.2/mods/clf3.js +86 -0
  466. package/sandboxels-package/sandboxels-1.13.2/mods/clone_liquid.js +22 -0
  467. package/sandboxels-package/sandboxels-1.13.2/mods/clouds.js +103 -0
  468. package/sandboxels-package/sandboxels-1.13.2/mods/cmur.js +5195 -0
  469. package/sandboxels-package/sandboxels-1.13.2/mods/code_library.js +1827 -0
  470. package/sandboxels-package/sandboxels-1.13.2/mods/coffee.js +228 -0
  471. package/sandboxels-package/sandboxels-1.13.2/mods/cold_liquid_explosion.js +20 -0
  472. package/sandboxels-package/sandboxels-1.13.2/mods/cold_opposites.js +66 -0
  473. package/sandboxels-package/sandboxels-1.13.2/mods/coldblooded.js +729 -0
  474. package/sandboxels-package/sandboxels-1.13.2/mods/collab_mod.js +253 -0
  475. package/sandboxels-package/sandboxels-1.13.2/mods/colonies.js +574 -0
  476. package/sandboxels-package/sandboxels-1.13.2/mods/colorLED.js +38 -0
  477. package/sandboxels-package/sandboxels-1.13.2/mods/color_everything.js +3 -0
  478. package/sandboxels-package/sandboxels-1.13.2/mods/color_tools.js +297 -0
  479. package/sandboxels-package/sandboxels-1.13.2/mods/colored_lightbulbs.js +44 -0
  480. package/sandboxels-package/sandboxels-1.13.2/mods/combustion.js +416 -0
  481. package/sandboxels-package/sandboxels-1.13.2/mods/community_desserts.js +829 -0
  482. package/sandboxels-package/sandboxels-1.13.2/mods/content.js +131 -0
  483. package/sandboxels-package/sandboxels-1.13.2/mods/controllable_pixel.js +75 -0
  484. package/sandboxels-package/sandboxels-1.13.2/mods/controllable_pixel_test.js +161 -0
  485. package/sandboxels-package/sandboxels-1.13.2/mods/conveyance.js +95 -0
  486. package/sandboxels-package/sandboxels-1.13.2/mods/cooked_apple.js +26 -0
  487. package/sandboxels-package/sandboxels-1.13.2/mods/cookie_clicker.js +943 -0
  488. package/sandboxels-package/sandboxels-1.13.2/mods/cookingnstuff.js +1 -0
  489. package/sandboxels-package/sandboxels-1.13.2/mods/cool_tools.js +35 -0
  490. package/sandboxels-package/sandboxels-1.13.2/mods/copy_canvas.js +9 -0
  491. package/sandboxels-package/sandboxels-1.13.2/mods/copypaste.js +100 -0
  492. package/sandboxels-package/sandboxels-1.13.2/mods/coresbyp.js +90 -0
  493. package/sandboxels-package/sandboxels-1.13.2/mods/cpt_alt.js +241 -0
  494. package/sandboxels-package/sandboxels-1.13.2/mods/crimson.js +424 -0
  495. package/sandboxels-package/sandboxels-1.13.2/mods/cs_expanded.js +31 -0
  496. package/sandboxels-package/sandboxels-1.13.2/mods/cubesstuff.js +3329 -0
  497. package/sandboxels-package/sandboxels-1.13.2/mods/currency.js +246 -0
  498. package/sandboxels-package/sandboxels-1.13.2/mods/cursed_shader_by_jayd.js +90 -0
  499. package/sandboxels-package/sandboxels-1.13.2/mods/cursor.js +3 -0
  500. package/sandboxels-package/sandboxels-1.13.2/mods/cursor_shapes.js +149 -0
  501. package/sandboxels-package/sandboxels-1.13.2/mods/customBackground.js +45 -0
  502. package/sandboxels-package/sandboxels-1.13.2/mods/customexplosion.js +110 -0
  503. package/sandboxels-package/sandboxels-1.13.2/mods/customtemptools.js +50 -0
  504. package/sandboxels-package/sandboxels-1.13.2/mods/dalgonacandy.js +41 -0
  505. package/sandboxels-package/sandboxels-1.13.2/mods/datawire.js +238 -0
  506. package/sandboxels-package/sandboxels-1.13.2/mods/date_test.js +268 -0
  507. package/sandboxels-package/sandboxels-1.13.2/mods/death_count.js +35 -0
  508. package/sandboxels-package/sandboxels-1.13.2/mods/debris.js +75 -0
  509. package/sandboxels-package/sandboxels-1.13.2/mods/debrisable.js +1136 -0
  510. package/sandboxels-package/sandboxels-1.13.2/mods/debugRework.js +169 -0
  511. package/sandboxels-package/sandboxels-1.13.2/mods/delete_all_of_element.js +17 -0
  512. package/sandboxels-package/sandboxels-1.13.2/mods/deneme.js +70 -0
  513. package/sandboxels-package/sandboxels-1.13.2/mods/dependency_test.js +13 -0
  514. package/sandboxels-package/sandboxels-1.13.2/mods/descriptions.js +17 -0
  515. package/sandboxels-package/sandboxels-1.13.2/mods/devsnacks.js +193 -0
  516. package/sandboxels-package/sandboxels-1.13.2/mods/devtests.js +278 -0
  517. package/sandboxels-package/sandboxels-1.13.2/mods/discord_port.js +36 -0
  518. package/sandboxels-package/sandboxels-1.13.2/mods/doElectricity changes.js +55 -0
  519. package/sandboxels-package/sandboxels-1.13.2/mods/dogs.js +85 -0
  520. package/sandboxels-package/sandboxels-1.13.2/mods/doom.js +935 -0
  521. package/sandboxels-package/sandboxels-1.13.2/mods/doomsday.js +56 -0
  522. package/sandboxels-package/sandboxels-1.13.2/mods/drawPixels_change_test.js +39 -0
  523. package/sandboxels-package/sandboxels-1.13.2/mods/dried_food.js +38 -0
  524. package/sandboxels-package/sandboxels-1.13.2/mods/drill.js +261 -0
  525. package/sandboxels-package/sandboxels-1.13.2/mods/drills.js +760 -0
  526. package/sandboxels-package/sandboxels-1.13.2/mods/easysurvival.js +917 -0
  527. package/sandboxels-package/sandboxels-1.13.2/mods/edible_everything.js +7 -0
  528. package/sandboxels-package/sandboxels-1.13.2/mods/editTools.js +608 -0
  529. package/sandboxels-package/sandboxels-1.13.2/mods/eklegems.js +1313 -0
  530. package/sandboxels-package/sandboxels-1.13.2/mods/electricityTest.js +42 -0
  531. package/sandboxels-package/sandboxels-1.13.2/mods/elem3.js +352316 -0
  532. package/sandboxels-package/sandboxels-1.13.2/mods/elementEraser.js +40 -0
  533. package/sandboxels-package/sandboxels-1.13.2/mods/element_UI.js +140 -0
  534. package/sandboxels-package/sandboxels-1.13.2/mods/elementreplacer.js +12 -0
  535. package/sandboxels-package/sandboxels-1.13.2/mods/elementsManager.js +1212 -0
  536. package/sandboxels-package/sandboxels-1.13.2/mods/empty.js +7 -0
  537. package/sandboxels-package/sandboxels-1.13.2/mods/evenmoretemptools.js +42 -0
  538. package/sandboxels-package/sandboxels-1.13.2/mods/example_mod.js +89 -0
  539. package/sandboxels-package/sandboxels-1.13.2/mods/example_mod_old.js +84 -0
  540. package/sandboxels-package/sandboxels-1.13.2/mods/exoplanet.js +220 -0
  541. package/sandboxels-package/sandboxels-1.13.2/mods/explodeAtPlus.js +138 -0
  542. package/sandboxels-package/sandboxels-1.13.2/mods/explosionsound.js +19 -0
  543. package/sandboxels-package/sandboxels-1.13.2/mods/extra_element_info.js +79 -0
  544. package/sandboxels-package/sandboxels-1.13.2/mods/extrasaveslots.js +42 -0
  545. package/sandboxels-package/sandboxels-1.13.2/mods/fans.js +204 -0
  546. package/sandboxels-package/sandboxels-1.13.2/mods/fantastic_creatures.js +198 -0
  547. package/sandboxels-package/sandboxels-1.13.2/mods/fantasy_elements.js +800 -0
  548. package/sandboxels-package/sandboxels-1.13.2/mods/fast_lightmap.js +339 -0
  549. package/sandboxels-package/sandboxels-1.13.2/mods/fey_and_more.js +1678 -0
  550. package/sandboxels-package/sandboxels-1.13.2/mods/fill_script.js +42 -0
  551. package/sandboxels-package/sandboxels-1.13.2/mods/find.js +115 -0
  552. package/sandboxels-package/sandboxels-1.13.2/mods/fine_tuned_cloner.js +121 -0
  553. package/sandboxels-package/sandboxels-1.13.2/mods/fire_extinguisher.js +128 -0
  554. package/sandboxels-package/sandboxels-1.13.2/mods/fire_mod.js +565 -0
  555. package/sandboxels-package/sandboxels-1.13.2/mods/fire_slime.js +68 -0
  556. package/sandboxels-package/sandboxels-1.13.2/mods/fishin.js +519 -0
  557. package/sandboxels-package/sandboxels-1.13.2/mods/fission.js +68 -0
  558. package/sandboxels-package/sandboxels-1.13.2/mods/fission_physics.js +86 -0
  559. package/sandboxels-package/sandboxels-1.13.2/mods/fiveys_stuff.js +119 -0
  560. package/sandboxels-package/sandboxels-1.13.2/mods/flesh_infection.js +645 -0
  561. package/sandboxels-package/sandboxels-1.13.2/mods/flipflop.js +36 -0
  562. package/sandboxels-package/sandboxels-1.13.2/mods/flowers_and_forests.js +468 -0
  563. package/sandboxels-package/sandboxels-1.13.2/mods/flying_fish.js +49 -0
  564. package/sandboxels-package/sandboxels-1.13.2/mods/food_mods.js +15 -0
  565. package/sandboxels-package/sandboxels-1.13.2/mods/foodgalore +100 -0
  566. package/sandboxels-package/sandboxels-1.13.2/mods/fools+.js +299 -0
  567. package/sandboxels-package/sandboxels-1.13.2/mods/fools.js +99 -0
  568. package/sandboxels-package/sandboxels-1.13.2/mods/fools24.js +842 -0
  569. package/sandboxels-package/sandboxels-1.13.2/mods/fools25.js +350 -0
  570. package/sandboxels-package/sandboxels-1.13.2/mods/fossils.js +676 -0
  571. package/sandboxels-package/sandboxels-1.13.2/mods/fractals.js +156 -0
  572. package/sandboxels-package/sandboxels-1.13.2/mods/franklin.js +44 -0
  573. package/sandboxels-package/sandboxels-1.13.2/mods/freeTPS.js +19 -0
  574. package/sandboxels-package/sandboxels-1.13.2/mods/fueled_generators.js +131 -0
  575. package/sandboxels-package/sandboxels-1.13.2/mods/funny elements 2022-11-15.js +84 -0
  576. package/sandboxels-package/sandboxels-1.13.2/mods/funny_liquid.js +618 -0
  577. package/sandboxels-package/sandboxels-1.13.2/mods/funny_liquid_2.js +322 -0
  578. package/sandboxels-package/sandboxels-1.13.2/mods/funny_liquid_3.js +254 -0
  579. package/sandboxels-package/sandboxels-1.13.2/mods/funny_solid.js +163 -0
  580. package/sandboxels-package/sandboxels-1.13.2/mods/funnynames.js +320 -0
  581. package/sandboxels-package/sandboxels-1.13.2/mods/fwibblen.js +69 -0
  582. package/sandboxels-package/sandboxels-1.13.2/mods/gambling.js +94 -0
  583. package/sandboxels-package/sandboxels-1.13.2/mods/gameOfLife.js +83 -0
  584. package/sandboxels-package/sandboxels-1.13.2/mods/garn47.js +325 -0
  585. package/sandboxels-package/sandboxels-1.13.2/mods/gasdecay.js +31 -0
  586. package/sandboxels-package/sandboxels-1.13.2/mods/generative_mods.js +2479 -0
  587. package/sandboxels-package/sandboxels-1.13.2/mods/generator_prompt.js +166 -0
  588. package/sandboxels-package/sandboxels-1.13.2/mods/genetics.js +4038 -0
  589. package/sandboxels-package/sandboxels-1.13.2/mods/glenn_gases.js +411 -0
  590. package/sandboxels-package/sandboxels-1.13.2/mods/glow.js +130 -0
  591. package/sandboxels-package/sandboxels-1.13.2/mods/gradient_background_support.js +21 -0
  592. package/sandboxels-package/sandboxels-1.13.2/mods/graphite.js +460 -0
  593. package/sandboxels-package/sandboxels-1.13.2/mods/grav_mudstones.js +382 -0
  594. package/sandboxels-package/sandboxels-1.13.2/mods/gravity.js +40 -0
  595. package/sandboxels-package/sandboxels-1.13.2/mods/gravity_test.js +51 -0
  596. package/sandboxels-package/sandboxels-1.13.2/mods/greenitemsandmore.js +183 -0
  597. package/sandboxels-package/sandboxels-1.13.2/mods/guided_rocket.js +106 -0
  598. package/sandboxels-package/sandboxels-1.13.2/mods/halogen.js +384 -0
  599. package/sandboxels-package/sandboxels-1.13.2/mods/haseulite.js +1673 -0
  600. package/sandboxels-package/sandboxels-1.13.2/mods/heatglow.js +74 -0
  601. package/sandboxels-package/sandboxels-1.13.2/mods/heatshield.js +30 -0
  602. package/sandboxels-package/sandboxels-1.13.2/mods/hexagon.js +45 -0
  603. package/sandboxels-package/sandboxels-1.13.2/mods/hidden_ground.js +42 -0
  604. package/sandboxels-package/sandboxels-1.13.2/mods/hideandshowtools.js +18 -0
  605. package/sandboxels-package/sandboxels-1.13.2/mods/human_edit.js +725 -0
  606. package/sandboxels-package/sandboxels-1.13.2/mods/human_friendly_design.js +899 -0
  607. package/sandboxels-package/sandboxels-1.13.2/mods/humans.js +203 -0
  608. package/sandboxels-package/sandboxels-1.13.2/mods/hydroid.js +224 -0
  609. package/sandboxels-package/sandboxels-1.13.2/mods/icb.js +32 -0
  610. package/sandboxels-package/sandboxels-1.13.2/mods/iean.js +135 -0
  611. package/sandboxels-package/sandboxels-1.13.2/mods/immune.js +199 -0
  612. package/sandboxels-package/sandboxels-1.13.2/mods/incinerators.js +29 -0
  613. package/sandboxels-package/sandboxels-1.13.2/mods/industry.js +308 -0
  614. package/sandboxels-package/sandboxels-1.13.2/mods/infLiqLight.js +8 -0
  615. package/sandboxels-package/sandboxels-1.13.2/mods/injector.js +450 -0
  616. package/sandboxels-package/sandboxels-1.13.2/mods/insane_random_events.js +123 -0
  617. package/sandboxels-package/sandboxels-1.13.2/mods/invertscroll.js +8 -0
  618. package/sandboxels-package/sandboxels-1.13.2/mods/invisible_things.js +83 -0
  619. package/sandboxels-package/sandboxels-1.13.2/mods/iocalfaeus_clones.js +100 -0
  620. package/sandboxels-package/sandboxels-1.13.2/mods/jaydsfunctions.js +187 -0
  621. package/sandboxels-package/sandboxels-1.13.2/mods/jaydsmods.js +89 -0
  622. package/sandboxels-package/sandboxels-1.13.2/mods/jaydstuff.js +783 -0
  623. package/sandboxels-package/sandboxels-1.13.2/mods/junction.js +50 -0
  624. package/sandboxels-package/sandboxels-1.13.2/mods/ketchup_mod.js +526 -0
  625. package/sandboxels-package/sandboxels-1.13.2/mods/kopalsBar.js +175 -0
  626. package/sandboxels-package/sandboxels-1.13.2/mods/kopalstuff.js +541 -0
  627. package/sandboxels-package/sandboxels-1.13.2/mods/lactose_intolerance_and_celiac.js +18 -0
  628. package/sandboxels-package/sandboxels-1.13.2/mods/laetium.js +328 -0
  629. package/sandboxels-package/sandboxels-1.13.2/mods/lattice_filler.js +29 -0
  630. package/sandboxels-package/sandboxels-1.13.2/mods/lemonade.js +71 -0
  631. package/sandboxels-package/sandboxels-1.13.2/mods/libhooktick.js +49 -0
  632. package/sandboxels-package/sandboxels-1.13.2/mods/libpacman-v1.js +61 -0
  633. package/sandboxels-package/sandboxels-1.13.2/mods/libpixeltracking.js +29 -0
  634. package/sandboxels-package/sandboxels-1.13.2/mods/library_test.js +5 -0
  635. package/sandboxels-package/sandboxels-1.13.2/mods/life_eater.js +169 -0
  636. package/sandboxels-package/sandboxels-1.13.2/mods/light.js +218 -0
  637. package/sandboxels-package/sandboxels-1.13.2/mods/lighting_test.js +79 -0
  638. package/sandboxels-package/sandboxels-1.13.2/mods/lightmap.js +382 -0
  639. package/sandboxels-package/sandboxels-1.13.2/mods/limewater.js +75 -0
  640. package/sandboxels-package/sandboxels-1.13.2/mods/liquid_energy.js +294 -0
  641. package/sandboxels-package/sandboxels-1.13.2/mods/liquid_mixing.js +184 -0
  642. package/sandboxels-package/sandboxels-1.13.2/mods/liquid_void.js +29 -0
  643. package/sandboxels-package/sandboxels-1.13.2/mods/littlejohnny.js +72 -0
  644. package/sandboxels-package/sandboxels-1.13.2/mods/lizard_mod.js +91 -0
  645. package/sandboxels-package/sandboxels-1.13.2/mods/logicgates.js +482 -0
  646. package/sandboxels-package/sandboxels-1.13.2/mods/lone_urea.js +69 -0
  647. package/sandboxels-package/sandboxels-1.13.2/mods/lost_souls.js +177 -0
  648. package/sandboxels-package/sandboxels-1.13.2/mods/lye.js +34 -0
  649. package/sandboxels-package/sandboxels-1.13.2/mods/machines.js +293 -0
  650. package/sandboxels-package/sandboxels-1.13.2/mods/manyMoreThemes.js +67 -0
  651. package/sandboxels-package/sandboxels-1.13.2/mods/mars.js +473 -0
  652. package/sandboxels-package/sandboxels-1.13.2/mods/maxColorOffset.js +54 -0
  653. package/sandboxels-package/sandboxels-1.13.2/mods/maze.js +71 -0
  654. package/sandboxels-package/sandboxels-1.13.2/mods/meat_rockets.js +70 -0
  655. package/sandboxels-package/sandboxels-1.13.2/mods/memelists.js +17 -0
  656. package/sandboxels-package/sandboxels-1.13.2/mods/metals.js +791 -0
  657. package/sandboxels-package/sandboxels-1.13.2/mods/minecraft.js +818 -0
  658. package/sandboxels-package/sandboxels-1.13.2/mods/minesweeper.js +100 -0
  659. package/sandboxels-package/sandboxels-1.13.2/mods/miscellaneous_elements.js +278 -0
  660. package/sandboxels-package/sandboxels-1.13.2/mods/miscible_psoup_and_birthpool.js +7 -0
  661. package/sandboxels-package/sandboxels-1.13.2/mods/mix.js +65 -0
  662. package/sandboxels-package/sandboxels-1.13.2/mods/mixture.js +714 -0
  663. package/sandboxels-package/sandboxels-1.13.2/mods/mixtureII.js +440 -0
  664. package/sandboxels-package/sandboxels-1.13.2/mods/mjsstuff.js +233 -0
  665. package/sandboxels-package/sandboxels-1.13.2/mods/mobile_keybinds.js +33 -0
  666. package/sandboxels-package/sandboxels-1.13.2/mods/mobile_shift.js +336 -0
  667. package/sandboxels-package/sandboxels-1.13.2/mods/mobs.js +5147 -0
  668. package/sandboxels-package/sandboxels-1.13.2/mods/mod_for_mnem.js +1 -0
  669. package/sandboxels-package/sandboxels-1.13.2/mods/modlangs.js +53 -0
  670. package/sandboxels-package/sandboxels-1.13.2/mods/moreViews.js +473 -0
  671. package/sandboxels-package/sandboxels-1.13.2/mods/more_art_states.js +89 -0
  672. package/sandboxels-package/sandboxels-1.13.2/mods/more_breaking.js +189 -0
  673. package/sandboxels-package/sandboxels-1.13.2/mods/more_disasters.js +497 -0
  674. package/sandboxels-package/sandboxels-1.13.2/mods/more_gold.js +115 -0
  675. package/sandboxels-package/sandboxels-1.13.2/mods/morebombs.js +1143 -0
  676. package/sandboxels-package/sandboxels-1.13.2/mods/morechemistry.js +1764 -0
  677. package/sandboxels-package/sandboxels-1.13.2/mods/morefoodsmod.js +154 -0
  678. package/sandboxels-package/sandboxels-1.13.2/mods/moreliquids.js +138 -0
  679. package/sandboxels-package/sandboxels-1.13.2/mods/morepowders.js +335 -0
  680. package/sandboxels-package/sandboxels-1.13.2/mods/moretools.js +68 -0
  681. package/sandboxels-package/sandboxels-1.13.2/mods/moretrees.js +490 -0
  682. package/sandboxels-package/sandboxels-1.13.2/mods/mossstuff.js +2301 -0
  683. package/sandboxels-package/sandboxels-1.13.2/mods/mouthwash.js +23 -0
  684. package/sandboxels-package/sandboxels-1.13.2/mods/move_tools.js +71 -0
  685. package/sandboxels-package/sandboxels-1.13.2/mods/moveable_cubes.js +258 -0
  686. package/sandboxels-package/sandboxels-1.13.2/mods/moving_pixels.js +179 -0
  687. package/sandboxels-package/sandboxels-1.13.2/mods/mush_infection.js +321 -0
  688. package/sandboxels-package/sandboxels-1.13.2/mods/musicalfruit.js +4 -0
  689. package/sandboxels-package/sandboxels-1.13.2/mods/mustard.js +48 -0
  690. package/sandboxels-package/sandboxels-1.13.2/mods/mystic.js +274 -0
  691. package/sandboxels-package/sandboxels-1.13.2/mods/nastystuff.js +57 -0
  692. package/sandboxels-package/sandboxels-1.13.2/mods/nature_Mod.js +1384 -0
  693. package/sandboxels-package/sandboxels-1.13.2/mods/nekonicos_stuff.js +1651 -0
  694. package/sandboxels-package/sandboxels-1.13.2/mods/nested_for_reaction_example.js +19 -0
  695. package/sandboxels-package/sandboxels-1.13.2/mods/nettysaddon.js +48 -0
  696. package/sandboxels-package/sandboxels-1.13.2/mods/neutronium_compressor.js +416 -0
  697. package/sandboxels-package/sandboxels-1.13.2/mods/nicer_flame.js +48 -0
  698. package/sandboxels-package/sandboxels-1.13.2/mods/nirmod.js +296 -0
  699. package/sandboxels-package/sandboxels-1.13.2/mods/nitroglycerin.js +54 -0
  700. package/sandboxels-package/sandboxels-1.13.2/mods/no_blood.js +23 -0
  701. package/sandboxels-package/sandboxels-1.13.2/mods/no_radiation_events.js +3 -0
  702. package/sandboxels-package/sandboxels-1.13.2/mods/no_random_grbs.js +9 -0
  703. package/sandboxels-package/sandboxels-1.13.2/mods/no_scroll.js +5 -0
  704. package/sandboxels-package/sandboxels-1.13.2/mods/noblegas.js +215 -0
  705. package/sandboxels-package/sandboxels-1.13.2/mods/nocancer.js +9 -0
  706. package/sandboxels-package/sandboxels-1.13.2/mods/nocancer2.js +1 -0
  707. package/sandboxels-package/sandboxels-1.13.2/mods/noconfirm.js +1 -0
  708. package/sandboxels-package/sandboxels-1.13.2/mods/nograssgrow.js +6 -0
  709. package/sandboxels-package/sandboxels-1.13.2/mods/noita.js +4895 -0
  710. package/sandboxels-package/sandboxels-1.13.2/mods/noita_demake.js +430 -0
  711. package/sandboxels-package/sandboxels-1.13.2/mods/nopixellimit.js +2 -0
  712. package/sandboxels-package/sandboxels-1.13.2/mods/note_block.js +97 -0
  713. package/sandboxels-package/sandboxels-1.13.2/mods/note_block_advanced.js +628 -0
  714. package/sandboxels-package/sandboxels-1.13.2/mods/nousersthings.js +4081 -0
  715. package/sandboxels-package/sandboxels-1.13.2/mods/nuclear.js +300 -0
  716. package/sandboxels-package/sandboxels-1.13.2/mods/nv7.js +35013 -0
  717. package/sandboxels-package/sandboxels-1.13.2/mods/obsidian.js +51 -0
  718. package/sandboxels-package/sandboxels-1.13.2/mods/occlusion.js +149 -0
  719. package/sandboxels-package/sandboxels-1.13.2/mods/ocean.js +130 -0
  720. package/sandboxels-package/sandboxels-1.13.2/mods/ochem_prerelease.js +774 -0
  721. package/sandboxels-package/sandboxels-1.13.2/mods/oldTooltip.js +23 -0
  722. package/sandboxels-package/sandboxels-1.13.2/mods/oldleds.js +20 -0
  723. package/sandboxels-package/sandboxels-1.13.2/mods/onTryMoveInto.js +85 -0
  724. package/sandboxels-package/sandboxels-1.13.2/mods/onecolor.js +146 -0
  725. package/sandboxels-package/sandboxels-1.13.2/mods/orchidslibrary.js +70 -0
  726. package/sandboxels-package/sandboxels-1.13.2/mods/ores.js +232 -0
  727. package/sandboxels-package/sandboxels-1.13.2/mods/organism.js +915 -0
  728. package/sandboxels-package/sandboxels-1.13.2/mods/oxide.theme.js +46 -0
  729. package/sandboxels-package/sandboxels-1.13.2/mods/page_color.js +35 -0
  730. package/sandboxels-package/sandboxels-1.13.2/mods/paint_event.js +17 -0
  731. package/sandboxels-package/sandboxels-1.13.2/mods/periodic_and_more.js +64 -0
  732. package/sandboxels-package/sandboxels-1.13.2/mods/peta.js +214 -0
  733. package/sandboxels-package/sandboxels-1.13.2/mods/petal_dye.js +40 -0
  734. package/sandboxels-package/sandboxels-1.13.2/mods/pixelResizeTool.js +18 -0
  735. package/sandboxels-package/sandboxels-1.13.2/mods/pizzasstuff.js +2338 -0
  736. package/sandboxels-package/sandboxels-1.13.2/mods/place_all_elements.js +30 -0
  737. package/sandboxels-package/sandboxels-1.13.2/mods/placuchtestthing.js +17 -0
  738. package/sandboxels-package/sandboxels-1.13.2/mods/planet.js +270 -0
  739. package/sandboxels-package/sandboxels-1.13.2/mods/planet_cracker.js +81 -0
  740. package/sandboxels-package/sandboxels-1.13.2/mods/plants.js +1616 -0
  741. package/sandboxels-package/sandboxels-1.13.2/mods/plastic.js +93 -0
  742. package/sandboxels-package/sandboxels-1.13.2/mods/portal.js +120 -0
  743. package/sandboxels-package/sandboxels-1.13.2/mods/potato_chips.js +44 -0
  744. package/sandboxels-package/sandboxels-1.13.2/mods/prairie.js +200 -0
  745. package/sandboxels-package/sandboxels-1.13.2/mods/precisionDrawing.js +58 -0
  746. package/sandboxels-package/sandboxels-1.13.2/mods/pressure.js +223 -0
  747. package/sandboxels-package/sandboxels-1.13.2/mods/pressure_sensitive.js +20 -0
  748. package/sandboxels-package/sandboxels-1.13.2/mods/prideflags.js +307 -0
  749. package/sandboxels-package/sandboxels-1.13.2/mods/primordial_birthpool.js +38 -0
  750. package/sandboxels-package/sandboxels-1.13.2/mods/prompt.js +1215 -0
  751. package/sandboxels-package/sandboxels-1.13.2/mods/prop and prompt variables.js +16 -0
  752. package/sandboxels-package/sandboxels-1.13.2/mods/prop.js +466 -0
  753. package/sandboxels-package/sandboxels-1.13.2/mods/pullers.js +479 -0
  754. package/sandboxels-package/sandboxels-1.13.2/mods/purple_guys_mod.js +3635 -0
  755. package/sandboxels-package/sandboxels-1.13.2/mods/pushers.js +287 -0
  756. package/sandboxels-package/sandboxels-1.13.2/mods/radioactive.js +135 -0
  757. package/sandboxels-package/sandboxels-1.13.2/mods/rainbow_cursor.js +12 -0
  758. package/sandboxels-package/sandboxels-1.13.2/mods/rainbow_tests.js +348 -0
  759. package/sandboxels-package/sandboxels-1.13.2/mods/rainsmod.js +412 -0
  760. package/sandboxels-package/sandboxels-1.13.2/mods/random_elems.js +463 -0
  761. package/sandboxels-package/sandboxels-1.13.2/mods/random_everything.js +7 -0
  762. package/sandboxels-package/sandboxels-1.13.2/mods/random_fixes.js +42 -0
  763. package/sandboxels-package/sandboxels-1.13.2/mods/random_liquids.js +220 -0
  764. package/sandboxels-package/sandboxels-1.13.2/mods/random_rocks.js +164 -0
  765. package/sandboxels-package/sandboxels-1.13.2/mods/random_things.js +69 -0
  766. package/sandboxels-package/sandboxels-1.13.2/mods/randomelements.js +200 -0
  767. package/sandboxels-package/sandboxels-1.13.2/mods/randomness.js +730 -0
  768. package/sandboxels-package/sandboxels-1.13.2/mods/randomness_but_tick.js +1257 -0
  769. package/sandboxels-package/sandboxels-1.13.2/mods/randomness_but_tool.js +26 -0
  770. package/sandboxels-package/sandboxels-1.13.2/mods/ray_cloner.js +150 -0
  771. package/sandboxels-package/sandboxels-1.13.2/mods/rays++.js +60 -0
  772. package/sandboxels-package/sandboxels-1.13.2/mods/rays.js +464 -0
  773. package/sandboxels-package/sandboxels-1.13.2/mods/reactor_supplies_and_others.js +88 -0
  774. package/sandboxels-package/sandboxels-1.13.2/mods/real_light.js +754 -0
  775. package/sandboxels-package/sandboxels-1.13.2/mods/replace.js +79 -0
  776. package/sandboxels-package/sandboxels-1.13.2/mods/replace_all.js +45 -0
  777. package/sandboxels-package/sandboxels-1.13.2/mods/reverse_time.js +421 -0
  778. package/sandboxels-package/sandboxels-1.13.2/mods/rich_grain.js +54 -0
  779. package/sandboxels-package/sandboxels-1.13.2/mods/rising_powders.js +3 -0
  780. package/sandboxels-package/sandboxels-1.13.2/mods/rock_paper_scissors.js +32 -0
  781. package/sandboxels-package/sandboxels-1.13.2/mods/roseyiede.js +363 -0
  782. package/sandboxels-package/sandboxels-1.13.2/mods/rpg.js +1342 -0
  783. package/sandboxels-package/sandboxels-1.13.2/mods/ru_expanded.js +25 -0
  784. package/sandboxels-package/sandboxels-1.13.2/mods/runAfterAutogen and onload restructure.js +1 -0
  785. package/sandboxels-package/sandboxels-1.13.2/mods/runAfterAutogen2.js +56 -0
  786. package/sandboxels-package/sandboxels-1.13.2/mods/sandboxels.js +2501 -0
  787. package/sandboxels-package/sandboxels-1.13.2/mods/saturnsstuff.js +729 -0
  788. package/sandboxels-package/sandboxels-1.13.2/mods/save_loading.js +520 -0
  789. package/sandboxels-package/sandboxels-1.13.2/mods/sbmixup.js +1439 -0
  790. package/sandboxels-package/sandboxels-1.13.2/mods/sbstuff.js +1865 -0
  791. package/sandboxels-package/sandboxels-1.13.2/mods/scenexe.js +770 -0
  792. package/sandboxels-package/sandboxels-1.13.2/mods/schematics.js +214 -0
  793. package/sandboxels-package/sandboxels-1.13.2/mods/scp.js +7831 -0
  794. package/sandboxels-package/sandboxels-1.13.2/mods/selective_paint.js +60 -0
  795. package/sandboxels-package/sandboxels-1.13.2/mods/sensitive.js +20 -0
  796. package/sandboxels-package/sandboxels-1.13.2/mods/shade.js +46 -0
  797. package/sandboxels-package/sandboxels-1.13.2/mods/shader_by_jayd.js +168 -0
  798. package/sandboxels-package/sandboxels-1.13.2/mods/shipstuff.js +198 -0
  799. package/sandboxels-package/sandboxels-1.13.2/mods/singleColor.js +1 -0
  800. package/sandboxels-package/sandboxels-1.13.2/mods/single_humans.js +147 -0
  801. package/sandboxels-package/sandboxels-1.13.2/mods/sky.js +141 -0
  802. package/sandboxels-package/sandboxels-1.13.2/mods/slag_fix.js +25 -0
  803. package/sandboxels-package/sandboxels-1.13.2/mods/smooth_water.js +6 -0
  804. package/sandboxels-package/sandboxels-1.13.2/mods/solid_rock.js +74 -0
  805. package/sandboxels-package/sandboxels-1.13.2/mods/solidcolor.js +146 -0
  806. package/sandboxels-package/sandboxels-1.13.2/mods/solubility.js +287 -0
  807. package/sandboxels-package/sandboxels-1.13.2/mods/some_tf_liquids.js +358 -0
  808. package/sandboxels-package/sandboxels-1.13.2/mods/souls.js +163 -0
  809. package/sandboxels-package/sandboxels-1.13.2/mods/soups.js +104 -0
  810. package/sandboxels-package/sandboxels-1.13.2/mods/spaceship.js +138 -0
  811. package/sandboxels-package/sandboxels-1.13.2/mods/special_property_library.js +155 -0
  812. package/sandboxels-package/sandboxels-1.13.2/mods/sponge_edit.js +76 -0
  813. package/sandboxels-package/sandboxels-1.13.2/mods/sports_beta.js +69 -0
  814. package/sandboxels-package/sandboxels-1.13.2/mods/spouts.js +715 -0
  815. package/sandboxels-package/sandboxels-1.13.2/mods/spring.js +283 -0
  816. package/sandboxels-package/sandboxels-1.13.2/mods/stainless_steel.js +126 -0
  817. package/sandboxels-package/sandboxels-1.13.2/mods/star_wars.js +70 -0
  818. package/sandboxels-package/sandboxels-1.13.2/mods/state_voids.js +347 -0
  819. package/sandboxels-package/sandboxels-1.13.2/mods/static.js +182 -0
  820. package/sandboxels-package/sandboxels-1.13.2/mods/stickyslime.js +3 -0
  821. package/sandboxels-package/sandboxels-1.13.2/mods/stickystuff.js +59 -0
  822. package/sandboxels-package/sandboxels-1.13.2/mods/stormlib.js +99 -0
  823. package/sandboxels-package/sandboxels-1.13.2/mods/stripe_paint.js +110 -0
  824. package/sandboxels-package/sandboxels-1.13.2/mods/structure_test.js +755 -0
  825. package/sandboxels-package/sandboxels-1.13.2/mods/sturdierpowders.js +595 -0
  826. package/sandboxels-package/sandboxels-1.13.2/mods/subspace.js +46 -0
  827. package/sandboxels-package/sandboxels-1.13.2/mods/survival.js +499 -0
  828. package/sandboxels-package/sandboxels-1.13.2/mods/survivalhack.js +500 -0
  829. package/sandboxels-package/sandboxels-1.13.2/mods/sus.js +92 -0
  830. package/sandboxels-package/sandboxels-1.13.2/mods/switches.js +53 -0
  831. package/sandboxels-package/sandboxels-1.13.2/mods/talismanadditions.js +124 -0
  832. package/sandboxels-package/sandboxels-1.13.2/mods/tech.js +282 -0
  833. package/sandboxels-package/sandboxels-1.13.2/mods/test.js +8 -0
  834. package/sandboxels-package/sandboxels-1.13.2/mods/test_2.js +399 -0
  835. package/sandboxels-package/sandboxels-1.13.2/mods/testmod.js +7 -0
  836. package/sandboxels-package/sandboxels-1.13.2/mods/text.js +681 -0
  837. package/sandboxels-package/sandboxels-1.13.2/mods/texture_pack_by_jayd.js +116 -0
  838. package/sandboxels-package/sandboxels-1.13.2/mods/texturepack.js +94 -0
  839. package/sandboxels-package/sandboxels-1.13.2/mods/the_ground.js +3 -0
  840. package/sandboxels-package/sandboxels-1.13.2/mods/the_ground_og.js +2570 -0
  841. package/sandboxels-package/sandboxels-1.13.2/mods/the_snail.js +63 -0
  842. package/sandboxels-package/sandboxels-1.13.2/mods/themostrandomstuff.js +523 -0
  843. package/sandboxels-package/sandboxels-1.13.2/mods/thermal_conduit.js +157 -0
  844. package/sandboxels-package/sandboxels-1.13.2/mods/thiquovite.js +1745 -0
  845. package/sandboxels-package/sandboxels-1.13.2/mods/ticking_temp_stuff.js +494 -0
  846. package/sandboxels-package/sandboxels-1.13.2/mods/time.js +7 -0
  847. package/sandboxels-package/sandboxels-1.13.2/mods/toms_stuff.js +308 -0
  848. package/sandboxels-package/sandboxels-1.13.2/mods/tool_pixel_behavior.js +792 -0
  849. package/sandboxels-package/sandboxels-1.13.2/mods/tooltip.js +32 -0
  850. package/sandboxels-package/sandboxels-1.13.2/mods/toothpaste.js +154 -0
  851. package/sandboxels-package/sandboxels-1.13.2/mods/tpt.js +89 -0
  852. package/sandboxels-package/sandboxels-1.13.2/mods/triggerable_random_powders.js +68 -0
  853. package/sandboxels-package/sandboxels-1.13.2/mods/troll.js +170 -0
  854. package/sandboxels-package/sandboxels-1.13.2/mods/true_flashbang.js +520 -0
  855. package/sandboxels-package/sandboxels-1.13.2/mods/ultimadrink.js +3191 -0
  856. package/sandboxels-package/sandboxels-1.13.2/mods/uncook.js +51 -0
  857. package/sandboxels-package/sandboxels-1.13.2/mods/unhide.js +10 -0
  858. package/sandboxels-package/sandboxels-1.13.2/mods/variety_mod.js +727 -0
  859. package/sandboxels-package/sandboxels-1.13.2/mods/velocity.js +139 -0
  860. package/sandboxels-package/sandboxels-1.13.2/mods/velocity2.js +209 -0
  861. package/sandboxels-package/sandboxels-1.13.2/mods/video.js +125 -0
  862. package/sandboxels-package/sandboxels-1.13.2/mods/vinegar.js +17 -0
  863. package/sandboxels-package/sandboxels-1.13.2/mods/volcanic_expansion.js +94 -0
  864. package/sandboxels-package/sandboxels-1.13.2/mods/war.js +51 -0
  865. package/sandboxels-package/sandboxels-1.13.2/mods/war_crimes.js +131 -0
  866. package/sandboxels-package/sandboxels-1.13.2/mods/waterspout.js +26 -0
  867. package/sandboxels-package/sandboxels-1.13.2/mods/weAllScreamFor.js +218 -0
  868. package/sandboxels-package/sandboxels-1.13.2/mods/weapons.js +1286 -0
  869. package/sandboxels-package/sandboxels-1.13.2/mods/wheel_fix.js +19 -0
  870. package/sandboxels-package/sandboxels-1.13.2/mods/wifi.js +162 -0
  871. package/sandboxels-package/sandboxels-1.13.2/mods/wifi_draw.js +87 -0
  872. package/sandboxels-package/sandboxels-1.13.2/mods/wine.js +8 -0
  873. package/sandboxels-package/sandboxels-1.13.2/mods/wirelike_test.js +681 -0
  874. package/sandboxels-package/sandboxels-1.13.2/mods/worldEdit.js +441 -0
  875. package/sandboxels-package/sandboxels-1.13.2/mods/worldEdit.ts +569 -0
  876. package/sandboxels-package/sandboxels-1.13.2/mods/world_gen_test.js +315 -0
  877. package/sandboxels-package/sandboxels-1.13.2/mods/worldgen_test.js +173 -0
  878. package/sandboxels-package/sandboxels-1.13.2/mods/worldgenlibrary.js +164 -0
  879. package/sandboxels-package/sandboxels-1.13.2/mods/x_dependent_change_test.js +34 -0
  880. package/sandboxels-package/sandboxels-1.13.2/mods/yumcherries.js +543 -0
  881. package/sandboxels-package/sandboxels-1.13.2/mods/zonneschijn7.js +6 -0
  882. package/sandboxels-package/sandboxels-1.13.2/mods/zoom.js +322 -0
  883. package/sandboxels-package/sandboxels-1.13.2/offline-use.html +103 -0
  884. package/sandboxels-package/sandboxels-1.13.2/offline.html +1 -0
  885. package/sandboxels-package/sandboxels-1.13.2/presskit.html +165 -0
  886. package/sandboxels-package/sandboxels-1.13.2/promo.html +13 -0
  887. package/sandboxels-package/sandboxels-1.13.2/scripts/im2elements/code.go +116 -0
  888. package/sandboxels-package/sandboxels-1.13.2/scripts/im2elements/go.mod +5 -0
  889. package/sandboxels-package/sandboxels-1.13.2/scripts/im2elements/go.sum +2 -0
  890. package/sandboxels-package/sandboxels-1.13.2/scripts/im2elements/main.go +58 -0
  891. package/sandboxels-package/sandboxels-1.13.2/scripts/perlin.js +165 -0
  892. package/sandboxels-package/sandboxels-1.13.2/service-worker.js +16 -0
  893. package/sandboxels-package/sandboxels-1.13.2/sitemap.txt +13 -0
  894. package/sandboxels-package/sandboxels-1.13.2/style.css +1105 -0
  895. package/sandboxels-package/sandboxels-1.13.2/template.html +86 -0
  896. package/sandboxels-package/sandboxels-1.13.2/tips.html +147 -0
  897. package/sandboxels-package/sandboxels-1.13.2/translate.html +105 -0
  898. package/README.md +0 -3
@@ -0,0 +1,2501 @@
1
+ // mod by nekonico
2
+
3
+ window.addEventListener("load", () => {
4
+ document.getElementById("elementButton-sandboxels_screen")?.remove()
5
+ document.getElementById("elementButton-sand_screen")?.remove()
6
+ document.getElementById("elementButton-wet_sand_screen")?.remove()
7
+ document.getElementById("elementButton-rock_screen")?.remove()
8
+ document.getElementById("elementButton-wall_screen")?.remove()
9
+ document.getElementById("elementButton-water_screen")?.remove()
10
+ document.getElementById("elementButton-steam_screen")?.remove()
11
+ document.getElementById("elementButton-ice_screen")?.remove()
12
+ document.getElementById("elementButton-wood_screen")?.remove()
13
+ document.getElementById("elementButton-sawdust_screen")?.remove()
14
+ document.getElementById("elementButton-cellulose_screen")?.remove()
15
+ document.getElementById("elementButton-blood_screen")?.remove()
16
+ document.getElementById("elementButton-paper_screen")?.remove()
17
+ document.getElementById("elementButton-body_screen")?.remove()
18
+ document.getElementById("elementButton-head_screen")?.remove()
19
+ document.getElementById("elementButton-ash_screen")?.remove()
20
+ document.getElementById("elementButton-mud_screen")?.remove()
21
+ document.getElementById("elementButton-dirt_screen")?.remove()
22
+ document.getElementById("elementButton-bird_screen")?.remove()
23
+ document.getElementById("elementButton-fly_screen")?.remove()
24
+ document.getElementById("elementButton-rat_screen")?.remove()
25
+ document.getElementById("elementButton-oxygen_screen")?.remove()
26
+ document.getElementById("elementButton-fire_screen")?.remove()
27
+ document.getElementById("elementButton-smoke_screen")?.remove()
28
+ document.getElementById("elementButton-simulated_human")?.remove()
29
+ })
30
+
31
+ viewInfo[8] = { // Screen Thermal View
32
+ name: "screen therm",
33
+ pixel: function(pixel,ctx) {
34
+ if (elements[pixel.element].isScreen == true) {
35
+ var temp = pixel.dtemp;
36
+ if (temp < -50) {temp = -50}
37
+ if (temp > 6000) {temp = 6000}
38
+ // logarithmic scale, with coldest being 225 (-50 degrees) and hottest being 0 (6000 degrees)
39
+ var hue = Math.round(225 - (Math.log(temp+100)/Math.log(6000+100))*225);
40
+ if (hue < 0) {hue = 0}
41
+ if (hue > 225) {hue = 225}
42
+ drawSquare(ctx,"hsl("+hue+",100%,50%)",pixel.x,pixel.y)
43
+ }
44
+ else {
45
+ var a = (settings.textures !== 0) ? pixel.alpha : undefined;
46
+ if (((elements[pixel.element].isGas && elements[pixel.element].glow !== false) || elements[pixel.element].glow || pixel.glow) && pixel.glow !== false) {
47
+ drawPlus(ctx,pixel.color,pixel.x,pixel.y,undefined,a)
48
+ // if (isEmpty(pixel.x+1,pixel.y) || isEmpty(pixel.x-1,pixel.y) || isEmpty(pixel.x,pixel.y+1) || isEmpty(pixel.x,pixel.y-1)) {}
49
+ }
50
+ else {
51
+ drawSquare(ctx,pixel.color,pixel.x,pixel.y,undefined,a)
52
+ }
53
+ if (pixel.charge && view !== 2) { // Yellow glow on charge
54
+ if (!elements[pixel.element].colorOn) {
55
+ drawSquare(ctx,"rgba(255,255,0,0.5)",pixel.x,pixel.y);
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }
61
+
62
+ screenTemp = function(pixel) {
63
+ for (var i = 0; i < biCoords.length; i++) {
64
+ var x = pixel.x+biCoords[i][0];
65
+ var y = pixel.y+biCoords[i][1];
66
+ if (!isEmpty(x,y,true)) {
67
+ var newPixel = pixelMap[x][y];
68
+ if (elements[newPixel.element].isScreen) {
69
+ // Skip if both temperatures are the same
70
+ if (pixel.dtemp === newPixel.dtemp || elements[newPixel.element].insulate === true) {
71
+ continue;
72
+ }
73
+ // Set both pixel temperatures to their average
74
+ var avg = (pixel.dtemp + newPixel.dtemp)/2;
75
+ pixel.dtemp = avg;
76
+ newPixel.dtemp = avg;
77
+ pixelTempCheck(pixel);
78
+ pixelTempCheck(newPixel);
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ doScreenBurning = function(pixel) {
85
+ if (pixel.digburning) { // Burning
86
+ if (pixel.digburnStart === undefined) { pixel.digburnStart = pixelTicks }
87
+ var info = elements[pixel.element];
88
+ if (!info.insulate) { pixel.dtemp += 1; }
89
+ if (pixel.dtemp < 0) {
90
+ pixel.digburning = undefined;
91
+ pixel.digburnStart = undefined;
92
+ return;
93
+ }
94
+ for (var i = 0; i < adjacentCoords.length; i++) { // Burn adjacent pixels
95
+ var x = pixel.x+adjacentCoords[i][0];
96
+ var y = pixel.y+adjacentCoords[i][1];
97
+ if (!isEmpty(x,y,true)) {
98
+ var newPixel = pixelMap[x][y];
99
+ if (elements[newPixel.element].dburn && !newPixel.digburning) {
100
+ if (Math.floor(Math.random()*100) < elements[newPixel.element].dburn) {
101
+ newPixel.digburning = true;
102
+ newPixel.digburnStart = pixelTicks;
103
+ }
104
+ }
105
+ if (elements[newPixel.element].dextinguish && elements[pixel.element].digburning !== true) {
106
+ pixel.digburning = undefined;
107
+ pixel.digburnStart = undefined;
108
+ return;
109
+ }
110
+ }
111
+ }
112
+
113
+ if ((pixelTicks - pixel.digburnStart > (info.digburnTime || 200)) && Math.floor(Math.random()*100)<(info.dburn || 10) && !(info.digburnTime === undefined && info.hardness >= 1)) {
114
+ var digburnInto = info.digburnInto;
115
+ if (digburnInto === undefined) {
116
+ digburnInto = "fire_screen";
117
+ }
118
+ else if (digburnInto instanceof Array) {
119
+ digburnInto = digburnInto[Math.floor(Math.random()*digburnInto.length)];
120
+ }
121
+ changePixel(pixel,digburnInto);
122
+ if (info.digfireColor !== undefined && digburnInto === "fire_screen") {
123
+ pixel.color = pixelColorPick(pixel,info.digfireColor);
124
+ }
125
+ else {
126
+ pixel.color = pixelColorPick(pixel)
127
+ }
128
+ }
129
+ else if (Math.floor(Math.random()*100)<10 && info.id !== elements.fire_screen.id && info.digfireElement !== null) { // Spawn fire
130
+ if (!isEmpty(pixel.x,pixel.y-1)) {
131
+ var firePixel = pixelMap[pixel.x][pixel.y-1]
132
+ if (firePixel.element === "sandboxels_screen") {
133
+ changePixel(firePixel,(info.digfireElement || "fire_screen"));
134
+ firePixel.dtemp = pixel.dtemp//+(pixelTicks - (pixel.digburnStart || 0));
135
+ if (info.digfireColor !== undefined) {
136
+ firePixel.color = pixelColorPick(pixelMap[pixel.x][pixel.y-1],info.digfireColor);
137
+ }
138
+ }
139
+ else if (!isEmpty(pixel.x,pixel.y+1)) {
140
+ var firePixel = pixelMap[pixel.x][pixel.y+1]
141
+ if (firePixel.element === "sandboxels_screen") {
142
+ changePixel(firePixel,(info.digfireElement || "fire_screen"));
143
+ firePixel.dtemp = pixel.dtemp//+(pixelTicks - (pixel.burnStart || 0));
144
+ if (info.digfireColor !== undefined) {
145
+ firePixel.color = pixelColorPick(pixelMap[pixel.x][pixel.y+1],info.digfireColor);
146
+ }
147
+ }
148
+ }
149
+ }
150
+ // same for below if top is blocked
151
+ else if (!isEmpty(pixel.x,pixel.y+1)) {
152
+ var firePixel = pixelMap[pixel.x][pixel.y+1]
153
+ if (firePixel.element === "sandboxels_screen") {
154
+ changePixel(firePixel,(info.digfireElement || "fire_screen"));
155
+ firePixel.dtemp = pixel.dtemp//+(pixelTicks - (pixel.burnStart || 0));
156
+ if (info.digfireColor !== undefined) {
157
+ firePixel.color = pixelColorPick(pixelMap[pixel.x][pixel.y+1],info.digfireColor);
158
+ }
159
+ }
160
+ }
161
+ }
162
+
163
+ }
164
+ }
165
+
166
+ elements.sandboxels_screen_off = {
167
+ name:"screen",
168
+ color: "#454545",
169
+ behavior: behaviors.WALL,
170
+ tick: function(pixel) {
171
+ if (pixel.dtemp !== 20) { pixel.dtemp = 20 }
172
+ if (pixel.charge) { pixel.charges = pixelTicks }
173
+ if (pixelTicks - 1 > pixel.charges) {
174
+ changePixel(pixel,"sandboxels_screen")
175
+ }
176
+ },
177
+ tempHigh: 1500,
178
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
179
+ conduct: 1,
180
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","sand"],
181
+ tempLow: -80,
182
+ stateLow: "glass_shard",
183
+ category: "simulation",
184
+ state: "solid",
185
+ density: 1200,
186
+ desc: "Shock to turn on."
187
+ }
188
+
189
+ elements.sandboxels_screen = {
190
+ name:"screen",
191
+ hidden:true,
192
+ color: "#1D1D1D",
193
+ behavior: behaviors.WALL,
194
+ tick: function(pixel) {
195
+ if (pixel.dtemp !== 20) { pixel.dtemp = 20 }
196
+ if (pixel.charge) { pixel.charge = 0 }
197
+ },
198
+ conduct: 1,
199
+ tempHigh: 1500,
200
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
201
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","sand"],
202
+ tempLow: -45,
203
+ stateLow: "sandboxels_screen_off",
204
+ category: "simulation",
205
+ state: "solid",
206
+ density: 1200,
207
+ }
208
+
209
+ elements.simulated_heat = {
210
+ color: "#ff0000",
211
+ behavior: [
212
+ "XX|XX|XX",
213
+ "XX|XX|XX",
214
+ "XX|XX|XX",
215
+ ],
216
+ tool: function(pixel) {
217
+ if (elements[pixel.element].isScreen === true) {
218
+ pixel.dtemp += 2
219
+ }
220
+ },
221
+ insulate:true,
222
+ canPlace: false,
223
+ category: "simulation",
224
+ desc: "Use on a screen to heat simulated elements."
225
+ }
226
+
227
+ elements.simulated_cool = {
228
+ color: "#0000ff",
229
+ behavior: [
230
+ "XX|XX|XX",
231
+ "XX|XX|XX",
232
+ "XX|XX|XX",
233
+ ],
234
+ tool: function(pixel) {
235
+ if (elements[pixel.element].isScreen === true) {
236
+ pixel.dtemp -= 2
237
+ }
238
+ },
239
+ insulate:true,
240
+ canPlace: false,
241
+ category: "simulation",
242
+ desc: "Use on a screen to cool simulated elements."
243
+ }
244
+
245
+ elements.simulated_roomtemp = {
246
+ color: "#b1c96d",
247
+ behavior: [
248
+ "XX|XX|XX",
249
+ "XX|XX|XX",
250
+ "XX|XX|XX",
251
+ ],
252
+ tool: function(pixel) {
253
+ if (elements[pixel.element].isScreen === true) {
254
+ pixel.dtemp = 20
255
+ }
256
+ },
257
+ insulate:true,
258
+ canPlace: false,
259
+ category: "simulation",
260
+ desc: "Use on a screen to make simulated elements room temperature."
261
+ }
262
+
263
+ elements.simulated_smash = {
264
+ color: ["#666666","#888888","#666666"],
265
+ behavior: [
266
+ "XX|XX|XX",
267
+ "XX|XX|XX",
268
+ "XX|XX|XX",
269
+ ],
270
+ tool: function(pixel) {
271
+ if (elements[pixel.element].isScreen === true && elements[pixel.element].digBreakInto) {
272
+ changePixel(pixel,elements[pixel.element].digBreakInto);
273
+ }
274
+ },
275
+ insulate:true,
276
+ canPlace: false,
277
+ category: "simulation",
278
+ desc: "Use on a screen to smash simulated elements."
279
+ }
280
+
281
+ elements.simulated_erase = {
282
+ color: "#fdb5ff",
283
+ behavior: [
284
+ "XX|XX|XX",
285
+ "XX|XX|XX",
286
+ "XX|XX|XX",
287
+ ],
288
+ tool: function(pixel) {
289
+ if (elements[pixel.element].isScreen === true) {
290
+ changePixel(pixel,"sandboxels_screen");
291
+ }
292
+ },
293
+ insulate:true,
294
+ canPlace: false,
295
+ category: "simulation",
296
+ desc: "Use on a screen to erase simulated elements."
297
+ }
298
+
299
+ elements.simulated_human = {
300
+ hidden:true,
301
+ color: ["#46433F","#47443C","#4D483D"],
302
+ category: "simulation",
303
+ properties: {
304
+ dead: false,
305
+ dir: 1,
306
+ panic: 0
307
+ },
308
+ tick: function(pixel) {
309
+ if (!isEmpty(pixel.x, pixel.y+1),true && pixelMap[pixel.x][pixel.y+1].element === "sandboxels_screen") {
310
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
311
+ newPixel.element = "body_screen";
312
+ newPixel.dir = 1
313
+ pixel.element = "head_screen";
314
+ }
315
+ else if (!isEmpty(pixel.x, pixel.y-1),true && pixelMap[pixel.x][pixel.y-1].element === "sandboxels_screen") {
316
+ var newPixel = pixelMap[pixel.x][pixel.y-1];
317
+ newPixel.element = "head_screen";
318
+ pixel.element = "body_screen";
319
+ pixel.dir = 1
320
+ }
321
+ else {
322
+ changePixel(pixel, "sandboxels_screen");
323
+ }
324
+ },
325
+ related: ["suited_body","suited_head"],
326
+ cooldown: defaultCooldown,
327
+ forceSaveColor: true,
328
+ }
329
+
330
+ elements.sand_screen = {
331
+ name:"screen",
332
+ hidden:true,
333
+ color: "#e6d577",
334
+ behavior: [
335
+ "XX|XX|XX",
336
+ "XX|XX|XX",
337
+ "XX|XX|XX",
338
+ ],
339
+ properties: {
340
+ dtemp: 20,
341
+ },
342
+ tempHigh: 1500,
343
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
344
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","sand"],
345
+ tempLow: -45,
346
+ stateLow: "sandboxels_screen_off",
347
+ category: "simulation",
348
+ isScreen: true,
349
+ isMoving: true,
350
+ isSolid: true,
351
+ tick: function(pixel) {
352
+ screenTemp(pixel)
353
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
354
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
355
+ if (newPixel.element === "sandboxels_screen") {
356
+ changePixel(newPixel,pixel.element);
357
+ newPixel.dtemp = pixel.dtemp;
358
+ changePixel(pixel,"sandboxels_screen");
359
+ }
360
+ else if (elements[newPixel.element].isScreen === true) {
361
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
362
+ swapPixels(newPixel, pixel)
363
+ }
364
+ }
365
+ if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
366
+ newPixel = pixelMap[pixel.x+1][pixel.y+1];
367
+ if (newPixel.element === "sandboxels_screen") {
368
+ changePixel(newPixel,pixel.element);
369
+ newPixel.dtemp = pixel.dtemp;
370
+ changePixel(pixel,"sandboxels_screen");
371
+
372
+ }
373
+ else if (elements[newPixel.element].isScreen === true) {
374
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
375
+ swapPixels(newPixel, pixel)
376
+ }
377
+ }
378
+ }
379
+ else if (!isEmpty(pixel.x-1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
380
+ newPixel = pixelMap[pixel.x-1][pixel.y+1];
381
+ if (newPixel.element === "sandboxels_screen") {
382
+ changePixel(newPixel,pixel.element);
383
+ newPixel.dtemp = pixel.dtemp;
384
+ changePixel(pixel,"sandboxels_screen");
385
+
386
+ }
387
+ else if (elements[newPixel.element].isScreen === true) {
388
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
389
+ swapPixels(newPixel, pixel)
390
+ }
391
+ }
392
+ }
393
+ }
394
+ },
395
+ state: "solid",
396
+ density: 1602,
397
+ }
398
+
399
+ elements.wet_sand_screen = {
400
+ name:"screen",
401
+ hidden:true,
402
+ color: ["#a19348","#b5a85e"],
403
+ behavior: [
404
+ "XX|XX|XX",
405
+ "XX|XX|XX",
406
+ "XX|XX|XX",
407
+ ],
408
+ properties: {
409
+ dtemp: 20,
410
+ },
411
+ tempHigh: 1500,
412
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
413
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","wet_sand"],
414
+ tempLow: -45,
415
+ stateLow: "sandboxels_screen_off",
416
+ category: "simulation",
417
+ isScreen: true,
418
+ isMoving: true,
419
+ isSolid: true,
420
+ tick: function(pixel) {
421
+ screenTemp(pixel)
422
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
423
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
424
+ if (newPixel.element === "sandboxels_screen") {
425
+ changePixel(newPixel,pixel.element);
426
+ newPixel.dtemp = pixel.dtemp;
427
+ changePixel(pixel,"sandboxels_screen");
428
+ }
429
+ else if (elements[newPixel.element].isScreen === true) {
430
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
431
+ swapPixels(newPixel, pixel)
432
+ }
433
+ }
434
+ }
435
+ },
436
+ state: "solid",
437
+ density: 1905,
438
+ }
439
+
440
+ elements.dirt_screen = {
441
+ name:"screen",
442
+ hidden:true,
443
+ color: ["#76552b","#5c4221","#573c1a","#6b481e"],
444
+ behavior: [
445
+ "XX|XX|XX",
446
+ "XX|XX|XX",
447
+ "XX|XX|XX",
448
+ ],
449
+ properties: {
450
+ dtemp: 20,
451
+ },
452
+ tempHigh: 1500,
453
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
454
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","dirt"],
455
+ tempLow: -45,
456
+ stateLow: "sandboxels_screen_off",
457
+ category: "simulation",
458
+ isScreen: true,
459
+ isMoving: true,
460
+ isSolid: true,
461
+ tick: function(pixel) {
462
+ screenTemp(pixel)
463
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
464
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
465
+ if (newPixel.element === "sandboxels_screen") {
466
+ changePixel(newPixel,pixel.element);
467
+ newPixel.dtemp = pixel.dtemp;
468
+ changePixel(pixel,"sandboxels_screen");
469
+ }
470
+ else if (elements[newPixel.element].isScreen === true) {
471
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
472
+ swapPixels(newPixel, pixel)
473
+ }
474
+ }
475
+ if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
476
+ newPixel = pixelMap[pixel.x+1][pixel.y+1];
477
+ if (newPixel.element === "sandboxels_screen") {
478
+ changePixel(newPixel,pixel.element);
479
+ newPixel.dtemp = pixel.dtemp;
480
+ changePixel(pixel,"sandboxels_screen");
481
+
482
+ }
483
+ else if (elements[newPixel.element].isScreen === true) {
484
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
485
+ swapPixels(newPixel, pixel)
486
+ }
487
+ }
488
+ }
489
+ else if (!isEmpty(pixel.x-1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
490
+ newPixel = pixelMap[pixel.x-1][pixel.y+1];
491
+ if (newPixel.element === "sandboxels_screen") {
492
+ changePixel(newPixel,pixel.element);
493
+ newPixel.dtemp = pixel.dtemp;
494
+ changePixel(pixel,"sandboxels_screen");
495
+
496
+ }
497
+ else if (elements[newPixel.element].isScreen === true) {
498
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
499
+ swapPixels(newPixel, pixel)
500
+ }
501
+ }
502
+ }
503
+ }
504
+ },
505
+ state: "solid",
506
+ density: 1602,
507
+ }
508
+
509
+ elements.mud_screen = {
510
+ name:"screen",
511
+ hidden:true,
512
+ color: "#382417",
513
+ behavior: [
514
+ "XX|XX|XX",
515
+ "XX|XX|XX",
516
+ "XX|XX|XX",
517
+ ],
518
+ properties: {
519
+ dtemp: 20,
520
+ },
521
+ tempHigh: 1500,
522
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
523
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","mud"],
524
+ tempLow: -45,
525
+ stateLow: "sandboxels_screen_off",
526
+ category: "simulation",
527
+ isScreen: true,
528
+ isMoving: true,
529
+ isSolid: true,
530
+ tick: function(pixel) {
531
+ screenTemp(pixel)
532
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
533
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
534
+ if (newPixel.element === "sandboxels_screen") {
535
+ changePixel(newPixel,pixel.element);
536
+ newPixel.dtemp = pixel.dtemp;
537
+ changePixel(pixel,"sandboxels_screen");
538
+ }
539
+ else if (elements[newPixel.element].isScreen === true) {
540
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
541
+ swapPixels(newPixel, pixel)
542
+ }
543
+ }
544
+ }
545
+ },
546
+ state: "solid",
547
+ density: 1905,
548
+ }
549
+
550
+ elements.rock_screen = {
551
+ name:"screen",
552
+ hidden:true,
553
+ color: ["#808080","#4f4f4f","#949494"],
554
+ behavior: [
555
+ "XX|XX|XX",
556
+ "XX|XX|XX",
557
+ "XX|XX|XX",
558
+ ],
559
+ properties: {
560
+ dtemp: 20,
561
+ },
562
+ tempHigh: 1500,
563
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
564
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","rock"],
565
+ tempLow: -45,
566
+ stateLow: "sandboxels_screen_off",
567
+ category: "simulation",
568
+ digBreakInto: "sand_screen",
569
+ isScreen: true,
570
+ isMoving: true,
571
+ isSolid: true,
572
+ tick: function(pixel) {
573
+ screenTemp(pixel)
574
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
575
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
576
+ if (newPixel.element === "sandboxels_screen") {
577
+ changePixel(newPixel,pixel.element);
578
+ newPixel.dtemp = pixel.dtemp;
579
+ changePixel(pixel,"sandboxels_screen");
580
+ }
581
+ else if (elements[newPixel.element].isScreen === true) {
582
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
583
+ swapPixels(newPixel, pixel)
584
+ }
585
+ }
586
+ if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
587
+ newPixel = pixelMap[pixel.x+1][pixel.y+1];
588
+ if (newPixel.element === "sandboxels_screen") {
589
+ changePixel(newPixel,pixel.element);
590
+ newPixel.dtemp = pixel.dtemp;
591
+ changePixel(pixel,"sandboxels_screen");
592
+
593
+ }
594
+ else if (elements[newPixel.element].isScreen === true) {
595
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
596
+ swapPixels(newPixel, pixel)
597
+ }
598
+ }
599
+ }
600
+ else if (!isEmpty(pixel.x-1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
601
+ newPixel = pixelMap[pixel.x-1][pixel.y+1];
602
+ if (newPixel.element === "sandboxels_screen") {
603
+ changePixel(newPixel,pixel.element);
604
+ newPixel.dtemp = pixel.dtemp;
605
+ changePixel(pixel,"sandboxels_screen");
606
+
607
+ }
608
+ else if (elements[newPixel.element].isScreen === true) {
609
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
610
+ swapPixels(newPixel, pixel)
611
+ }
612
+ }
613
+ }
614
+ }
615
+ },
616
+ state: "solid",
617
+ density: 2550,
618
+ }
619
+
620
+ elements.sawdust_screen = {
621
+ name:"screen",
622
+ hidden:true,
623
+ color: ["#dec150","#c7b15a"],
624
+ behavior: [
625
+ "XX|XX|XX",
626
+ "XX|XX|XX",
627
+ "XX|XX|XX",
628
+ ],
629
+ properties: {
630
+ dtemp: 20,
631
+ },
632
+ tempHigh: 1500,
633
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
634
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","sawdust"],
635
+ tempLow: -45,
636
+ stateLow: "sandboxels_screen_off",
637
+ category: "simulation",
638
+ isScreen: true,
639
+ isMoving: true,
640
+ dburn: 25,
641
+ digburnTime: 150,
642
+ digburnInto: ["fire_screen","fire_screen","fire_screen","ash_screen"],
643
+ tick: function(pixel) {
644
+ if (pixel.dtemp > 400) { changePixel(pixel,"fire_screen") }
645
+ screenTemp(pixel)
646
+ doScreenBurning(pixel)
647
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
648
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
649
+ if (newPixel.element === "sandboxels_screen") {
650
+ changePixel(newPixel,pixel.element);
651
+ newPixel.dtemp = pixel.dtemp;
652
+ changePixel(pixel,"sandboxels_screen");
653
+ }
654
+ else if (elements[newPixel.element].isScreen === true) {
655
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
656
+ swapPixels(newPixel, pixel)
657
+ }
658
+ }
659
+ if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
660
+ newPixel = pixelMap[pixel.x+1][pixel.y+1];
661
+ if (newPixel.element === "sandboxels_screen") {
662
+ changePixel(newPixel,pixel.element);
663
+ newPixel.dtemp = pixel.dtemp;
664
+ changePixel(pixel,"sandboxels_screen");
665
+
666
+ }
667
+ else if (elements[newPixel.element].isScreen === true) {
668
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
669
+ swapPixels(newPixel, pixel)
670
+ }
671
+ }
672
+ }
673
+ else if (!isEmpty(pixel.x-1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
674
+ newPixel = pixelMap[pixel.x-1][pixel.y+1];
675
+ if (newPixel.element === "sandboxels_screen") {
676
+ changePixel(newPixel,pixel.element);
677
+ newPixel.dtemp = pixel.dtemp;
678
+ changePixel(pixel,"sandboxels_screen");
679
+
680
+ }
681
+ else if (elements[newPixel.element].isScreen === true) {
682
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
683
+ swapPixels(newPixel, pixel)
684
+ }
685
+ }
686
+ }
687
+ }
688
+ },
689
+ state: "solid",
690
+ density: 393,
691
+ }
692
+
693
+ elements.ash_screen = {
694
+ name:"screen",
695
+ hidden:true,
696
+ color: ["#8c8c8c","#9c9c9c"],
697
+ behavior: [
698
+ "XX|XX|XX",
699
+ "XX|XX|XX",
700
+ "XX|XX|XX",
701
+ ],
702
+ properties: {
703
+ dtemp: 20,
704
+ },
705
+ tempHigh: 1500,
706
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
707
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","sawdust"],
708
+ tempLow: -45,
709
+ stateLow: "sandboxels_screen_off",
710
+ category: "simulation",
711
+ isScreen: true,
712
+ isMoving: true,
713
+ tick: function(pixel) {
714
+ screenTemp(pixel)
715
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
716
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
717
+ if (newPixel.element === "sandboxels_screen") {
718
+ changePixel(newPixel,pixel.element);
719
+ newPixel.dtemp = pixel.dtemp;
720
+ changePixel(pixel,"sandboxels_screen");
721
+ }
722
+ else if (elements[newPixel.element].isScreen === true) {
723
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
724
+ swapPixels(newPixel, pixel)
725
+ }
726
+ }
727
+ if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
728
+ newPixel = pixelMap[pixel.x+1][pixel.y+1];
729
+ if (newPixel.element === "sandboxels_screen") {
730
+ changePixel(newPixel,pixel.element);
731
+ newPixel.dtemp = pixel.dtemp;
732
+ changePixel(pixel,"sandboxels_screen");
733
+
734
+ }
735
+ else if (elements[newPixel.element].isScreen === true) {
736
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
737
+ swapPixels(newPixel, pixel)
738
+ }
739
+ }
740
+ }
741
+ else if (!isEmpty(pixel.x-1,pixel.y+1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
742
+ newPixel = pixelMap[pixel.x-1][pixel.y+1];
743
+ if (newPixel.element === "sandboxels_screen") {
744
+ changePixel(newPixel,pixel.element);
745
+ newPixel.dtemp = pixel.dtemp;
746
+ changePixel(pixel,"sandboxels_screen");
747
+
748
+ }
749
+ else if (elements[newPixel.element].isScreen === true) {
750
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
751
+ swapPixels(newPixel, pixel)
752
+ }
753
+ }
754
+ }
755
+ }
756
+ },
757
+ state: "solid",
758
+ density: 700,
759
+ }
760
+
761
+ elements.cellulose_screen = {
762
+ name:"screen",
763
+ hidden:true,
764
+ color: "#c7d4c9",
765
+ behavior: [
766
+ "XX|XX|XX",
767
+ "SW:sandboxels_screen|XX|SW:sandboxels_screen",
768
+ "SW:sandboxels_screen|XX|SW:sandboxels_screen",
769
+ ],
770
+ properties: {
771
+ dtemp: 20,
772
+ },
773
+ tempHigh: 1500,
774
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
775
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","cellulose"],
776
+ tempLow: -45,
777
+ stateLow: "sandboxels_screen_off",
778
+ category: "simulation",
779
+ isScreen: true,
780
+ isMoving: true,
781
+ tick: function(pixel) {
782
+ if (pixel.dtemp > 99) { changePixel(pixel,"paper_screen") }
783
+ screenTemp(pixel)
784
+ if (Math.random() > 0.2 && !isEmpty(pixel.x,pixel.y+1,true)) {
785
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
786
+ if (newPixel.element === "sandboxels_screen") {
787
+ changePixel(newPixel,pixel.element);
788
+ newPixel.dtemp = pixel.dtemp;
789
+ changePixel(pixel,"sandboxels_screen");
790
+ }
791
+ else if (elements[newPixel.element].isScreen === true) {
792
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
793
+ swapPixels(newPixel, pixel)
794
+ }
795
+ }
796
+ else if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y+1,true)) {
797
+ newPixel = pixelMap[pixel.x+1][pixel.y+1];
798
+ if (newPixel.element === "sandboxels_screen") {
799
+ changePixel(newPixel,pixel.element);
800
+ newPixel.dtemp = pixel.dtemp;
801
+ changePixel(pixel,"sandboxels_screen");
802
+
803
+ }
804
+ else if (elements[newPixel.element].isScreen === true) {
805
+ pixel.dtemp = newPixel.dtemp;
806
+ newPixel.dtemp = pixel.dtemp;
807
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
808
+ swapPixels(newPixel, pixel)
809
+ }
810
+ }
811
+ }
812
+ else if (!isEmpty(pixel.x-1,pixel.y+1,true)) {
813
+ newPixel = pixelMap[pixel.x-1][pixel.y+1];
814
+ if (newPixel.element === "sandboxels_screen") {
815
+ changePixel(newPixel,pixel.element);
816
+ newPixel.dtemp = pixel.dtemp;
817
+ changePixel(pixel,"sandboxels_screen");
818
+
819
+ }
820
+ else if (elements[newPixel.element].isScreen === true) {
821
+ pixel.dtemp = newPixel.dtemp;
822
+ newPixel.dtemp = pixel.dtemp;
823
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
824
+ swapPixels(newPixel, pixel)
825
+ }
826
+ }
827
+ }
828
+ }
829
+ else if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y,true)) {
830
+ var newPixel = pixelMap[pixel.x+1][pixel.y];
831
+ if (newPixel.element === "sandboxels_screen") {
832
+ changePixel(newPixel,pixel.element);
833
+ newPixel.dtemp = pixel.dtemp;
834
+ changePixel(pixel,"sandboxels_screen");
835
+ }
836
+ else if (elements[newPixel.element].isScreen === true) {
837
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
838
+ swapPixels(newPixel, pixel)
839
+ }
840
+ }
841
+ }
842
+ else if (!isEmpty(pixel.x-1,pixel.y,true)) {
843
+ var newPixel = pixelMap[pixel.x-1][pixel.y];
844
+ if (newPixel.element === "sandboxels_screen") {
845
+ changePixel(newPixel,pixel.element);
846
+ newPixel.dtemp = pixel.dtemp;
847
+ changePixel(pixel,"sandboxels_screen");
848
+ }
849
+ else if (elements[newPixel.element].isScreen === true) {
850
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
851
+ swapPixels(newPixel, pixel)
852
+ }
853
+ }
854
+ }
855
+ },
856
+ state: "solid",
857
+ density: 1500,
858
+ }
859
+
860
+ elements.blood_screen = {
861
+ name:"screen",
862
+ hidden:true,
863
+ color: ["#ff0000","#ee0000"],
864
+ behavior: [
865
+ "XX|XX|XX",
866
+ "SW:sandboxels_screen|XX|SW:sandboxels_screen",
867
+ "SW:sandboxels_screen|XX|SW:sandboxels_screen",
868
+ ],
869
+ properties: {
870
+ dtemp: 20,
871
+ },
872
+ tempHigh: 1500,
873
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
874
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","blood"],
875
+ tempLow: -45,
876
+ stateLow: "sandboxels_screen_off",
877
+ category: "simulation",
878
+ isScreen: true,
879
+ isMoving: true,
880
+ tick: function(pixel) {
881
+ if (pixel.dtemp > 99) { changePixel(pixel,"steam_screen") }
882
+ screenTemp(pixel)
883
+ if (Math.random() > 0.2 && !isEmpty(pixel.x,pixel.y+1,true)) {
884
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
885
+ if (newPixel.element === "sandboxels_screen") {
886
+ changePixel(newPixel,pixel.element);
887
+ newPixel.dtemp = pixel.dtemp;
888
+ changePixel(pixel,"sandboxels_screen");
889
+ }
890
+ else if (elements[newPixel.element].isScreen === true) {
891
+ newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2)
892
+ pixel.dtemp = newPixel.dtemp
893
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
894
+ swapPixels(newPixel, pixel)
895
+ }
896
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
897
+ changePixel(newPixel, "wet_sand_screen")
898
+ changePixel(pixel, "sandboxels_screen")
899
+ }
900
+ }
901
+ else if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y+1,true)) {
902
+ newPixel = pixelMap[pixel.x+1][pixel.y+1];
903
+ if (newPixel.element === "sandboxels_screen") {
904
+ changePixel(newPixel,pixel.element);
905
+ newPixel.dtemp = pixel.dtemp;
906
+ changePixel(pixel,"sandboxels_screen");
907
+
908
+ }
909
+ else if (elements[newPixel.element].isScreen === true) {
910
+ pixel.dtemp = newPixel.dtemp;
911
+ newPixel.dtemp = pixel.dtemp;
912
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
913
+ swapPixels(newPixel, pixel)
914
+ }
915
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
916
+ changePixel(newPixel, "wet_sand_screen")
917
+ changePixel(pixel, "sandboxels_screen")
918
+ }
919
+ }
920
+ }
921
+ else if (!isEmpty(pixel.x-1,pixel.y+1,true)) {
922
+ newPixel = pixelMap[pixel.x-1][pixel.y+1];
923
+ if (newPixel.element === "sandboxels_screen") {
924
+ changePixel(newPixel,pixel.element);
925
+ newPixel.dtemp = pixel.dtemp;
926
+ changePixel(pixel,"sandboxels_screen");
927
+
928
+ }
929
+ else if (elements[newPixel.element].isScreen === true) {
930
+ pixel.dtemp = newPixel.dtemp;
931
+ newPixel.dtemp = pixel.dtemp;
932
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
933
+ swapPixels(newPixel, pixel)
934
+ }
935
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
936
+ changePixel(newPixel, "wet_sand_screen")
937
+ changePixel(pixel, "sandboxels_screen")
938
+ }
939
+ }
940
+ }
941
+ }
942
+ else if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y,true)) {
943
+ var newPixel = pixelMap[pixel.x+1][pixel.y];
944
+ if (newPixel.element === "sandboxels_screen") {
945
+ changePixel(newPixel,pixel.element);
946
+ newPixel.dtemp = pixel.dtemp;
947
+ changePixel(pixel,"sandboxels_screen");
948
+ }
949
+ else if (elements[newPixel.element].isScreen === true) {
950
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
951
+ swapPixels(newPixel, pixel)
952
+ }
953
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
954
+ changePixel(newPixel, "wet_sand_screen")
955
+ changePixel(pixel, "sandboxels_screen")
956
+ }
957
+ }
958
+ }
959
+ else if (!isEmpty(pixel.x-1,pixel.y,true)) {
960
+ var newPixel = pixelMap[pixel.x-1][pixel.y];
961
+ if (newPixel.element === "sandboxels_screen") {
962
+ changePixel(newPixel,pixel.element);
963
+ newPixel.dtemp = pixel.dtemp;
964
+ changePixel(pixel,"sandboxels_screen");
965
+ }
966
+ else if (elements[newPixel.element].isScreen === true) {
967
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
968
+ swapPixels(newPixel, pixel)
969
+ }
970
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
971
+ changePixel(newPixel, "wet_sand_screen")
972
+ changePixel(pixel, "sandboxels_screen")
973
+ }
974
+ }
975
+ }
976
+ },
977
+ state: "solid",
978
+ density: 1060,
979
+ }
980
+
981
+ elements.water_screen = {
982
+ name:"screen",
983
+ hidden:true,
984
+ color: "#2167ff",
985
+ behavior: [
986
+ "XX|XX|XX",
987
+ "SW:sandboxels_screen|XX|SW:sandboxels_screen",
988
+ "SW:sandboxels_screen|XX|SW:sandboxels_screen",
989
+ ],
990
+ properties: {
991
+ dtemp: 20,
992
+ },
993
+ tempHigh: 1500,
994
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
995
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","water"],
996
+ tempLow: -45,
997
+ stateLow: "sandboxels_screen_off",
998
+ category: "simulation",
999
+ isScreen: true,
1000
+ isMoving: true,
1001
+ tick: function(pixel) {
1002
+ if (pixel.dtemp < 0) { changePixel(pixel,"ice_screen") }
1003
+ if (pixel.dtemp > 99) { changePixel(pixel,"steam_screen") }
1004
+ screenTemp(pixel)
1005
+ if (Math.random() > 0.2 && !isEmpty(pixel.x,pixel.y+1,true)) {
1006
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
1007
+ if (newPixel.element === "sandboxels_screen") {
1008
+ changePixel(newPixel,pixel.element);
1009
+ newPixel.dtemp = pixel.dtemp;
1010
+ changePixel(pixel,"sandboxels_screen");
1011
+ }
1012
+ else if (elements[newPixel.element].isScreen === true) {
1013
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
1014
+ swapPixels(newPixel, pixel)
1015
+ }
1016
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
1017
+ changePixel(newPixel, "wet_sand_screen")
1018
+ changePixel(pixel, "sandboxels_screen")
1019
+ }
1020
+ if (elements[newPixel.element].id === elements.dirt_screen.id) {
1021
+ changePixel(newPixel, "mud_screen")
1022
+ changePixel(pixel, "sandboxels_screen")
1023
+ }
1024
+ if (elements[newPixel.element].id === elements.sawdust_screen.id || elements[newPixel.element].id === elements.paper_screen.id) {
1025
+ changePixel(newPixel, "cellulose_screen")
1026
+ changePixel(pixel, "sandboxels_screen")
1027
+ }
1028
+ }
1029
+ else if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y+1,true)) {
1030
+ newPixel = pixelMap[pixel.x+1][pixel.y+1];
1031
+ if (newPixel.element === "sandboxels_screen") {
1032
+ changePixel(newPixel,pixel.element);
1033
+ newPixel.dtemp = pixel.dtemp;
1034
+ changePixel(pixel,"sandboxels_screen");
1035
+
1036
+ }
1037
+ else if (elements[newPixel.element].isScreen === true) {
1038
+ newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2)
1039
+ pixel.dtemp = newPixel.dtemp
1040
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
1041
+ changePixel(newPixel, "wet_sand_screen")
1042
+ changePixel(pixel, "sandboxels_screen")
1043
+ }
1044
+ if (elements[newPixel.element].id === elements.dirt_screen.id) {
1045
+ changePixel(newPixel, "mud_screen")
1046
+ changePixel(pixel, "sandboxels_screen")
1047
+ }
1048
+ if (elements[newPixel.element].id === elements.sawdust_screen.id || elements[newPixel.element].id === elements.paper_screen.id) {
1049
+ changePixel(newPixel, "cellulose_screen")
1050
+ changePixel(pixel, "sandboxels_screen")
1051
+ }
1052
+ }
1053
+ }
1054
+ else if (!isEmpty(pixel.x-1,pixel.y+1,true)) {
1055
+ newPixel = pixelMap[pixel.x-1][pixel.y+1];
1056
+ if (newPixel.element === "sandboxels_screen") {
1057
+ changePixel(newPixel,pixel.element);
1058
+ newPixel.dtemp = pixel.dtemp;
1059
+ changePixel(pixel,"sandboxels_screen");
1060
+
1061
+ }
1062
+ else if (elements[newPixel.element].isScreen === true) {
1063
+ newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2)
1064
+ pixel.dtemp = newPixel.dtemp
1065
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
1066
+ changePixel(newPixel, "wet_sand_screen")
1067
+ changePixel(pixel, "sandboxels_screen")
1068
+ }
1069
+ if (elements[newPixel.element].id === elements.dirt_screen.id) {
1070
+ changePixel(newPixel, "mud_screen")
1071
+ changePixel(pixel, "sandboxels_screen")
1072
+ }
1073
+ if (elements[newPixel.element].id === elements.sawdust_screen.id || elements[newPixel.element].id === elements.paper_screen.id) {
1074
+ changePixel(newPixel, "cellulose_screen")
1075
+ changePixel(pixel, "sandboxels_screen")
1076
+ }
1077
+ }
1078
+ }
1079
+ }
1080
+ else if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y,true)) {
1081
+ var newPixel = pixelMap[pixel.x+1][pixel.y];
1082
+ if (newPixel.element === "sandboxels_screen") {
1083
+ changePixel(newPixel,pixel.element);
1084
+ newPixel.dtemp = pixel.dtemp;
1085
+ changePixel(pixel,"sandboxels_screen");
1086
+ }
1087
+ else if (elements[newPixel.element].isScreen === true) {
1088
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
1089
+ swapPixels(newPixel, pixel)
1090
+ }
1091
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
1092
+ changePixel(newPixel, "wet_sand_screen")
1093
+ changePixel(pixel, "sandboxels_screen")
1094
+ }
1095
+ if (elements[newPixel.element].id === elements.dirt_screen.id) {
1096
+ changePixel(newPixel, "mud_screen")
1097
+ changePixel(pixel, "sandboxels_screen")
1098
+ }
1099
+ if (elements[newPixel.element].id === elements.sawdust_screen.id || elements[newPixel.element].id === elements.paper_screen.id) {
1100
+ changePixel(newPixel, "cellulose_screen")
1101
+ changePixel(pixel, "sandboxels_screen")
1102
+ }
1103
+ }
1104
+ }
1105
+ else if (!isEmpty(pixel.x-1,pixel.y,true)) {
1106
+ var newPixel = pixelMap[pixel.x-1][pixel.y];
1107
+ if (newPixel.element === "sandboxels_screen") {
1108
+ changePixel(newPixel,pixel.element);
1109
+ newPixel.dtemp = pixel.dtemp;
1110
+ changePixel(pixel,"sandboxels_screen");
1111
+ }
1112
+ else if (elements[newPixel.element].isScreen === true) {
1113
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isMoving === true) {
1114
+ swapPixels(newPixel, pixel)
1115
+ }
1116
+ if (elements[newPixel.element].id === elements.sand_screen.id) {
1117
+ changePixel(newPixel, "wet_sand_screen")
1118
+ changePixel(pixel, "sandboxels_screen")
1119
+ }
1120
+ if (elements[newPixel.element].id === elements.dirt_screen.id) {
1121
+ changePixel(newPixel, "mud_screen")
1122
+ changePixel(pixel, "sandboxels_screen")
1123
+ }
1124
+ if (elements[newPixel.element].id === elements.sawdust_screen.id || elements[newPixel.element].id === elements.paper_screen.id) {
1125
+ changePixel(newPixel, "cellulose_screen")
1126
+ changePixel(pixel, "sandboxels_screen")
1127
+ }
1128
+ }
1129
+ }
1130
+ },
1131
+ state: "solid",
1132
+ density: 997,
1133
+ }
1134
+
1135
+ elements.steam_screen = {
1136
+ name:"screen",
1137
+ hidden:true,
1138
+ color: "#abd6ff",
1139
+ properties: {
1140
+ dtemp: 150,
1141
+ },
1142
+ tempHigh: 1500,
1143
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1144
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","steam"],
1145
+ tempLow: -45,
1146
+ stateLow: "sandboxels_screen_off",
1147
+ category: "simulation",
1148
+ isScreen: true,
1149
+ isMoving: true,
1150
+ tick: function(pixel) {
1151
+ if (pixel.dtemp < 100) { changePixel(pixel,"water_screen") }
1152
+ screenTemp(pixel)
1153
+ if (Math.random() > 0.5) {
1154
+ pixel.dir1 = 1
1155
+ }
1156
+ else {
1157
+ pixel.dir1 = -1
1158
+ }
1159
+ if (Math.random() < 0.5) {
1160
+ pixel.dir2 = 1
1161
+ }
1162
+ else {
1163
+ pixel.dir2 = -1
1164
+ }
1165
+ if (Math.random() > 0.25 && !isEmpty(pixel.x+(pixel.dir1),pixel.y-(pixel.dir2),true)) {
1166
+ var newPixel = pixelMap[pixel.x+(pixel.dir1)][pixel.y-(pixel.dir2)];
1167
+ if (newPixel.element === "sandboxels_screen") {
1168
+ changePixel(newPixel,pixel.element);
1169
+ newPixel.dtemp = pixel.dtemp;
1170
+ changePixel(pixel,"sandboxels_screen");
1171
+ }
1172
+ else if (elements[newPixel.element].isScreen === true) {
1173
+ }
1174
+ }
1175
+ },
1176
+ state: "solid",
1177
+ density: 0.6,
1178
+ }
1179
+
1180
+ elements.oxygen_screen = {
1181
+ name:"screen",
1182
+ hidden:true,
1183
+ color: "#99c7ff",
1184
+ properties: {
1185
+ dtemp: 20,
1186
+ },
1187
+ tempHigh: 1500,
1188
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1189
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","oxygen"],
1190
+ tempLow: -45,
1191
+ stateLow: "sandboxels_screen_off",
1192
+ category: "simulation",
1193
+ isScreen: true,
1194
+ isMoving: true,
1195
+ tick: function(pixel) {
1196
+ screenTemp(pixel)
1197
+ if (Math.random() > 0.5) {
1198
+ pixel.dir1 = 1
1199
+ }
1200
+ else {
1201
+ pixel.dir1 = -1
1202
+ }
1203
+ if (Math.random() < 0.5) {
1204
+ pixel.dir2 = 1
1205
+ }
1206
+ else {
1207
+ pixel.dir2 = -1
1208
+ }
1209
+ if (Math.random() > 0.5 && !isEmpty(pixel.x+(pixel.dir1),pixel.y-(pixel.dir2),true)) {
1210
+ var newPixel = pixelMap[pixel.x+(pixel.dir1)][pixel.y-(pixel.dir2)];
1211
+ if (newPixel.element === "sandboxels_screen") {
1212
+ swapPixels(newPixel, pixel)
1213
+ }
1214
+ else if (elements[newPixel.element].isScreen === true) {
1215
+ }
1216
+ }
1217
+ },
1218
+ state: "solid",
1219
+ density: 1.292,
1220
+ }
1221
+
1222
+ elements.fire_screen = {
1223
+ name:"screen",
1224
+ hidden:true,
1225
+ color: ["#ff6b21","#ffa600","#ff4000"],
1226
+ properties: {
1227
+ dtemp: 600,
1228
+ },
1229
+ tempHigh: 1500,
1230
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1231
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","oxygen"],
1232
+ tempLow: -45,
1233
+ stateLow: "sandboxels_screen_off",
1234
+ category: "simulation",
1235
+ isScreen: true,
1236
+ isMoving: true,
1237
+ digburning: true,
1238
+ digburnTime: 25,
1239
+ digburnInto: "smoke_screen",
1240
+ tick: function(pixel) {
1241
+ if (pixel.dtemp < 100) { changePixel(pixel,"smoke_screen") }
1242
+ screenTemp(pixel)
1243
+ doScreenBurning(pixel)
1244
+ if (Math.random() > 0.975) {
1245
+ changePixel(pixel,"smoke_screen")
1246
+ }
1247
+ if (Math.random() > 0.5) {
1248
+ pixel.dir1 = 1
1249
+ }
1250
+ else {
1251
+ pixel.dir1 = -1
1252
+ }
1253
+ if (Math.random() < 0.75) {
1254
+ pixel.dir2 = 1
1255
+ }
1256
+ else {
1257
+ pixel.dir2 = -1
1258
+ }
1259
+ if (Math.random() > 0.05 && !isEmpty(pixel.x+(pixel.dir1),pixel.y-(pixel.dir2),true)) {
1260
+ var newPixel = pixelMap[pixel.x+(pixel.dir1)][pixel.y-(pixel.dir2)];
1261
+ if (newPixel.element === "sandboxels_screen") {
1262
+ swapPixels(newPixel, pixel)
1263
+ }
1264
+ else if (elements[newPixel.element].isScreen === true) {
1265
+ }
1266
+ }
1267
+ },
1268
+ state: "solid",
1269
+ density: 0.1,
1270
+ }
1271
+
1272
+ elements.smoke_screen = {
1273
+ name:"screen",
1274
+ hidden:true,
1275
+ color: "#383838",
1276
+ properties: {
1277
+ dtemp: 20,
1278
+ },
1279
+ tempHigh: 1500,
1280
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1281
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","oxygen"],
1282
+ tempLow: -45,
1283
+ stateLow: "sandboxels_screen_off",
1284
+ category: "simulation",
1285
+ isScreen: true,
1286
+ isMoving: true,
1287
+ tick: function(pixel) {
1288
+ if (pixel.dtemp > 1000) { changePixel(pixel,"fire_screen") }
1289
+ screenTemp(pixel)
1290
+ if (Math.random() > 0.95) {
1291
+ changePixel(pixel,"sandboxels_screen")
1292
+ }
1293
+ if (Math.random() > 0.5) {
1294
+ pixel.dir1 = 1
1295
+ }
1296
+ else {
1297
+ pixel.dir1 = -1
1298
+ }
1299
+ if (Math.random() < 0.5) {
1300
+ pixel.dir2 = 1
1301
+ }
1302
+ else {
1303
+ pixel.dir2 = -1
1304
+ }
1305
+ if (Math.random() > 0.5 && !isEmpty(pixel.x+(pixel.dir1),pixel.y-(pixel.dir2),true)) {
1306
+ var newPixel = pixelMap[pixel.x+(pixel.dir1)][pixel.y-(pixel.dir2)];
1307
+ if (newPixel.element === "sandboxels_screen") {
1308
+ swapPixels(newPixel, pixel)
1309
+ }
1310
+ else if (elements[newPixel.element].isScreen === true) {
1311
+ }
1312
+ }
1313
+ },
1314
+ state: "solid",
1315
+ density: 1.292,
1316
+ }
1317
+
1318
+ elements.body_screen = {
1319
+ color: ["#A8A7AB","#878689"],
1320
+ name:"screen",
1321
+ hidden:true,
1322
+ behavior: behaviors.WALL,
1323
+ properties: {
1324
+ dtemp: 20,
1325
+ dir: 1,
1326
+ },
1327
+ tempHigh: 1500,
1328
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1329
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","body"],
1330
+ tempLow: -45,
1331
+ stateLow: "sandboxels_screen_off",
1332
+ category: "simulation",
1333
+ digBreakInto: "blood_screen",
1334
+ isScreen: true,
1335
+ isSolid: true,
1336
+ dburn: 10,
1337
+ digburnTime: 250,
1338
+ digburnInto: ["fire_screen","ash_screen","ash_screen"],
1339
+ tick: function(pixel) {
1340
+ if (pixel.dtemp > 300) { changePixel(pixel,"ash_screen") }
1341
+ screenTemp(pixel)
1342
+ doScreenBurning(pixel)
1343
+ if (!isEmpty(pixel.x,pixel.y-1,true) && pixelMap[pixel.x][pixel.y-1].element === "head_screen") {
1344
+ var headPixel = pixelMap[pixel.x][pixel.y-1]
1345
+ if (Math.random() > 0.9) {
1346
+ pixel.dir *= -1
1347
+ }
1348
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
1349
+ var newPixel = pixelMap[pixel.x][pixel.y+1]
1350
+ if (newPixel.element === "sandboxels_screen") {
1351
+ swapPixels(headPixel, pixel)
1352
+ swapPixels(newPixel, pixel)
1353
+ }
1354
+ else if (elements[newPixel.element].isScreen === true) {
1355
+ if (Math.random() < 0.5 && !isEmpty(pixel.x+pixel.dir,pixel.y,true) && !isEmpty(pixel.x+pixel.dir,pixel.y-1,true)) {
1356
+ var newPixel = pixelMap[pixel.x+pixel.dir][pixel.y];
1357
+ var newHeadPixel = pixelMap[pixel.x+pixel.dir][pixel.y-1];
1358
+ if (newPixel.element === "sandboxels_screen" && newHeadPixel.element === "sandboxels_screen") {
1359
+ swapPixels(newPixel, pixel)
1360
+ swapPixels(headPixel, newHeadPixel)
1361
+ }
1362
+ else if (newPixel.element !== "sandboxels_screen" && newHeadPixel.element === "sandboxels_screen") {
1363
+ var newPixel2 = newHeadPixel;
1364
+ var newHeadPixel2 = pixelMap[newHeadPixel.x][newHeadPixel.y-1];
1365
+ if (newPixel2.element === "sandboxels_screen" && newHeadPixel2.element === "sandboxels_screen") {
1366
+ swapPixels(newPixel2, pixel)
1367
+ swapPixels(headPixel, newHeadPixel2)
1368
+ }
1369
+ }
1370
+ }
1371
+ }
1372
+ }
1373
+ else if (Math.random() < 0.5 && !isEmpty(pixel.x+pixel.dir,pixel.y,true) && !isEmpty(pixel.x+pixel.dir,pixel.y-1,true)) {
1374
+ var newPixel = pixelMap[pixel.x+pixel.dir][pixel.y];
1375
+ var newHeadPixel = pixelMap[pixel.x+pixel.dir][pixel.y-1];
1376
+ if (newPixel.element === "sandboxels_screen" && newHeadPixel.element === "sandboxels_screen") {
1377
+ swapPixels(newPixel, pixel)
1378
+ swapPixels(headPixel, newHeadPixel)
1379
+ }
1380
+ else if (newPixel.element !== "sandboxels_screen" && newHeadPixel.element === "sandboxels_screen") {
1381
+ var newPixel2 = newHeadPixel;
1382
+ var newHeadPixel2 = pixelMap[newHeadPixel.x][newHeadPixel.y-1];
1383
+ if (newPixel2.element === "sandboxels_screen" && newHeadPixel2.element === "sandboxels_screen") {
1384
+ swapPixels(newPixel2, pixel)
1385
+ swapPixels(headPixel, newHeadPixel2)
1386
+ }
1387
+ }
1388
+ }
1389
+ }
1390
+ else if (!isEmpty(pixel.x,pixel.y+1,true)) {
1391
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
1392
+ if (newPixel.element === "sandboxels_screen") {
1393
+ swapPixels(newPixel, pixel)
1394
+ }
1395
+ else if (elements[newPixel.element].isScreen === true) {
1396
+ }
1397
+ }
1398
+ },
1399
+ }
1400
+
1401
+ elements.head_screen = {
1402
+ color: ["#46433F","#47443C","#4D483D"],
1403
+ name:"screen",
1404
+ hidden:true,
1405
+ behavior: behaviors.WALL,
1406
+ properties: {
1407
+ dtemp: 20,
1408
+ },
1409
+ tempHigh: 1500,
1410
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1411
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","head"],
1412
+ tempLow: -45,
1413
+ stateLow: "sandboxels_screen_off",
1414
+ category: "simulation",
1415
+ digBreakInto: "blood_screen",
1416
+ isScreen: true,
1417
+ isSolid: true,
1418
+ dburn: 10,
1419
+ digburnTime: 250,
1420
+ digburnInto: ["fire_screen","ash_screen","ash_screen"],
1421
+ tick: function(pixel) {
1422
+ if (pixel.dtemp > 300) { changePixel(pixel,"ash_screen") }
1423
+ screenTemp(pixel)
1424
+ doScreenBurning(pixel)
1425
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
1426
+ var newPixel = pixelMap[pixel.x][pixel.y+1];
1427
+ if (newPixel.element === "sandboxels_screen") {
1428
+ if (Math.random() < 0.1) {
1429
+ changePixel(newPixel,"blood_screen");
1430
+ newPixel.dtemp = pixel.dtemp;
1431
+ }
1432
+ else {
1433
+ changePixel(newPixel,"head_screen");
1434
+ newPixel.dtemp = pixel.dtemp;
1435
+ changePixel(pixel,"sandboxels_screen");
1436
+
1437
+ }
1438
+ }
1439
+ else if (elements[newPixel.element].isScreen === true) {
1440
+ }
1441
+ }
1442
+ },
1443
+ }
1444
+
1445
+ elements.fly_screen = {
1446
+ name:"screen",
1447
+ hidden:true,
1448
+ color: "#4c4e42",
1449
+ properties: {
1450
+ dtemp: 20,
1451
+ dir: 1,
1452
+ },
1453
+ tempHigh: 1500,
1454
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1455
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","fly"],
1456
+ tempLow: -45,
1457
+ stateLow: "sandboxels_screen_off",
1458
+ category: "simulation",
1459
+ digBreakInto: "blood_screen",
1460
+ isScreen: true,
1461
+ isMoving: true,
1462
+ isSolid: true,
1463
+ dburn: 95,
1464
+ digburnTime: 25,
1465
+ digburnInto: ["fire_screen","ash_screen","ash_screen"],
1466
+ tick: function(pixel) {
1467
+ if (pixel.dtemp > 100) { changePixel(pixel,"ash_screen") }
1468
+ screenTemp(pixel)
1469
+ doScreenBurning(pixel)
1470
+ if (outOfBounds(pixel.x+(pixel.dir),pixel.y) || isEmpty(pixel.x+(pixel.dir),pixel.y)) {
1471
+ if (pixel.dir === -1) {
1472
+ pixel.dir = 1
1473
+ }
1474
+ else if (pixel.dir === 1) {
1475
+ pixel.dir = -1
1476
+ }
1477
+ }
1478
+ if (Math.random() > 0.5 && !isEmpty(pixel.x+(pixel.dir),pixel.y-1,true)) {
1479
+ var newPixel = pixelMap[pixel.x+(pixel.dir)][pixel.y-1];
1480
+ if (newPixel.element === "sandboxels_screen") {
1481
+ swapPixels(newPixel, pixel)
1482
+ }
1483
+ else if (elements[newPixel.element].isScreen === true || newPixel.element !== "sandboxels_screen") {
1484
+ if (pixel.dir === -1) {
1485
+ pixel.dir = 1
1486
+ }
1487
+ else if (pixel.dir === 1) {
1488
+ pixel.dir = -1
1489
+ }
1490
+ }
1491
+ }
1492
+ else if (!isEmpty(pixel.x+(pixel.dir),pixel.y+1,true)) {
1493
+ var newPixel = pixelMap[pixel.x+(pixel.dir)][pixel.y+1];
1494
+ if (newPixel.element === "sandboxels_screen") {
1495
+ swapPixels(newPixel, pixel)
1496
+ }
1497
+ else if (elements[newPixel.element].isScreen === true || newPixel.element !== "sandboxels_screen") {
1498
+ if (pixel.dir === -1) {
1499
+ pixel.dir = 1
1500
+ }
1501
+ else if (pixel.dir === 1) {
1502
+ pixel.dir = -1
1503
+ }
1504
+ }
1505
+ }
1506
+ },
1507
+ state: "solid",
1508
+ density: 600,
1509
+ }
1510
+
1511
+ elements.bird_screen = {
1512
+ name:"screen",
1513
+ hidden:true,
1514
+ color: "#997457",
1515
+ properties: {
1516
+ dtemp: 20,
1517
+ dir: 1,
1518
+ },
1519
+ tempHigh: 1500,
1520
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1521
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","bird"],
1522
+ tempLow: -45,
1523
+ stateLow: "sandboxels_screen_off",
1524
+ category: "simulation",
1525
+ digBreakInto: "blood_screen",
1526
+ isScreen: true,
1527
+ isMoving: true,
1528
+ isSolid: true,
1529
+ dburn: 2,
1530
+ digburnTime: 100,
1531
+ digburnInto: ["fire_screen","ash_screen","ash_screen"],
1532
+ tick: function(pixel) {
1533
+ if (pixel.dtemp > 300) { changePixel(pixel,"ash_screen") }
1534
+ screenTemp(pixel)
1535
+ doScreenBurning(pixel)
1536
+ if (outOfBounds(pixel.x+(pixel.dir),pixel.y) || isEmpty(pixel.x+(pixel.dir),pixel.y)) {
1537
+ if (pixel.dir === -1) {
1538
+ pixel.dir = 1
1539
+ }
1540
+ else if (pixel.dir === 1) {
1541
+ pixel.dir = -1
1542
+ }
1543
+ }
1544
+ if (Math.random() > 0.25 && !isEmpty(pixel.x+(pixel.dir),pixel.y,true)) {
1545
+ var newPixel = pixelMap[pixel.x+(pixel.dir)][pixel.y];
1546
+ if (newPixel.element === "sandboxels_screen") {
1547
+ swapPixels(newPixel, pixel)
1548
+ }
1549
+ else if (elements[newPixel.element].isScreen === true || newPixel.element !== "sandboxels_screen") {
1550
+ if (elements[newPixel.element].id === elements.fly_screen.id && Math.random() < 0.5) {
1551
+ changePixel(newPixel, "sandboxels_screen")
1552
+ }
1553
+ if (pixel.dir === -1) {
1554
+ pixel.dir = 1
1555
+ }
1556
+ else if (pixel.dir === 1) {
1557
+ pixel.dir = -1
1558
+ }
1559
+ }
1560
+ }
1561
+ else {
1562
+ if (Math.random() > 0.5 && !isEmpty(pixel.x+(pixel.dir),pixel.y+1,true)) {
1563
+ var newPixel = pixelMap[pixel.x+(pixel.dir)][pixel.y+1];
1564
+ if (newPixel.element === "sandboxels_screen") {
1565
+ swapPixels(newPixel, pixel)
1566
+ }
1567
+ else if (elements[newPixel.element].isScreen === true || newPixel.element !== "sandboxels_screen") {
1568
+ newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2)
1569
+ pixel.dtemp = newPixel.dtemp
1570
+ if (elements[newPixel.element].id === elements.fly_screen.id && Math.random() < 0.5) {
1571
+ changePixel(newPixel, "sandboxels_screen")
1572
+ }
1573
+ if (pixel.dir === -1) {
1574
+ pixel.dir = 1
1575
+ }
1576
+ else if (pixel.dir === 1) {
1577
+ pixel.dir = -1
1578
+ }
1579
+ }
1580
+ }
1581
+ else if (!isEmpty(pixel.x+(pixel.dir),pixel.y-1,true)) {
1582
+ var newPixel = pixelMap[pixel.x+(pixel.dir)][pixel.y-1];
1583
+ if (newPixel.element === "sandboxels_screen") {
1584
+ swapPixels(newPixel, pixel)
1585
+ }
1586
+ else if (elements[newPixel.element].isScreen === true || newPixel.element !== "sandboxels_screen") {
1587
+ newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2)
1588
+ pixel.dtemp = newPixel.dtemp
1589
+ if (elements[newPixel.element].id === elements.fly_screen.id && Math.random() < 0.5) {
1590
+ changePixel(newPixel, "sandboxels_screen")
1591
+ }
1592
+ if (pixel.dir === -1) {
1593
+ pixel.dir = 1
1594
+ }
1595
+ else if (pixel.dir === 1) {
1596
+ pixel.dir = -1
1597
+ }
1598
+ }
1599
+ }
1600
+ }
1601
+ },
1602
+ state: "solid",
1603
+ density: 400,
1604
+ }
1605
+
1606
+ elements.rat_screen = {
1607
+ color: ["#a698a9","#8c7d82","#ccc3cf"],
1608
+ name:"screen",
1609
+ hidden:true,
1610
+ behavior: [
1611
+ "XX|XX|XX",
1612
+ "XX|XX|XX",
1613
+ "XX|XX|XX",
1614
+ ],
1615
+ properties: {
1616
+ dtemp: 20,
1617
+ },
1618
+ tempHigh: 1500,
1619
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1620
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","rat"],
1621
+ tempLow: -45,
1622
+ stateLow: "sandboxels_screen_off",
1623
+ category: "simulation",
1624
+ digBreakInto: "blood_screen",
1625
+ isScreen: true,
1626
+ isSolid: true,
1627
+ isMoving: true,
1628
+ dburn: 2,
1629
+ digburnTime: 100,
1630
+ digburnInto: ["fire_screen","ash_screen","ash_screen"],
1631
+ tick: function(pixel) {
1632
+ if (pixel.dtemp > 300) { changePixel(pixel,"ash_screen") }
1633
+ screenTemp(pixel)
1634
+ doScreenBurning(pixel)
1635
+ if (!isEmpty(pixel.x,pixel.y+1,true)) {
1636
+ var newPixel = pixelMap[pixel.x][pixel.y+1]
1637
+ if (newPixel.element === "sandboxels_screen") {
1638
+ swapPixels(newPixel,pixel);
1639
+ }
1640
+ else if (Math.random() < 0.25 && elements[newPixel.element].isScreen === true) {
1641
+ if (elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
1642
+ swapPixels(newPixel, pixel)
1643
+ }
1644
+ if (Math.random() < 0.5 && !isEmpty(pixel.x+1,pixel.y,true) && !isEmpty(pixel.x+1,pixel.y-1,true)) {
1645
+ var newPixel = pixelMap[pixel.x+1][pixel.y];
1646
+ var newUpPixel = pixelMap[pixel.x+1][pixel.y-1];
1647
+ if (newPixel.element === "sandboxels_screen" || elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
1648
+ swapPixels(newPixel,pixel);
1649
+ }
1650
+ else if (newPixel.element !== "sandboxels_screen" && newUpPixel.element === "sandboxels_screen") {
1651
+ swapPixels(newUpPixel,pixel);
1652
+ }
1653
+ }
1654
+ else if (!isEmpty(pixel.x-1,pixel.y,true) && !isEmpty(pixel.x-1,pixel.y-1,true)) {
1655
+ var newPixel = pixelMap[pixel.x-1][pixel.y];
1656
+ var newUpPixel = pixelMap[pixel.x-1][pixel.y-1];
1657
+ if (newPixel.element === "sandboxels_screen" || elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
1658
+ swapPixels(newPixel,pixel);
1659
+ }
1660
+ else if (newPixel.element !== "sandboxels_screen" && newUpPixel.element === "sandboxels_screen") {
1661
+ swapPixels(newUpPixel,pixel);
1662
+ }
1663
+ }
1664
+ }
1665
+ }
1666
+ else if (Math.random() < 0.25) {
1667
+ if (Math.random() < 0.5 && !isEmpty(pixel.x+1,pixel.y,true) && !isEmpty(pixel.x+1,pixel.y-1,true)) {
1668
+ var newPixel = pixelMap[pixel.x+1][pixel.y];
1669
+ var newUpPixel = pixelMap[pixel.x+1][pixel.y-1];
1670
+ if (newPixel.element === "sandboxels_screen" || elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
1671
+ swapPixels(newPixel,pixel);
1672
+ }
1673
+ else if (newPixel.element !== "sandboxels_screen" && newUpPixel.element === "sandboxels_screen") {
1674
+ swapPixels(newUpPixel,pixel);
1675
+ }
1676
+ }
1677
+ else if (!isEmpty(pixel.x-1,pixel.y,true) && !isEmpty(pixel.x-1,pixel.y-1,true)) {
1678
+ var newPixel = pixelMap[pixel.x-1][pixel.y];
1679
+ var newUpPixel = pixelMap[pixel.x-1][pixel.y-1];
1680
+ if (newPixel.element === "sandboxels_screen" || elements[newPixel.element].density < elements[pixel.element].density && elements[newPixel.element].isSolid !== true && elements[newPixel.element].isMoving === true) {
1681
+ swapPixels(newPixel,pixel);
1682
+ }
1683
+ else if (newPixel.element !== "sandboxels_screen" && newUpPixel.element === "sandboxels_screen") {
1684
+ swapPixels(newUpPixel,pixel);
1685
+ }
1686
+ }
1687
+ }
1688
+ },
1689
+ density: 1450,
1690
+ }
1691
+
1692
+ elements.ice_screen = {
1693
+ name:"screen",
1694
+ hidden:true,
1695
+ color: "#b2daeb",
1696
+ behavior: behaviors.WALL,
1697
+ properties: {
1698
+ dtemp: 0,
1699
+ },
1700
+ tempHigh: 1500,
1701
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1702
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","ice"],
1703
+ tempLow: -45,
1704
+ stateLow: "sandboxels_screen_off",
1705
+ category: "simulation",
1706
+ isScreen: true,
1707
+ isSolid: true,
1708
+ tick: function(pixel) {
1709
+ if (pixel.dtemp > 5) { changePixel(pixel,"water_screen") }
1710
+ screenTemp(pixel)
1711
+ },
1712
+ state: "solid",
1713
+ density: 1200,
1714
+ }
1715
+
1716
+ elements.wood_screen = {
1717
+ name:"screen",
1718
+ hidden:true,
1719
+ color: "#a0522d",
1720
+ behavior: behaviors.WALL,
1721
+ properties: {
1722
+ dtemp: 20,
1723
+ },
1724
+ digBreakInto: "sawdust_screen",
1725
+ isScreen: true,
1726
+ isSolid: true,
1727
+ dburn: 5,
1728
+ digburnTime: 300,
1729
+ digburnInto: ["fire_screen","ash_screen"],
1730
+ tick: function(pixel) {
1731
+ if (pixel.dtemp > 400) { changePixel(pixel,"fire_screen") }
1732
+ screenTemp(pixel)
1733
+ doScreenBurning(pixel)
1734
+ },
1735
+ tempHigh: 1500,
1736
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1737
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","wood"],
1738
+ tempLow: -45,
1739
+ stateLow: "sandboxels_screen_off",
1740
+ category: "simulation",
1741
+ state: "solid",
1742
+ density: 1200,
1743
+ }
1744
+
1745
+ elements.paper_screen = {
1746
+ name:"screen",
1747
+ hidden:true,
1748
+ color: "#f0f0f0",
1749
+ behavior: behaviors.WALL,
1750
+ properties: {
1751
+ dtemp: 20,
1752
+ },
1753
+ isScreen: true,
1754
+ isSolid: true,
1755
+ dburn: 70,
1756
+ digburnTime: 300,
1757
+ digburnInto: ["fire_screen","fire_screen","fire_screen","fire_screen","fire_screen","fire_screen","ash_screen"],
1758
+ tick: function(pixel) {
1759
+ if (pixel.dtemp > 248) { changePixel(pixel,"fire_screen") }
1760
+ screenTemp(pixel)
1761
+ doScreenBurning(pixel)
1762
+ },
1763
+ tempHigh: 1500,
1764
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1765
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","paper"],
1766
+ tempLow: -45,
1767
+ stateLow: "sandboxels_screen_off",
1768
+ category: "simulation",
1769
+ state: "solid",
1770
+ density: 1200,
1771
+ }
1772
+
1773
+ elements.wall_screen = {
1774
+ name:"screen",
1775
+ hidden:true,
1776
+ color: "#808080",
1777
+ behavior: behaviors.WALL,
1778
+ properties: {
1779
+ dtemp: 0,
1780
+ },
1781
+ isScreen: true,
1782
+ isSolid: true,
1783
+ tempHigh: 1500,
1784
+ stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"],
1785
+ breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","concrete"],
1786
+ tempLow: -45,
1787
+ stateLow: "sandboxels_screen_off",
1788
+ category: "simulation",
1789
+ state: "solid",
1790
+ density: 1200,
1791
+ }
1792
+
1793
+ elements.simulated_sand = {
1794
+ color: "#e6d577",
1795
+ tool: function(pixel) {
1796
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1797
+ changePixel(pixel,"sand_screen");
1798
+ }
1799
+ },
1800
+ insulate:true,
1801
+ canPlace: false,
1802
+ category: "simulation",
1803
+ desc: "Use on screen to place simulated sand."
1804
+ }
1805
+
1806
+ elements.simulated_dirt = {
1807
+ color: ["#76552b","#5c4221","#573c1a","#6b481e"],
1808
+ tool: function(pixel) {
1809
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1810
+ changePixel(pixel,"dirt_screen");
1811
+ }
1812
+ },
1813
+ insulate:true,
1814
+ canPlace: false,
1815
+ category: "simulation",
1816
+ desc: "Use on screen to place simulated dirt."
1817
+ }
1818
+
1819
+ elements.simulated_wet_sand = {
1820
+ color: ["#a19348","#b5a85e"],
1821
+ tool: function(pixel) {
1822
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1823
+ changePixel(pixel,"wet_sand_screen");
1824
+ }
1825
+ },
1826
+ insulate:true,
1827
+ canPlace: false,
1828
+ category: "simulation",
1829
+ desc: "Use on screen to place simulated wet sand."
1830
+ }
1831
+
1832
+ elements.simulated_mud = {
1833
+ color: "#382417",
1834
+ tool: function(pixel) {
1835
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1836
+ changePixel(pixel,"mud_screen");
1837
+ }
1838
+ },
1839
+ insulate:true,
1840
+ canPlace: false,
1841
+ category: "simulation",
1842
+ desc: "Use on screen to place simulated mud."
1843
+ }
1844
+
1845
+ elements.simulated_rock = {
1846
+ color: ["#808080","#4f4f4f","#949494"],
1847
+ tool: function(pixel) {
1848
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1849
+ changePixel(pixel,"rock_screen");
1850
+ }
1851
+ },
1852
+ insulate:true,
1853
+ canPlace: false,
1854
+ category: "simulation",
1855
+ desc: "Use on screen to place simulated sand."
1856
+ }
1857
+
1858
+ elements.simulated_ash = {
1859
+ color: ["#8c8c8c","#9c9c9c"],
1860
+ tool: function(pixel) {
1861
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1862
+ changePixel(pixel,"ash_screen");
1863
+ }
1864
+ },
1865
+ insulate:true,
1866
+ canPlace: false,
1867
+ category: "simulation",
1868
+ desc: "Use on screen to place simulated ash."
1869
+ }
1870
+
1871
+ elements.simulated_water = {
1872
+ color: "#2167ff",
1873
+ tool: function(pixel) {
1874
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1875
+ changePixel(pixel,"water_screen");
1876
+ }
1877
+ },
1878
+ insulate:true,
1879
+ canPlace: false,
1880
+ category: "simulation",
1881
+ desc: "Use on a screen to place simulated water."
1882
+ }
1883
+
1884
+ elements.simulated_ice = {
1885
+ color: "#b2daeb",
1886
+ tool: function(pixel) {
1887
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1888
+ changePixel(pixel,"ice_screen");
1889
+ }
1890
+ },
1891
+ insulate:true,
1892
+ canPlace: false,
1893
+ category: "simulation",
1894
+ desc: "Use on a screen to place simulated ice."
1895
+ }
1896
+
1897
+ elements.simulated_steam = {
1898
+ color: "#abd6ff",
1899
+ tool: function(pixel) {
1900
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1901
+ changePixel(pixel,"steam_screen");
1902
+ }
1903
+ },
1904
+ insulate:true,
1905
+ canPlace: false,
1906
+ category: "simulation",
1907
+ desc: "Use on a screen to place simulated steam."
1908
+ }
1909
+
1910
+ elements.simulated_blood = {
1911
+ color: ["#ff0000","#ee0000"],
1912
+ tool: function(pixel) {
1913
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1914
+ changePixel(pixel,"blood_screen");
1915
+ }
1916
+ },
1917
+ insulate:true,
1918
+ canPlace: false,
1919
+ category: "simulation",
1920
+ desc: "Use on a screen to place simulated blood."
1921
+ }
1922
+
1923
+ elements.simulated_fly = {
1924
+ color: "#4c4e42",
1925
+ tool: function(pixel) {
1926
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1927
+ changePixel(pixel,"fly_screen");
1928
+ }
1929
+ },
1930
+ insulate:true,
1931
+ canPlace: false,
1932
+ category: "simulation",
1933
+ desc: "Use on a screen to place simulated flies."
1934
+ }
1935
+
1936
+ elements.simulated_bird = {
1937
+ color: "#997457",
1938
+ tool: function(pixel) {
1939
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1940
+ changePixel(pixel,"bird_screen");
1941
+ }
1942
+ },
1943
+ insulate:true,
1944
+ canPlace: false,
1945
+ category: "simulation",
1946
+ desc: "Use on a screen to place simulated birds."
1947
+ }
1948
+
1949
+ elements.simulated_rat = {
1950
+ color: ["#a698a9","#8c7d82","#ccc3cf"],
1951
+ tool: function(pixel) {
1952
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1953
+ changePixel(pixel,"rat_screen");
1954
+ }
1955
+ },
1956
+ insulate:true,
1957
+ canPlace: false,
1958
+ category: "simulation",
1959
+ desc: "Use on a screen to place simulated rats."
1960
+ }
1961
+
1962
+ elements.simulated_oxygen = {
1963
+ color: "#99c7ff",
1964
+ tool: function(pixel) {
1965
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1966
+ changePixel(pixel,"oxygen_screen");
1967
+ }
1968
+ },
1969
+ insulate:true,
1970
+ canPlace: false,
1971
+ category: "simulation",
1972
+ desc: "Use on a screen to place simulated oxygen."
1973
+ }
1974
+
1975
+ elements.simulated_fire = {
1976
+ color: ["#ff6b21","#ffa600","#ff4000"],
1977
+ tool: function(pixel) {
1978
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1979
+ changePixel(pixel,"fire_screen");
1980
+ pixel.digburning = true
1981
+ }
1982
+ },
1983
+ insulate:true,
1984
+ canPlace: false,
1985
+ category: "simulation",
1986
+ desc: "Use on a screen to place simulated fire."
1987
+ }
1988
+
1989
+ elements.simulated_smoke = {
1990
+ color: "#383838",
1991
+ tool: function(pixel) {
1992
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
1993
+ changePixel(pixel,"smoke_screen");
1994
+ }
1995
+ },
1996
+ insulate:true,
1997
+ canPlace: false,
1998
+ category: "simulation",
1999
+ desc: "Use on a screen to place simulated smoke."
2000
+ }
2001
+
2002
+ elements.simulated_sawdust = {
2003
+ color: ["#dec150","#c7b15a"],
2004
+ tool: function(pixel) {
2005
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
2006
+ changePixel(pixel,"sawdust_screen");
2007
+ }
2008
+ },
2009
+ insulate:true,
2010
+ canPlace: false,
2011
+ category: "simulation",
2012
+ desc: "Use on screen to place simulated sawdust."
2013
+ }
2014
+
2015
+ elements.simulated_wood = {
2016
+ color: "#a0522d",
2017
+ tool: function(pixel) {
2018
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
2019
+ changePixel(pixel,"wood_screen");
2020
+ }
2021
+ },
2022
+ insulate:true,
2023
+ canPlace: false,
2024
+ category: "simulation",
2025
+ desc: "Use on a screen to place simulated wood."
2026
+ }
2027
+
2028
+ elements.simulated_paper = {
2029
+ color: "#f0f0f0",
2030
+ tool: function(pixel) {
2031
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
2032
+ changePixel(pixel,"paper_screen");
2033
+ }
2034
+ },
2035
+ insulate:true,
2036
+ canPlace: false,
2037
+ category: "simulation",
2038
+ desc: "Use on a screen to place simulated paper."
2039
+ }
2040
+
2041
+ elements.simulated_wall = {
2042
+ color: "#808080",
2043
+ tool: function(pixel) {
2044
+ if (elements[pixel.element].id === elements.sandboxels_screen.id) {
2045
+ changePixel(pixel,"wall_screen");
2046
+ }
2047
+ },
2048
+ insulate:true,
2049
+ canPlace: false,
2050
+ category: "simulation",
2051
+ desc: "Use on a screen to place simulated wall."
2052
+ }
2053
+
2054
+ elements.danger_suit = {
2055
+ color: ["#A8A7AB","#878689"],
2056
+ behavior: behaviors.STURDYPOWDER,
2057
+ reactions: {
2058
+ "radiation": { elem2:"electric", temp1:200 },
2059
+ "body":{ elem1:null, elem2:"suited_body" },
2060
+ },
2061
+ tempHigh: 500,
2062
+ stateHigh: ["molten_aluminum","smoke","ash"],
2063
+ burn: 1,
2064
+ burnTime: 300,
2065
+ burnInto: ["molten_aluminum","smoke","smoke","smoke","ash"],
2066
+ category: "simulation",
2067
+ state: "solid",
2068
+ density: 2710,
2069
+ conduct: 0.73,
2070
+ hardness: 0.05,
2071
+ breakInto: "metal_scrap",
2072
+ fireColor: "#A7B3BF",
2073
+ superconductAt: -271.95
2074
+ }
2075
+
2076
+ elements.danger_helmet = {
2077
+ color: ["#323233","#434344"],
2078
+ behavior: behaviors.STURDYPOWDER,
2079
+ reactions: {
2080
+ "head":{ elem1:null, elem2:"suited_head" },
2081
+ },
2082
+ tempHigh: 1500,
2083
+ stateHigh: ["molten_glass","molten_glass","molten_plastic"],
2084
+ burn: 1,
2085
+ burnTime: 200,
2086
+ burnInto: ["glass_shard","glass_shard","glass_shard","glass_shard","dioxin","smoke","dioxin","smoke","stench"],
2087
+ category: "simulation",
2088
+ state: "solid",
2089
+ density: 2500,
2090
+ breakInto: "glass_shard",
2091
+ }
2092
+
2093
+ elements.suited_body = {
2094
+ color: ["#A8A7AB","#878689"],
2095
+ category: "life",
2096
+ hidden: true,
2097
+ density: 2710,
2098
+ state: "solid",
2099
+ conduct: .05,
2100
+ temp: 37,
2101
+ tempHigh: 300,
2102
+ stateHigh: ["cooked_meat","cooked_meat","cooked_meat","cooked_meat","ash"],
2103
+ tempLow: -75,
2104
+ stateLow: "frozen_meat",
2105
+ burn: 10,
2106
+ burnTime: 250,
2107
+ burnInto: ["cooked_meat","cooked_meat","cooked_meat","cooked_meat","cooked_meat","cooked_meat","cooked_meat","cooked_meat","molten_aluminum","smoke","smoke","smoke","ash"],
2108
+ breakInto: ["blood","meat","bone"],
2109
+ forceSaveColor: true,
2110
+ reactions: {
2111
+ "egg": { elem2:"yolk", chance:0.5, oneway:true },
2112
+ "grape": { elem2:"juice", chance:0.5, color2:"#291824", oneway:true },
2113
+ "ant": { elem2:"dead_bug", chance:0.05, oneway:true },
2114
+ "fly": { elem2:"dead_bug", oneway:true },
2115
+ "firefly": { elem2:"dead_bug", oneway:true },
2116
+ "bee": { elem2:"dead_bug", oneway:true },
2117
+ "flea": { elem2:"dead_bug", oneway:true },
2118
+ "termite": { elem2:"dead_bug", oneway:true },
2119
+ "worm": { elem2:"slime", chance:0.05, oneway:true },
2120
+ "stink_bug": { elem2:"stench", oneway:true },
2121
+ "gold_coin": { elem2:null, chance:0.05 },
2122
+ "diamond": { elem2:null, chance:0.05 },
2123
+ "sun": { elem1:"cooked_meat" },
2124
+ },
2125
+ properties: {
2126
+ dead: false,
2127
+ dir: 1,
2128
+ panic: 0
2129
+ },
2130
+ tick: function(pixel) {
2131
+ if (tryMove(pixel, pixel.x, pixel.y+1)) { // Fall
2132
+ if (!isEmpty(pixel.x, pixel.y-2, true)) { // Drag head down
2133
+ var headpixel = pixelMap[pixel.x][pixel.y-2];
2134
+ if (headpixel.element == "head") {
2135
+ if (isEmpty(pixel.x, pixel.y-1)) {
2136
+ movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1);
2137
+ }
2138
+ else {
2139
+ swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]);
2140
+ }
2141
+ }
2142
+ if (headpixel.element == "suited_head") {
2143
+ if (isEmpty(pixel.x, pixel.y-1)) {
2144
+ movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1);
2145
+ }
2146
+ else {
2147
+ swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]);
2148
+ }
2149
+ }
2150
+ }
2151
+ }
2152
+ doHeat(pixel);
2153
+ doBurning(pixel);
2154
+ doElectricity(pixel);
2155
+ if (pixel.dead) {
2156
+ // Turn into rotten_meat if pixelTicks-dead > 500
2157
+ if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) {
2158
+ changePixel(pixel,"rotten_meat");
2159
+ }
2160
+ return
2161
+ }
2162
+
2163
+ // Find the head
2164
+ if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "head") {
2165
+ var head = pixelMap[pixel.x][pixel.y-1];
2166
+ if (head.dead) { // If head is dead, kill body
2167
+ pixel.dead = head.dead;
2168
+ }
2169
+ }
2170
+ else if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "suited_head") {
2171
+ var head = pixelMap[pixel.x][pixel.y-1];
2172
+ if (head.dead) { // If head is dead, kill body
2173
+ pixel.dead = head.dead;
2174
+ }
2175
+ }
2176
+ else { var head = null }
2177
+ if (pixel.burning) {
2178
+ pixel.panic += 0.1;
2179
+ if (head && pixelTicks-pixel.burnStart > 240) {
2180
+ pixel.color = head.color;
2181
+ }
2182
+ }
2183
+ else if (pixel.panic > 0) {
2184
+ pixel.panic -= 0.1;
2185
+ }
2186
+
2187
+ if (isEmpty(pixel.x, pixel.y-1)) {
2188
+ // create blood if decapitated 10% chance
2189
+ if (Math.random() < 0.1 && !pixel.charge) {
2190
+ createPixel("blood", pixel.x, pixel.y-1);
2191
+ // set dead to true 15% chance
2192
+ if (Math.random() < 0.15) {
2193
+ pixel.dead = pixelTicks;
2194
+ }
2195
+ }
2196
+ }
2197
+ else if (head == null) { return }
2198
+ else if (Math.random() < 0.1*(isEmpty(pixel.x, pixel.y+1) ? 1 : pixel.panic+1)) { // Move 10% chance
2199
+ var movesToTry = [
2200
+ [1*pixel.dir,0],
2201
+ [1*pixel.dir,-1],
2202
+ ];
2203
+ // While movesToTry is not empty, tryMove(pixel, x, y) with a random move, then remove it. if tryMove returns true, break.
2204
+ while (movesToTry.length > 0) {
2205
+ var move = movesToTry.splice(Math.floor(Math.random() * movesToTry.length), 1)[0];
2206
+ if (isEmpty(pixel.x+move[0], pixel.y+move[1]-1)) {
2207
+ var origx = pixel.x+move[0];
2208
+ var origy = pixel.y+move[1];
2209
+ if (tryMove(pixel, pixel.x+move[0], pixel.y+move[1]) && pixel.x===origx && pixel.y===origy) {
2210
+ movePixel(head, head.x+move[0], head.y+move[1]);
2211
+ break;
2212
+ }
2213
+ }
2214
+ }
2215
+ // 15% chance to change direction
2216
+ if (Math.random() < 0.15) {
2217
+ pixel.dir *= -1;
2218
+ }
2219
+ // homeostasis
2220
+ if (pixel.temp > 37) { pixel.temp -= 1; }
2221
+ else if (pixel.temp < 37) { pixel.temp += 1; }
2222
+ }
2223
+
2224
+ }
2225
+ }
2226
+
2227
+ elements.suited_head = {
2228
+ color: ["#46433F","#47443C","#4D483D"],
2229
+ category: "life",
2230
+ hidden: true,
2231
+ density: 1080,
2232
+ state: "solid",
2233
+ conduct: .05,
2234
+ temp: 37,
2235
+ tempHigh: 300,
2236
+ stateHigh: ["cooked_meat","cooked_meat","cooked_meat","cooked_meat","glass_shard"],
2237
+ tempLow: -75,
2238
+ stateLow: "frozen_meat",
2239
+ burn: 10,
2240
+ burnTime: 250,
2241
+ burnInto: ["cooked_meat","cooked_meat","cooked_meat","cooked_meat","cooked_meat","cooked_meat","cooked_meat","cooked_meat","melted_plastic","glass_shard"],
2242
+ breakInto: ["blood","meat","bone","blood","meat","bone","glass_shard"],
2243
+ forceSaveColor: true,
2244
+ reactions: {
2245
+ "oxygen": { elem2:"carbon_dioxide", chance:0.5 },
2246
+ "sun": { elem1:"cooked_meat" },
2247
+ "water": { elem2:"bubble", attr2:{"clone":"water"}, chance:0.001 },
2248
+ "salt_water": { elem2:"bubble", attr2:{"clone":"salt_water"}, chance:0.001 },
2249
+ "pool_water": { elem2:"bubble", attr2:{"clone":"pool_water"}, chance:0.001 },
2250
+ },
2251
+ properties: {
2252
+ dead: false
2253
+ },
2254
+ tick: function(pixel) {
2255
+ doHeat(pixel);
2256
+ doBurning(pixel);
2257
+ doElectricity(pixel);
2258
+ if (pixel.dead) {
2259
+ // Turn into rotten_meat if pixelTicks-dead > 500
2260
+ if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) {
2261
+ changePixel(pixel,"rotten_meat");
2262
+ return
2263
+ }
2264
+ }
2265
+
2266
+ // Find the body
2267
+ if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "body") {
2268
+ var body = pixelMap[pixel.x][pixel.y+1];
2269
+ if (body.dead) { // If body is dead, kill head
2270
+ pixel.dead = body.dead;
2271
+ }
2272
+ }
2273
+ else if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "suited_body") {
2274
+ var body = pixelMap[pixel.x][pixel.y+1];
2275
+ if (body.dead) { // If body is dead, kill head
2276
+ pixel.dead = body.dead;
2277
+ }
2278
+ }
2279
+ else { var body = null }
2280
+
2281
+ if (tryMove(pixel, pixel.x, pixel.y+1)) {
2282
+ // create blood if severed 10% chance
2283
+ if (isEmpty(pixel.x, pixel.y+1) && !pixel.dead && Math.random() < 0.1 && !pixel.charge) {
2284
+ createPixel("blood", pixel.x, pixel.y+1);
2285
+ // set dead to true 15% chance
2286
+ if (Math.random() < 0.15) {
2287
+ pixel.dead = pixelTicks;
2288
+ }
2289
+ }
2290
+ }
2291
+ // homeostasis
2292
+ if (pixel.temp > 37) { pixel.temp -= 1; }
2293
+ else if (pixel.temp < 37) { pixel.temp += 1; }
2294
+ }
2295
+ }
2296
+
2297
+ elements.digitalizer = {
2298
+ color: ["#d1c6be","#b5c0ad","#b9b8bc"],
2299
+ behavior: behaviors.WALL,
2300
+ onSelect: function() {
2301
+ logMessage("Do not digitalize unregistered elements!");
2302
+ },
2303
+ tempHigh: 600,
2304
+ stateHigh: ["molten_aluminum","molten_aluminum","molten_aluminum","molten_gallium"],
2305
+ breakInto: ["metal_scrap"],
2306
+ tempLow: -80,
2307
+ stateLow: "glass_shard",
2308
+ category: "simulation",
2309
+ tick: function(pixel) {
2310
+ if (!isEmpty(pixel.x,pixel.y-1,true) && !isEmpty(pixel.x,pixel.y+1,true)) {
2311
+ var newPixel = pixelMap[pixel.x][pixel.y-1];
2312
+ var screen = pixelMap[pixel.x][pixel.y+1];
2313
+ if (screen.element === "sandboxels_screen") {
2314
+ var newElement = newPixel.element
2315
+ var newElementName = `${newElement}_screen`
2316
+ if (newElement === "body") {
2317
+ changePixel(screen,"blood_screen");
2318
+ deletePixel(newPixel.x,newPixel.y)
2319
+ }
2320
+ else if (newElement === "head") {
2321
+ changePixel(screen,"blood_screen");
2322
+ deletePixel(newPixel.x,newPixel.y)
2323
+ }
2324
+ else if (!isEmpty(pixel.x,pixel.y-2,true) && newElement === "suited_body") {
2325
+ var headPixel = pixelMap[pixel.x][pixel.y-2];
2326
+ if (headPixel.element === "suited_head" && newElement === "suited_body") {
2327
+ changePixel(screen,"simulated_human");
2328
+ deletePixel(newPixel.x,newPixel.y-1)
2329
+ deletePixel(newPixel.x,newPixel.y)
2330
+ }
2331
+ else {
2332
+ changePixel(screen,"blood_screen");
2333
+ deletePixel(newPixel.x,newPixel.y)
2334
+ }
2335
+ }
2336
+ else if (elements[newElementName]) {
2337
+ changePixel(screen,newElementName);
2338
+ deletePixel(newPixel.x,newPixel.y)
2339
+ }
2340
+ else {
2341
+ changePixel(screen,"malware");
2342
+ deletePixel(newPixel.x,newPixel.y)
2343
+ }
2344
+ }
2345
+ }
2346
+ },
2347
+ state: "solid",
2348
+ density: 1200,
2349
+ desc: "digitalizes elements."
2350
+ }
2351
+
2352
+ if (!elements.malware.reactions) { elements.malware.reactions = {} }
2353
+ elements.malware.reactions.sandboxels_screen = { "elem2": ["sand_screen","sandboxels_screen_off","sandboxels_screen_off","malware"] };
2354
+ elements.malware.reactions.sawdust_screen = { "elem2": ["wall_screen","wall_screen","sandboxels_screen_off","malware"] };
2355
+ elements.malware.reactions.sand_screen = { "elem2": ["paper_screen","paper_screen","sandboxels_screen_off","malware"] };
2356
+ elements.malware.reactions.rock_screen = { "elem2": ["wood_screen","wood_screen","sandboxels_screen_off","malware"] };
2357
+ elements.malware.reactions.cellulose_screen = { "elem2": ["blood_screen","blood_screen","sandboxels_screen_off","malware"] };
2358
+ elements.malware.reactions.blood_screen = { "elem2": ["ice_screen","ice_screen","sandboxels_screen_off","malware"] };
2359
+ elements.malware.reactions.water_screen = { "elem2": ["steam_screen","steam_screen","sandboxels_screen_off","malware"] };
2360
+ elements.malware.reactions.steam_screen = { "elem2": ["water_screen","water_screen","sandboxels_screen_off","malware"] };
2361
+ elements.malware.reactions.ice_screen = { "elem2": ["cellulose_screen","cellulose_screen","sandboxels_screen_off","malware"] };
2362
+ elements.malware.reactions.wood_screen = { "elem2": ["rock_screen","rock_screen","sandboxels_screen_off","malware"] };
2363
+ elements.malware.reactions.paper_screen = { "elem2": ["sand_screen","sand_screen","sandboxels_screen_off","malware"] };
2364
+ elements.malware.reactions.wall_screen = { "elem2": ["sawdust_screen","sawdust_screen","sandboxels_screen_off","malware"] };
2365
+
2366
+ elements.head.tick = function(pixel) {
2367
+ doHeat(pixel);
2368
+ doBurning(pixel);
2369
+ doElectricity(pixel);
2370
+ if (pixel.dead) {
2371
+ // Turn into rotten_meat if pixelTicks-dead > 500
2372
+ if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) {
2373
+ changePixel(pixel,"rotten_meat");
2374
+ return
2375
+ }
2376
+ }
2377
+
2378
+ // Find the body
2379
+ if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "body") {
2380
+ var body = pixelMap[pixel.x][pixel.y+1];
2381
+ if (body.dead) { // If body is dead, kill head
2382
+ pixel.dead = body.dead;
2383
+ }
2384
+ }
2385
+ else if (!isEmpty(pixel.x, pixel.y+1, true) && pixelMap[pixel.x][pixel.y+1].element == "suited_body") {
2386
+ var body = pixelMap[pixel.x][pixel.y+1];
2387
+ if (body.dead) { // If body is dead, kill head
2388
+ pixel.dead = body.dead;
2389
+ }
2390
+ }
2391
+ else { var body = null }
2392
+
2393
+ if (tryMove(pixel, pixel.x, pixel.y+1)) {
2394
+ // create blood if severed 10% chance
2395
+ if (isEmpty(pixel.x, pixel.y+1) && !pixel.dead && Math.random() < 0.1 && !pixel.charge) {
2396
+ createPixel("blood", pixel.x, pixel.y+1);
2397
+ // set dead to true 15% chance
2398
+ if (Math.random() < 0.15) {
2399
+ pixel.dead = pixelTicks;
2400
+ }
2401
+ }
2402
+ }
2403
+ // homeostasis
2404
+ if (pixel.temp > 37) { pixel.temp -= 1; }
2405
+ else if (pixel.temp < 37) { pixel.temp += 1; }
2406
+ }
2407
+
2408
+ elements.body.tick = function(pixel) {
2409
+ if (tryMove(pixel, pixel.x, pixel.y+1)) { // Fall
2410
+ if (!isEmpty(pixel.x, pixel.y-2, true)) { // Drag head down
2411
+ var headpixel = pixelMap[pixel.x][pixel.y-2];
2412
+ if (headpixel.element == "head") {
2413
+ if (isEmpty(pixel.x, pixel.y-1)) {
2414
+ movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1);
2415
+ }
2416
+ else {
2417
+ swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]);
2418
+ }
2419
+ }
2420
+ else if (headpixel.element == "suited_head") {
2421
+ if (isEmpty(pixel.x, pixel.y-1)) {
2422
+ movePixel(pixelMap[pixel.x][pixel.y-2], pixel.x, pixel.y-1);
2423
+ }
2424
+ else {
2425
+ swapPixels(pixelMap[pixel.x][pixel.y-2], pixelMap[pixel.x][pixel.y-1]);
2426
+ }
2427
+ }
2428
+ }
2429
+ }
2430
+ doHeat(pixel);
2431
+ doBurning(pixel);
2432
+ doElectricity(pixel);
2433
+ if (pixel.dead) {
2434
+ // Turn into rotten_meat if pixelTicks-dead > 500
2435
+ if (pixelTicks-pixel.dead > 200 && Math.random() < 0.1) {
2436
+ changePixel(pixel,"rotten_meat");
2437
+ }
2438
+ return
2439
+ }
2440
+
2441
+ // Find the head
2442
+ if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "head") {
2443
+ var head = pixelMap[pixel.x][pixel.y-1];
2444
+ if (head.dead) { // If head is dead, kill body
2445
+ pixel.dead = head.dead;
2446
+ }
2447
+ }
2448
+ else if (!isEmpty(pixel.x, pixel.y-1, true) && pixelMap[pixel.x][pixel.y-1].element == "suited_head") {
2449
+ var head = pixelMap[pixel.x][pixel.y-1];
2450
+ if (head.dead) { // If head is dead, kill body
2451
+ pixel.dead = head.dead;
2452
+ }
2453
+ }
2454
+ else { var head = null }
2455
+ if (pixel.burning) {
2456
+ pixel.panic += 0.1;
2457
+ if (head && pixelTicks-pixel.burnStart > 240) {
2458
+ pixel.color = head.color;
2459
+ }
2460
+ }
2461
+ else if (pixel.panic > 0) {
2462
+ pixel.panic -= 0.1;
2463
+ }
2464
+
2465
+ if (isEmpty(pixel.x, pixel.y-1)) {
2466
+ // create blood if decapitated 10% chance
2467
+ if (Math.random() < 0.1 && !pixel.charge) {
2468
+ createPixel("blood", pixel.x, pixel.y-1);
2469
+ // set dead to true 15% chance
2470
+ if (Math.random() < 0.15) {
2471
+ pixel.dead = pixelTicks;
2472
+ }
2473
+ }
2474
+ }
2475
+ else if (head == null) { return }
2476
+ else if (Math.random() < 0.1*(isEmpty(pixel.x, pixel.y+1) ? 1 : pixel.panic+1)) { // Move 10% chance
2477
+ var movesToTry = [
2478
+ [1*pixel.dir,0],
2479
+ [1*pixel.dir,-1],
2480
+ ];
2481
+ // While movesToTry is not empty, tryMove(pixel, x, y) with a random move, then remove it. if tryMove returns true, break.
2482
+ while (movesToTry.length > 0) {
2483
+ var move = movesToTry.splice(Math.floor(Math.random() * movesToTry.length), 1)[0];
2484
+ if (isEmpty(pixel.x+move[0], pixel.y+move[1]-1)) {
2485
+ var origx = pixel.x+move[0];
2486
+ var origy = pixel.y+move[1];
2487
+ if (tryMove(pixel, pixel.x+move[0], pixel.y+move[1]) && pixel.x===origx && pixel.y===origy) {
2488
+ movePixel(head, head.x+move[0], head.y+move[1]);
2489
+ break;
2490
+ }
2491
+ }
2492
+ }
2493
+ // 15% chance to change direction
2494
+ if (Math.random() < 0.15) {
2495
+ pixel.dir *= -1;
2496
+ }
2497
+ // homeostasis
2498
+ if (pixel.temp > 37) { pixel.temp -= 1; }
2499
+ else if (pixel.temp < 37) { pixel.temp += 1; }
2500
+ }
2501
+ }