66 lines
1.1 KiB
Lua
66 lines
1.1 KiB
Lua
local Fluid = require("Fluid")
|
|
local copy
|
|
copy = function(tab)
|
|
local new = { }
|
|
for k, v in pairs(tab) do
|
|
new[k] = v
|
|
end
|
|
return new
|
|
end
|
|
local air = {
|
|
nitrogen = 0.775,
|
|
oxygen = 0.21,
|
|
argon = 0.01,
|
|
co2 = 0.005
|
|
}
|
|
local A = Fluid({
|
|
volume = 32,
|
|
pressure = 12,
|
|
contents = copy(air)
|
|
})
|
|
local B = Fluid({
|
|
volume = 1100,
|
|
pressure = 2,
|
|
contents = {
|
|
hydrogen = 0.9,
|
|
helium = 0.1
|
|
}
|
|
})
|
|
A:print()
|
|
B:print()
|
|
A:breach(B, 5)
|
|
A:update(1)
|
|
B:update(1)
|
|
A:print()
|
|
B:print()
|
|
print("...")
|
|
local Air = Fluid({
|
|
volume = 1000,
|
|
pressure = 1,
|
|
contents = copy(air)
|
|
})
|
|
local Vacuum = Fluid({
|
|
volume = math.huge,
|
|
pressure = 0
|
|
})
|
|
Air:breach(Vacuum)
|
|
for i = 1, 10 do
|
|
Air:print()
|
|
Air:update(i)
|
|
end
|
|
print("...")
|
|
Air = Fluid({
|
|
volume = 1000,
|
|
pressure = 1,
|
|
contents = copy(air)
|
|
})
|
|
Air:print()
|
|
local half = Air:amount("oxygen") / 2
|
|
print("Removing half the oxygen (" .. tostring(half) .. ").")
|
|
Air:remove("oxygen", half)
|
|
Air:print()
|
|
local full = Air:amount("oxygen")
|
|
print("Removing the rest (" .. tostring(full) .. ").")
|
|
Air:remove("oxygen", full)
|
|
return Air:print()
|