Update Physical Pump Function in Lua
This Lua function updates the status of a physical pump, adjusting its sound and lights based on the pump's status (OFFLINE or DAMAGED). It uses tweening for smooth transitions in the UI elements representing the pump's status.function UpdatePhysicalPump(pump: Model, pumpStatus: string) local pumpSound = pump.Main.Loop if pumpStatus == "OFFLINE" then PuffyTween:Tween(pumpSound, pumpUpdateTweenInfo, {PlaybackSpeed = 0}) local tween = PuffyTween:Tween(pump.Light1, pumpUpdateTweenInfo, {Color = Color3.fromRGB(17,17,17)}) PuffyTween:Tween(pump.Light1.SurfaceLight, pumpUpdateTweenInfo, {Brightness = 0}) PuffyTween:Tween(pump.Light2, pumpUpdateTweenInfo, {Color = Color3.fromRGB(17,17,17)}) PuffyTween:Tween(pump.Light2.SurfaceLight, pumpUpdateTweenInfo, {Brightness = 0}) PuffyTween:Tween(pump.Light3, pumpUpdateTweenInfo, {Color = Color3.fromRGB(17,17,17)}) PuffyTween:Tween(pump.Light3.SurfaceLight, pumpUpdateTweenInfo, {Brightness = 0}) tween:Wait() pump.Light1.Material = Enum.Material.Glass pump.Light2.Material = Enum.Material.Glass pump.Light3.Material = Enum.Material.Glass elseif pumpStatus == "DAMAGED" then PuffyTween:Tween(pumpSound, pumpUpdateTweenInfo, {PlaybackSpeed = 0.5}) task.spawn(function() PuffyTween:Tween(pump.Light1.SurfaceLight, pumpBlinkTweenInfo, {Color = Color3.fromRGB(255, 170, 0)}) PuffyTween:Tween(pump.Light2.SurfaceLight, pumpBlinkTweenInfo, {Color = Color3.fromRGB(255, 170, 0)}) PuffyTween:Tween(pump.Light3.SurfaceLight, pumpBlinkTweenInfo, {Color = Color3.fromRGB(255, 170, 0)}) while pumpStatus == "DAMAGED" do local tween = PuffyTween:Tween(pump.Light1, pumpBlinkTweenInfo, {Color = Color3.fromRGB(17, 17, 17)}) PuffyTween:Tween(pump.Light1.SurfaceLight, pumpBlinkTweenInfo, {Brightness = 0}) PuffyTween:Tween(pump.Light2, pumpBlinkTweenInfo, {Color = Color3.fromRGB(17, 17, 17)}) PuffyTween:Tween(pump.Light2.SurfaceLight, pumpBlinkTweenInfo, {Brightness = 0}) PuffyTween:Tween(pump.Light3, pumpBlinkTweenInfo, {Color = Color3.fromRGB(17, 17, 17)}) PuffyTween:Tween(pump.Light3.SurfaceLight, pumpBlinkTweenInfo, {Brightness = 0}) tween:Wait() local tween2 = PuffyTween:Tween(pump.Light1, pumpBlinkTweenInfo, {Color = Color3.fromRGB(255, 170, 0)}) PuffyTween:Tween(pump.Light1.SurfaceLight, pumpBlinkTweenInfo, {Brightness = 0}) PuffyTween:Tween(pump.Light2, pumpBlinkTweenInfo, {Color = Color3.fromRGB(255, 170, 0)}) PuffyTween:Tween(pump.Light2.SurfaceLight, pumpBlinkTweenInfo, {Brightness = 0}) PuffyTween:Tween(pump.Light3, pumpBlinkTweenInfo, {Color = Color3.fromRGB(255, 170, 0)}) PuffyTween:Tween(pump.Light3.SurfaceLight, pumpBlinkTweenInfo, {Brightness = 0}) tween2:Wait() end end) elseif pumpStatus == "ONLINE" then PuffyTween:Tween(pumpSound, pumpUpdateTweenInfo, {PlaybackSpeed = 1}) PuffyTween:Tween(pump.Light1, pumpUpdateTweenInfo, {Color = Color3.fromRGB(255, 255, 255)}) PuffyTween:Tween(pump.Light1.SurfaceLight, pumpUpdateTweenInfo, {Brightness = 3}) PuffyTween:Tween(pump.Light2, pumpUpdateTweenInfo, {Color = Color3.fromRGB(255, 255, 255)}) PuffyTween:Tween(pump.Light2.SurfaceLight, pumpUpdateTweenInfo, {Brightness = 3}) PuffyTween:Tween(pump.Light3, pumpUpdateTweenInfo, {Color = Color3.fromRGB(255, 255, 255)}) PuffyTween:Tween(pump.Light3.SurfaceLight, pumpUpdateTweenInfo, {Brightness = 3}) pump.Light1.Material = Enum.Material.Neon pump.Light2.Material = Enum.Material.Neon pump.Light3.Material = Enum.Material.Neon end end
Leave a Comment