34 lines
756 B
Lua
34 lines
756 B
Lua
local module = {}
|
|
|
|
local cool_rate = 0.25
|
|
function module.new(this,balloon,context)
|
|
this.heat = 0
|
|
end
|
|
|
|
function module.run(this,balloon,context)
|
|
this.heat = this.heat * (1 - cool_rate * context.delta) -- wrong but idc
|
|
local force = Vector3.new(0,1,0) * (1-(1/(1+this.heat))) * 1000 * context.delta * balloon.Size.Magnitude
|
|
balloon:ApplyImpulseAtPosition(force,balloon.Position)
|
|
context.replicate(this,balloon,module,this.heat)
|
|
return true
|
|
end
|
|
|
|
function module.replicate(this,balloon,context,heat)
|
|
this.heat = heat
|
|
end
|
|
|
|
module.update = module.new
|
|
|
|
module.messages = {
|
|
flux = function(this,balloon,context,heat)
|
|
this.heat = this.heat + heat
|
|
end,
|
|
}
|
|
module.messages.default = nil
|
|
|
|
module.manifest = {
|
|
"LongBalloon",
|
|
"RoundBalloon"
|
|
}
|
|
|
|
return module |