From 470b7107739b4c3c4487695c0b93ca2d44760de2 Mon Sep 17 00:00:00 2001 From: Nekonico <163950752+DBNekonico@users.noreply.github.com> Date: Sat, 21 Sep 2024 10:58:59 -0700 Subject: [PATCH] BUGFIX SAND NOW ACTUALLY DOES SAND THING OF FALLING --- mods/sandboxels.js | 91 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 77 insertions(+), 14 deletions(-) diff --git a/mods/sandboxels.js b/mods/sandboxels.js index 8f3aaf56..bfbe3279 100644 --- a/mods/sandboxels.js +++ b/mods/sandboxels.js @@ -81,10 +81,6 @@ elements.sand_screen = { newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2); pixel.dtemp = newPixel.dtemp; } - else if (newPixel.element === "sand_screen") { - newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2); - pixel.dtemp = newPixel.dtemp; - } else if (newPixel.element === "rock_screen") { newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2); pixel.dtemp = newPixel.dtemp; @@ -172,7 +168,7 @@ elements.rock_screen = { tempHigh: 1500, stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"], conduct: 1, - breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","sand"], + breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","rock"], tempLow: -45, stateLow: "sandboxels_screen_off", category: "digital", @@ -203,10 +199,6 @@ elements.rock_screen = { newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2); pixel.dtemp = newPixel.dtemp; } - else if (newPixel.element === "rock_screen") { - newPixel.dtemp = ((pixel.dtemp + newPixel.dtemp) / 2); - pixel.dtemp = newPixel.dtemp; - } else if (Math.random() > 0.5 && !isEmpty(pixel.x+1,pixel.y+1,true)) { var newPixel = pixelMap[pixel.x+1][pixel.y+1]; if (newPixel.element === "sandboxels_screen") { @@ -442,7 +434,7 @@ elements.steam_screen = { tempHigh: 1500, stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"], conduct: 1, - breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","water"], + breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","steam"], tempLow: -45, stateLow: "sandboxels_screen_off", category: "digital", @@ -571,6 +563,25 @@ elements.ice_screen = { density: 1200, }, +elements.wall_screen = { + name:"screen", + hidden:true, + color: "#808080", + behavior: behaviors.WALL, + properties: { + dtemp: 0, + }, + tempHigh: 1500, + stateHigh: ["molten_glass","molten_glass","molten_glass","molten_gallium"], + conduct: 1, + breakInto: ["glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","glass_shard","concrete"], + tempLow: -45, + stateLow: "sandboxels_screen_off", + category: "digital", + state: "solid", + density: 1200, +}, + elements.digital_sand = { color: "#e6d577", behavior: [ @@ -661,6 +672,24 @@ elements.digital_steam = { desc: "Use on a screen to place digital ice." }, +elements.digital_wall = { + color: "#808080", + behavior: [ + "CH:sandboxels_screen>ice_screen|CH:sandboxels_screen>ice_screen|CH:sandboxels_screen>ice_screen", + "CH:sandboxels_screen>ice_screen|CH:sandboxels_screen>ice_screen|CH:sandboxels_screen>ice_screen", + "CH:sandboxels_screen>ice_screen|CH:sandboxels_screen>ice_screen|CH:sandboxels_screen>ice_screen", + ], + tool: function(pixel) { + if (elements[pixel.element].id === elements.sandboxels_screen.id) { + changePixel(pixel,"wall_screen"); + } + }, + insulate:true, + canPlace: false, + category: "digital", + desc: "Use on a screen to place digital walls." +}, + elements.digital_heat = { color: "#ff0000", behavior: [ @@ -767,12 +796,46 @@ elements.digital_smash = { canPlace: false, category: "digital", desc: "Use on a screen to smash digital elements." +}, + +elements.digital_erase = { + color: "#fdb5ff", + behavior: [ + "XX|XX|XX", + "XX|XX|XX", + "XX|XX|XX", + ], + tool: function(pixel) { + if (elements[pixel.element].id === elements.sand_screen.id) { + changePixel(pixel,"sandboxels_screen"); + } + else if (elements[pixel.element].id === elements.rock_screen.id) { + changePixel(pixel,"sandboxels_screen"); + } + else if (elements[pixel.element].id === elements.water_screen.id) { + changePixel(pixel,"sandboxels_screen"); + } + else if (elements[pixel.element].id === elements.steam_screen.id) { + changePixel(pixel,"sandboxels_screen"); + } + else if (elements[pixel.element].id === elements.ice_screen.id) { + changePixel(pixel,"sandboxels_screen"); + } + else if (elements[pixel.element].id === elements.wall_screen.id) { + changePixel(pixel,"sandboxels_screen"); + } + }, + insulate:true, + canPlace: false, + category: "digital", + desc: "Use on a screen to erase digital elements." }; if (!elements.malware.reactions) { elements.malware.reactions = {} } elements.malware.reactions.sandboxels_screen = { "elem2": ["sand_screen","sandboxels_screen_off",null], chance:0.1 }; - elements.malware.reactions.sand_screen = { "elem2": ["ice_screen","sandboxels_screen_off",null], chance:0.1 }; - elements.malware.reactions.rock_screen = { "elem2": ["water_screen","sandboxels_screen_off",null], chance:0.1 }; + elements.malware.reactions.sand_screen = { "elem2": ["wall_screen","sandboxels_screen_off",null], chance:0.1 }; + elements.malware.reactions.rock_screen = { "elem2": ["ice_screen","sandboxels_screen_off",null], chance:0.1 }; elements.malware.reactions.water_screen = { "elem2": ["steam_screen","sandboxels_screen_off",null], chance:0.1 }; - elements.malware.reactions.steam_screen = { "elem2": ["rock_screen","sandboxels_screen_off",null], chance:0.1 }; - elements.malware.reactions.ice_screen = { "elem2": ["sand_screen","sandboxels_screen_off",null], chance:0.1 }; + elements.malware.reactions.steam_screen = { "elem2": ["water_screen","sandboxels_screen_off",null], chance:0.1 }; + elements.malware.reactions.ice_screen = { "elem2": ["rock_screen","sandboxels_screen_off",null], chance:0.1 }; + elements.malware.reactions.wall_screen = { "elem2": ["sand_screen","sandboxels_screen_off",null], chance:0.1 };