Copy salient and essential scripts and models from Plane Building Roblox
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
local module = {}
|
||||
|
||||
function module.new(this,rocket,context)
|
||||
this.scale = rocket:GetExtentsSize().Magnitude -- same as with the equivalent statement on the wing! BRRRRRRRRRRR
|
||||
this.binding = _G.GetInstance(rocket,"Binding")
|
||||
this.exhaust = _G.GetInstance(rocket,"Exhaust")
|
||||
this.sound = _G.GetInstance(this.exhaust,"Sound")
|
||||
this.force = _G.GetInstance(rocket,"Force")
|
||||
this.inverted = _G.GetInstance(rocket,"Inverted")
|
||||
return this
|
||||
end
|
||||
|
||||
function module.idle(this,engine) return true end
|
||||
|
||||
local begin = tick()
|
||||
module.run = _G.Protect(function(this,engine,context)
|
||||
local throttle = this.throttle or context.controls[_G.GetValue(engine,"Binding","throttle")] or this.Throttle or 0
|
||||
if this.inverted.Value then throttle = -throttle end
|
||||
context.replicate(this,engine,module,math.clamp(throttle,0,1))
|
||||
return true
|
||||
end)
|
||||
|
||||
module.replication_delta = 0.25
|
||||
function module.replicate(this,rocket,context,throttle)
|
||||
this.exhaust:ApplyImpulseAtPosition(this.exhaust.CFrame.RightVector * throttle * this.scale * this.force.Value * context.delta * -1000, this.exhaust.Position)
|
||||
this.exhaust.Flame.Rate = throttle * 1000
|
||||
this.sound.Volume = math.clamp(throttle,0,1)
|
||||
if _G.IsServer and this.sound.Volume > 0 then this.sound:Play() else this.sound:Pause() end
|
||||
end
|
||||
|
||||
module.messages = {
|
||||
control = function(this,object,context,value)
|
||||
this.throttle = value
|
||||
end,
|
||||
starter = function(this,object,context,value)
|
||||
this.starter = value
|
||||
end,
|
||||
}
|
||||
module.messages.default = module.messages.control
|
||||
|
||||
module.manifest = {
|
||||
"Rocket",
|
||||
"BigRocket"
|
||||
}
|
||||
|
||||
return module
|
||||
Reference in New Issue
Block a user