elements.primer_up = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, properties: { range: 100, pushTime: 0, pushLength: 5, pushStrength: 100, }, tick: function (pixel) { pixel.range ??= 10; pixel.pushTime ??= 0; pixel.pushLength ??= 100; pixel.pushStrength ??= 100; if (isNaN(pixel.pushTime) || pixel.pushTime < 0) { pixel.pushTime = 0 }; if (pixel.charge) { pixel.pushTime = pixel.pushLength; }; if (pixel.pushTime > 0) { for (h = 0; h < pixel.pushStrength; h++) { for (i = (pixel.range - 1); i >= 0; i--) { if (!isEmpty(pixel.x, pixel.y - 1 - i, true)) { tryMove(pixelMap[pixel.x][pixel.y - 1 - i], pixel.x, pixel.y - 2 - i); }; }; }; pixel.pushTime--; }; doDefaults(pixel); }, color: "#c0c0c0", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 }; elements.primer_down = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, properties: { range: 100, pushTime: 0, pushLength: 5, pushStrength: 100, }, tick: function (pixel) { pixel.range ??= 10; pixel.pushTime ??= 0; pixel.pushLength ??= 100; pixel.pushStrength ??= 100; if (isNaN(pixel.pushTime) || pixel.pushTime < 0) { pixel.pushTime = 0 }; if (pixel.charge) { pixel.pushTime = pixel.pushLength; }; if (pixel.pushTime > 0) { for (h = 0; h < pixel.pushStrength; h++) { for (i = (pixel.range - 1); i >= 0; i--) { if (!isEmpty(pixel.x, pixel.y + 1 + i, true)) { tryMove(pixelMap[pixel.x][pixel.y + 1 + i], pixel.x, pixel.y + 2 + i); }; }; }; pixel.pushTime--; }; doDefaults(pixel); }, color: "#c0c0c0", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 }; elements.primer_right = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, properties: { range: 100, pushTime: 0, pushLength: 5, pushStrength: 100, }, tick: function (pixel) { pixel.range ??= 10; pixel.pushTime ??= 0; pixel.pushLength ??= 100; pixel.pushStrength ??= 100; if (isNaN(pixel.pushTime) || pixel.pushTime < 0) { pixel.pushTime = 0 }; if (pixel.charge) { pixel.pushTime = pixel.pushLength; }; if (pixel.pushTime > 0) { for (h = 0; h < pixel.pushStrength; h++) { for (i = (pixel.range - 1); i >= 0; i--) { if (!isEmpty(pixel.x + 1 + i, pixel.y, true)) { tryMove(pixelMap[pixel.x + 1 + i][pixel.y], pixel.x + 2 + i, pixel.y); }; }; }; pixel.pushTime--; }; doDefaults(pixel); }, color: "#c0c0c0", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 }; elements.primer_left = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, properties: { range: 100, pushTime: 0, pushLength: 5, pushStrength: 100, }, tick: function (pixel) { pixel.range ??= 10; pixel.pushTime ??= 0; pixel.pushLength ??= 100; pixel.pushStrength ??= 100; if (isNaN(pixel.pushTime) || pixel.pushTime < 0) { pixel.pushTime = 0 }; if (pixel.charge) { pixel.pushTime = pixel.pushLength; }; if (pixel.pushTime > 0) { for (h = 0; h < pixel.pushStrength; h++) { for (i = (pixel.range - 1); i >= 0; i--) { if (!isEmpty(pixel.x - 1 - i, pixel.y, true)) { tryMove(pixelMap[pixel.x - 1 - i][pixel.y], pixel.x - 2 - i, pixel.y); }; }; }; pixel.pushTime--; }; doDefaults(pixel); }, color: "#c0c0c0", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 } elements.kerosene = { color: "#b3b38b", behavior: behaviors.LIQUID, behaviorOn: [ "XX|XX|XX", "XX|CH:fire|XX", "XX|XX|XX", ], conduct: 0.09, tick: function (pixel) { if (pixel.temp > 220 && !pixel.burning) { pixel.burning = true; pixel.burnStart = pixelTicks; } }, reactions: { "glue": { elem2: null, chance: 0.05 }, "wax": { elem2: null, chance: 0.005 }, "melted_wax": { elem2: null, chance: 0.025 }, }, category: "liquids", tempHigh: 2100, stateHigh: "fire", burn: 95, burnTime: 2000, burnInto: ["carbon_dioxide", "fire"], viscosity: 3, state: "liquid", density: 850 } if (!elements.hydrogen.reactions) elements.hydrogen.reactions = {}; elements.hydrogen.reactions.oxygen = { elem1: "kerosene", elem2: null } elements.combustion_sesor = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, color: "#C70039", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 }; elements.insulation_powder= { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, color: "#00FFFF", category: "powders", tempHigh: 1500, stateHigh: "molten_glass", insulate: true, }; elements.conductive_insulation_powder = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, color: "#FFFF00", colorOn: "#ffffff", category: "powders", tempHigh: 1500, stateHigh: "molten_glass", insulate: true, conduct: 1 }; elements.engine_up = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, properties: { range: 25, pushTime: 0, pushLength: 2.5, pushStrength: 100, }, tick: function (pixel) { pixel.range ??= 5; pixel.pushTime ??= 0; pixel.pushLength ??= 25; pixel.pushStrength ??= 25; if (isNaN(pixel.pushTime) || pixel.pushTime < 0) { pixel.pushTime = 0 }; if (pixel.charge) { pixel.pushTime = pixel.pushLength; }; if (pixel.pushTime > 0) { for (h = 0; h < pixel.pushStrength; h++) { for (i = (pixel.range - 1); i >= 0; i--) { if (!isEmpty(pixel.x, pixel.y - 1 - i, true)) { tryMove(pixelMap[pixel.x][pixel.y - 1 - i], pixel.x, pixel.y - 2 - i); }; }; }; pixel.pushTime--; }; doDefaults(pixel); }, color: "#c0c0c0", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 }; elements.engine_down = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, properties: { range: 25, pushTime: 0, pushLength: 2.5, pushStrength: 100, }, tick: function (pixel) { pixel.range ??= 5; pixel.pushTime ??= 0; pixel.pushLength ??= 25; pixel.pushStrength ??= 25; if (isNaN(pixel.pushTime) || pixel.pushTime < 0) { pixel.pushTime = 0 }; if (pixel.charge) { pixel.pushTime = pixel.pushLength; }; if (pixel.pushTime > 0) { for (h = 0; h < pixel.pushStrength; h++) { for (i = (pixel.range - 1); i >= 0; i--) { if (!isEmpty(pixel.x, pixel.y + 1 + i, true)) { tryMove(pixelMap[pixel.x][pixel.y + 1 + i], pixel.x, pixel.y + 2 + i); }; }; }; pixel.pushTime--; }; doDefaults(pixel); }, color: "#c0c0c0", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 }; elements.engine_right = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, properties: { range: 25, pushTime: 0, pushLength: 2.5, pushStrength: 25, }, tick: function (pixel) { pixel.range ??= 5; pixel.pushTime ??= 0; pixel.pushLength ??= 25; pixel.pushStrength ??= 25; if (isNaN(pixel.pushTime) || pixel.pushTime < 0) { pixel.pushTime = 0 }; if (pixel.charge) { pixel.pushTime = pixel.pushLength; }; if (pixel.pushTime > 0) { for (h = 0; h < pixel.pushStrength; h++) { for (i = (pixel.range - 1); i >= 0; i--) { if (!isEmpty(pixel.x + 1 + i, pixel.y, true)) { tryMove(pixelMap[pixel.x + 1 + i][pixel.y], pixel.x + 2 + i, pixel.y); }; }; }; pixel.pushTime--; }; doDefaults(pixel); }, color: "#c0c0c0", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 }; elements.engine_left = { behavior: behaviors.SUPPORT, reactions: { "fire": { "charge1": 1 } }, properties: { range: 25, pushTime: 0, pushLength: 2.5, pushStrength: 25, }, tick: function (pixel) { pixel.range ??= 5; pixel.pushTime ??= 0; pixel.pushLength ??= 25; pixel.pushStrength ??= 25; if (isNaN(pixel.pushTime) || pixel.pushTime < 0) { pixel.pushTime = 0 }; if (pixel.charge) { pixel.pushTime = pixel.pushLength; }; if (pixel.pushTime > 0) { for (h = 0; h < pixel.pushStrength; h++) { for (i = (pixel.range - 1); i >= 0; i--) { if (!isEmpty(pixel.x - 1 - i, pixel.y, true)) { tryMove(pixelMap[pixel.x - 1 - i][pixel.y], pixel.x - 2 - i, pixel.y); }; }; }; pixel.pushTime--; }; doDefaults(pixel); }, color: "#c0c0c0", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 } elements.steam_sesor = { behavior: behaviors.SUPPORT, reactions: { "steam": { "charge1": 1 } }, color: "#0000FF", colorOn: "#ffffff", category: "machines", tempHigh: 1500, stateHigh: "molten_glass", conduct: 1 };