Hi guys and girls, this is my first mod/script!
It adds, into the explosive section, 4 elements:
They are ignited by >5 pressure, or about >200 temperature.
They create plasma and quite a lot of pressure.
The code:
--The Highly Explosive mod for Powder Toy
local function explosion(x, y, s)
for px = -1, 1 do
for py = -1, 1 do
tpt.create(x + px, y - py, "PLSM")
local pressure = sim.pressure((x + px) / 4.0, (y + py) / 4.0)
sim.pressure((x + px) / 4.0, (y + py) / 4.0, pressure + s * 10)
sim.velocityX((x + px) / 4.0, y / 4.0, px * s)
sim.velocityY((x + px) / 4.0, (y - py) / 4.0, -py * s)
end
end
end
local WBOMB = elements.allocate("MEXPL", "HEL")
elements.element(elements.MEXPL_PT_HEL, elements.element(elements.DEFAULT_PT_GLOW))
elements.property(elements.MEXPL_PT_HEL, "Color", "0xFCCFFF")
elements.property(elements.MEXPL_PT_HEL, "Name", "HEL")
elements.property(elements.MEXPL_PT_HEL, "Description", "Highly Explosive Liquid")
elements.property(elements.MEXPL_PT_HEL, "MenuVisible", 1)
elements.property(elements.MEXPL_PT_HEL, "MenuSection", 5)
elements.property(elements.MEXPL_PT_HEL, "Advection", 0.1)
elements.property(elements.MEXPL_PT_HEL, "AirDrag", 0.1)
elements.property(elements.MEXPL_PT_HEL, "AirLoss", 0.9)
elements.property(elements.MEXPL_PT_HEL, "Loss", 0.9)
elements.property(elements.MEXPL_PT_HEL, "Falldown", 2)
elements.property(elements.MEXPL_PT_HEL, "Hardness", 0.8)
elements.property(elements.MEXPL_PT_HEL, "Weight", 12)
elements.property(elements.MEXPL_PT_HEL, "Temperature", 293)
elements.property(elements.MEXPL_PT_HEL, "HeatConduct", 100)
elements.property(elements.MEXPL_PT_HEL, "State", 2)
elements.property(elements.MEXPL_PT_HEL, "Properties", 2)
local function HEL_update(i, x, y, s, n)
local r = 1
if sim.pressure(x / 4.0, y / 4.0) >= 5.0 then
explosion(x, y, 1)
tpt.delete(i)
elseif tpt.get_property("temp", i) >= 473.15 then
explosion(x, y, 1)
tpt.delete(i)
end
end
tpt.element_func(HEL_update, elements.MEXPL_PT_HEL)
local SBOMB = elements.allocate("MEXPL", "HES")
elements.element(elements.MEXPL_PT_HES, elements.element(elements.DEFAULT_PT_BANG))
elements.property(elements.MEXPL_PT_HES, "Color", "0xFCCFFF")
elements.property(elements.MEXPL_PT_HES, "Name", "HES")
elements.property(elements.MEXPL_PT_HES, "Description", "Highly Explosive Solid")
elements.property(elements.MEXPL_PT_HES, "MenuVisible", 1)
elements.property(elements.MEXPL_PT_HES, "MenuSection", 5)
elements.property(elements.MEXPL_PT_HES, "Hardness", 0.8)
elements.property(elements.MEXPL_PT_HES, "Temperature", 293)
elements.property(elements.MEXPL_PT_HES, "HeatConduct", 100)
elements.property(elements.MEXPL_PT_HES, "Falldown", 0)
elements.property(elements.MEXPL_PT_HES, "State", 1)
elements.property(elements.MEXPL_PT_HES, "Properties", 4)
local function HES_update(i, x, y, s, n)
local r = 1
if sim.pressure(x / 4.0, y / 4.0) >= 5.0 then
explosion(x, y, 1)
tpt.delete(i)
elseif tpt.get_property("temp", i) >= 473.15 then
explosion(x, y, 1)
tpt.delete(i)
end
end
tpt.element_func(HES_update, elements.MEXPL_PT_HES)
local GBOMB = elements.allocate("MEXPL", "HEG")
elements.element(elements.MEXPL_PT_HEG, elements.element(elements.DEFAULT_PT_GAS))
elements.property(elements.MEXPL_PT_HEG, "Color", "0xFCCFFF")
elements.property(elements.MEXPL_PT_HEG, "Name", "HEG")
elements.property(elements.MEXPL_PT_HEG, "Description", "Highly Explosive Gas")
elements.property(elements.MEXPL_PT_HEG, "MenuVisible", 1)
elements.property(elements.MEXPL_PT_HEG, "MenuSection", 5)
elements.property(elements.MEXPL_PT_HEG, "Hardness", 0.8)
elements.property(elements.MEXPL_PT_HEG, "Temperature", 293)
elements.property(elements.MEXPL_PT_HEG, "HeatConduct", 100)
elements.property(elements.MEXPL_PT_HEG, "Falldown", 0)
elements.property(elements.MEXPL_PT_HEG, "Diffusion", 0.5)
elements.property(elements.MEXPL_PT_HEG, "State", 3)
elements.property(elements.MEXPL_PT_HEG, "Properties", 3)
local function HEG_update(i, x, y, s, n)
local r = 1
if sim.pressure(x / 4.0, y / 4.0) >= 5.0 then
explosion(x, y, 1)
tpt.delete(i)
elseif tpt.get_property("temp", i) >= 473.15 then
explosion(x, y, 1)
tpt.delete(i)
end
end
tpt.element_func(HEG_update, elements.MEXPL_PT_HEG)
local PBOMB = elements.allocate("MEXPL", "HEP")
elements.element(elements.MEXPL_PT_HEP, elements.element(elements.DEFAULT_PT_DUST))
elements.property(elements.MEXPL_PT_HEP, "Color", "0xFCCFFF")
elements.property(elements.MEXPL_PT_HEP, "Name", "HEP")
elements.property(elements.MEXPL_PT_HEP, "Description", "Highly Explosive Powder")
elements.property(elements.MEXPL_PT_HEP, "MenuVisible", 1)
elements.property(elements.MEXPL_PT_HEP, "MenuSection", 5)
elements.property(elements.MEXPL_PT_HEP, "Hardness", 0.8)
elements.property(elements.MEXPL_PT_HEP, "Temperature", 293)
elements.property(elements.MEXPL_PT_HEP, "HeatConduct", 100)
elements.property(elements.MEXPL_PT_HEP, "Falldown", 1)
elements.property(elements.MEXPL_PT_HEL, "Advection", 0.1)
elements.property(elements.MEXPL_PT_HEL, "AirDrag", 0.1)
elements.property(elements.MEXPL_PT_HEL, "AirLoss", 0.9)
elements.property(elements.MEXPL_PT_HEL, "Loss", 0.9)
elements.property(elements.MEXPL_PT_HEL, "Hardness", 0.8)
elements.property(elements.MEXPL_PT_HEL, "Weight", 12)
elements.property(elements.MEXPL_PT_HEP, "State", 1)
elements.property(elements.MEXPL_PT_HEP, "Properties", 4)
local function HEP_update(i, x, y, s, n)
local r = 1
if sim.pressure(x / 4.0, y / 4.0) >= 5.0 then
explosion(x, y, 1)
tpt.delete(i)
elseif tpt.get_property("temp", i) >= 473.15 then
explosion(x, y, 1)
tpt.delete(i)
end
end
tpt.element_func(HEP_update, elements.MEXPL_PT_HEP)
From MGUN script- I think it was you who made it?