sandboxels/mods/fueled_generators.js

132 lines
3.7 KiB
JavaScript
Raw Normal View History

2024-05-05 19:48:04 -04:00
elements.gasoline = {
color: ["#FFFF66", "#FFFF66", "#FFFF66", "#FFFF66", "#FFFF66"],
burn: 15,
burnTime: 300,
viscosity: 0.6,
density: 750,
category: "fuels",
behavior: behaviors.LIQUID,
state: "liquid",
desc: "Used in Gas Generators!"
}
elements.diesel = {
color: "#EBFBB5",
burn: 10,
burnTime: 600,
viscosity: 3,
density: 860,
category: "fuels",
behavior: behaviors.LIQUID,
state: "liquid",
desc: "Used in Diesel Generators!"
}
elements.gasoline_generator = {
color: "#6d5f5d",
behavior: behaviors.WALL,
state: "solid",
density: 1000,
category: "machines",
properties: {
shocksToDo: 0
},
2024-09-18 20:56:12 -04:00
hoverStat: function(pixel){return (pixel.shocksToDo).toString() || 0},
2024-05-05 19:48:04 -04:00
tick: function(pixel){
if (pixel.shocksToDo <= 40){
for (var i = 0; i < adjacentCoords.length; i++){
var coord = adjacentCoords[i]
var x = pixel.x + coord[0]
var y = pixel.y + coord[1]
if (!isEmpty(x, y, true)){
var otherPixel = pixelMap[x][y]
if (otherPixel.element == "gasoline"){
deletePixel(x, y)
if(!pixel.shocksToDo){pixel.shocksToDo = 0}
pixel.shocksToDo += 10
}
else if (otherPixel.element == "gasoline_generator"){
var otherPixel = pixelMap[x][y]
var otherShock = otherPixel.shocksToDo || 0
var currentShock = pixel.shocksToDo || 0
if (otherShock > currentShock){
otherPixel.shocksToDo --
pixel.shocksToDo ++
} else if (currentShock > otherShock) {
otherPixel.shocksToDo ++
pixel.shocksToDo --
}
}
}
}}
if (!pixel.charge && !pixel.chargeCD && pixel.shocksToDo){
for (var i = 0; i < adjacentCoords.length; i++){
var coord = adjacentCoords[i]
var x = pixel.x + coord[0]
var y = pixel.y + coord[1]
if (!isEmpty(x, y, true)){
if (elements[pixelMap[x][y].element].conduct > 0){
pixel.charge = 1
pixel.shocksToDo --
break;
}
}
}
}
}
}
elements.diesel_generator = {
color: "#FF9C27",
behavior: behaviors.WALL,
state: "solid",
density: 1000,
category: "machines",
properties: {
shocksToDo: 0
},
2024-09-18 20:56:12 -04:00
hoverStat: function(pixel){return (pixel.shocksToDo).toString() || 0},
2024-05-05 19:48:04 -04:00
tick: function(pixel){
if (pixel.shocksToDo <= 80){
for (var i = 0; i < adjacentCoords.length; i++){
var coord = adjacentCoords[i]
var x = pixel.x + coord[0]
var y = pixel.y + coord[1]
if (!isEmpty(x, y, true)){
var otherPixel = pixelMap[x][y]
if (otherPixel.element == "diesel"){
deletePixel(x, y)
if(!pixel.shocksToDo){pixel.shocksToDo = 0}
pixel.shocksToDo += 20
}
else if (otherPixel.element == "diesel_generator"){
var otherPixel = pixelMap[x][y]
var otherShock = otherPixel.shocksToDo || 0
var currentShock = pixel.shocksToDo || 0
if (otherShock > currentShock){
otherPixel.shocksToDo --
pixel.shocksToDo ++
} else if (currentShock > otherShock) {
otherPixel.shocksToDo ++
pixel.shocksToDo --
}
}
}
}}
if (!pixel.charge && !pixel.chargeCD && pixel.shocksToDo){
for (var i = 0; i < adjacentCoords.length; i++){
var coord = adjacentCoords[i]
var x = pixel.x + coord[0]
var y = pixel.y + coord[1]
if (!isEmpty(x, y, true)){
if (elements[pixelMap[x][y].element].conduct > 0){
pixel.charge = 1
pixel.shocksToDo --
break;
}
}
}
}
}
}