diff --git a/sourcemap.json b/sourcemap.json index 70acc5b..c8f11af 100644 --- a/sourcemap.json +++ b/sourcemap.json @@ -1 +1 @@ -{"name":"ElevatorGame","className":"DataModel","filePaths":["default.project.json"],"children":[{"name":"ReplicatedFirst","className":"ReplicatedFirst","children":[{"name":"intro","className":"LocalScript","filePaths":["src/load/intro/init.client.luau"],"children":[{"name":"IntroGui","className":"ModuleScript","filePaths":["src/load/intro/IntroGui.luau"]}]}]},{"name":"ReplicatedStorage","className":"ReplicatedStorage","children":[{"name":"Algebra","className":"ModuleScript","filePaths":["src/shared/Algebra.luau"]},{"name":"Client","className":"Folder","children":[{"name":"Camera","className":"ModuleScript","filePaths":["src/shared/Client/Camera.luau"]},{"name":"KeyBinds","className":"ModuleScript","filePaths":["src/shared/Client/KeyBinds.luau"]}]},{"name":"Delta","className":"ModuleScript","filePaths":["src/shared/Delta.luau"]},{"name":"Enums","className":"ModuleScript","filePaths":["src/shared/Enums.luau"]},{"name":"GCSignal","className":"ModuleScript","filePaths":["src/shared/GCSignal.luau"]},{"name":"Output","className":"ModuleScript","filePaths":["src/shared/Output.luau"]},{"name":"Server","className":"Folder","children":[{"name":"holder","className":"ModuleScript","filePaths":["src/shared/Server/holder.luau"]}]},{"name":"Tween","className":"ModuleScript","filePaths":["src/shared/Tween.luau"]}]},{"name":"ServerScriptService","className":"ServerScriptService","children":[{"name":"rapid/server","className":"Actor","children":[{"name":"main","className":"Script","filePaths":["src/server/main/init.server.luau"],"children":[{"name":"Elevators","className":"Folder","children":[{"name":"ButtonManager","className":"ModuleScript","filePaths":["src/server/main/Elevators/ButtonManager.luau"]},{"name":"Lanterns","className":"ModuleScript","filePaths":["src/server/main/Elevators/Lanterns.luau"]},{"name":"Map","className":"Folder","children":[{"name":"Haughton","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/init.luau"],"children":[{"name":"Buttons","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Buttons.luau"]},{"name":"Config","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Config.luau"]},{"name":"Doors","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Doors.luau"]},{"name":"Events","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Events/init.luau"],"children":[{"name":"Buttons","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Events/Buttons.luau"]}]},{"name":"Leveling","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Leveling.luau"]},{"name":"MovingObjects","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/MovingObjects.luau"]},{"name":"TractionRopes","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/TractionRopes.luau"]}]},{"name":"Otis1960","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/init.luau"],"children":[{"name":"Config","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/Config.luau"]},{"name":"Leveling","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/Leveling.luau"]},{"name":"MovingObjects","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/MovingObjects.luau"]},{"name":"PhysicalRelay","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/PhysicalRelay.luau"]}]}]},{"name":"System","className":"ModuleScript","filePaths":["src/server/main/Elevators/System/init.luau"],"children":[{"name":"RelayAlgorithm","className":"ModuleScript","filePaths":["src/server/main/Elevators/System/RelayAlgorithm.luau"]}]}]},{"name":"Map","className":"Folder","children":[{"name":"Interactions","className":"Folder","children":[{"name":"LightSwitches","className":"ModuleScript","filePaths":["src/server/main/Map/Interactions/LightSwitches.luau"]}]},{"name":"Lighting","className":"ModuleScript","filePaths":["src/server/main/Map/Lighting/init.luau"]},{"name":"Load","className":"Folder","children":[{"name":"EditorEntities","className":"ModuleScript","filePaths":["src/server/main/Map/Load/EditorEntities.luau"]},{"name":"StarterPlayer","className":"ModuleScript","filePaths":["src/server/main/Map/Load/StarterPlayer.luau"]},{"name":"Tags","className":"ModuleScript","filePaths":["src/server/main/Map/Load/Tags/init.luau"],"children":[{"name":"Buttons","className":"ModuleScript","filePaths":["src/server/main/Map/Load/Tags/Buttons.luau"]},{"name":"Lights","className":"ModuleScript","filePaths":["src/server/main/Map/Load/Tags/Lights.luau"]}]},{"name":"Workspace","className":"ModuleScript","filePaths":["src/server/main/Map/Load/Workspace.luau"]}]},{"name":"Prompts","className":"ModuleScript","filePaths":["src/server/main/Map/Prompts.luau"]}]},{"name":"PlayerAdded","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/init.luau"],"children":[{"name":"Character","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/init.luau"],"children":[{"name":"Actions","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/Actions.luau"]},{"name":"Flashlight","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/Flashlight.luau"]},{"name":"Shadows","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/Shadows.luau"]},{"name":"SpineKinematics","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/SpineKinematics.luau"]}]},{"name":"Users","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Users.luau"]}]},{"name":"Types","className":"Folder","children":[{"name":"Elevator","className":"ModuleScript","filePaths":["src/server/main/Types/Elevator.luau"]},{"name":"Enums","className":"Folder","children":[{"name":"Doors","className":"ModuleScript","filePaths":["src/server/main/Types/Enums/Doors.luau"]},{"name":"Sounds","className":"ModuleScript","filePaths":["src/server/main/Types/Enums/Sounds.luau"]}]}]}]}]}]},{"name":"StarterPlayer","className":"StarterPlayer","children":[{"name":"StarterPlayerScripts","className":"StarterPlayerScripts","children":[{"name":"rapid/client","className":"Folder","children":[{"name":"Player","className":"LocalScript","filePaths":["src/client/init.client.luau"],"children":[{"name":"Character","className":"ModuleScript","filePaths":["src/client/Character/init.luau"],"children":[{"name":"Actions","className":"ModuleScript","filePaths":["src/client/Character/Actions.luau"]},{"name":"Camera","className":"ModuleScript","filePaths":["src/client/Character/Camera/init.luau"],"children":[{"name":"Bobbing","className":"ModuleScript","filePaths":["src/client/Character/Camera/Bobbing.luau"]}]},{"name":"Humanoid","className":"ModuleScript","filePaths":["src/client/Character/Humanoid.luau"]},{"name":"HumanoidRootPart","className":"ModuleScript","filePaths":["src/client/Character/HumanoidRootPart.luau"]},{"name":"Sound","className":"Folder","children":[{"name":"Relays","className":"ModuleScript","filePaths":["src/client/Character/Sound/Relays.luau"]}]},{"name":"SpineKinematics","className":"ModuleScript","filePaths":["src/client/Character/SpineKinematics.luau"]}]},{"name":"CoreGuis","className":"ModuleScript","filePaths":["src/client/CoreGuis.luau"]},{"name":"GuiService","className":"ModuleScript","filePaths":["src/client/GuiService.luau"]},{"name":"Mouse","className":"ModuleScript","filePaths":["src/client/Mouse.luau"]},{"name":"UI","className":"Folder","children":[{"name":"Crosshair","className":"ModuleScript","filePaths":["src/client/UI/Crosshair.luau"]},{"name":"Iris","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/init.lua","src/client/UI/Iris/default.project.json"],"children":[{"name":"API","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/API.lua"]},{"name":"Internal","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/Internal.lua"]},{"name":"Types","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/Types.lua"]},{"name":"config","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/config.lua"]},{"name":"demoWindow","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/demoWindow.lua"]},{"name":"widgets","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/init.lua"],"children":[{"name":"Button","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Button.lua"]},{"name":"Checkbox","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Checkbox.lua"]},{"name":"Combo","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Combo.lua"]},{"name":"Format","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Format.lua"]},{"name":"Image","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Image.lua"]},{"name":"Input","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Input.lua"]},{"name":"Menu","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Menu.lua"]},{"name":"Plot","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Plot.lua"]},{"name":"RadioButton","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/RadioButton.lua"]},{"name":"Root","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Root.lua"]},{"name":"Table","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Table.lua"]},{"name":"Text","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Text.lua"]},{"name":"Tree","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Tree.lua"]},{"name":"Window","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Window.lua"]}]}]},{"name":"Vignette","className":"ModuleScript","filePaths":["src/client/UI/Vignette.luau"]}]}]}]}]}]}]} \ No newline at end of file +{"name":"ElevatorGame","className":"DataModel","filePaths":["default.project.json"],"children":[{"name":"ReplicatedFirst","className":"ReplicatedFirst","children":[{"name":"intro","className":"LocalScript","filePaths":["src/load/intro/init.client.luau"],"children":[{"name":"IntroGui","className":"ModuleScript","filePaths":["src/load/intro/IntroGui.luau"]}]}]},{"name":"ReplicatedStorage","className":"ReplicatedStorage","children":[{"name":"Algebra","className":"ModuleScript","filePaths":["src/shared/Algebra.luau"]},{"name":"Client","className":"Folder","children":[{"name":"Camera","className":"ModuleScript","filePaths":["src/shared/Client/Camera.luau"]},{"name":"KeyBinds","className":"ModuleScript","filePaths":["src/shared/Client/KeyBinds.luau"]}]},{"name":"Delta","className":"ModuleScript","filePaths":["src/shared/Delta.luau"]},{"name":"Enums","className":"ModuleScript","filePaths":["src/shared/Enums.luau"]},{"name":"GCSignal","className":"ModuleScript","filePaths":["src/shared/GCSignal.luau"]},{"name":"Output","className":"ModuleScript","filePaths":["src/shared/Output.luau"]},{"name":"Server","className":"Folder","children":[{"name":"holder","className":"ModuleScript","filePaths":["src/shared/Server/holder.luau"]}]},{"name":"Tween","className":"ModuleScript","filePaths":["src/shared/Tween.luau"]}]},{"name":"ServerScriptService","className":"ServerScriptService","children":[{"name":"rapid/server","className":"Actor","children":[{"name":"main","className":"Script","filePaths":["src/server/main/init.server.luau"],"children":[{"name":"Elevators","className":"Folder","children":[{"name":"ButtonManager","className":"ModuleScript","filePaths":["src/server/main/Elevators/ButtonManager.luau"]},{"name":"Map","className":"Folder","children":[{"name":"Haughton","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/init.luau"],"children":[{"name":"Buttons","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Buttons.luau"]},{"name":"Config","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Config.luau"]},{"name":"Doors","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Doors.luau"]},{"name":"Events","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Events/init.luau"],"children":[{"name":"Buttons","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Events/Buttons.luau"]}]},{"name":"Leveling","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/Leveling.luau"]},{"name":"MovingObjects","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/MovingObjects.luau"]},{"name":"TractionRopes","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Haughton/TractionRopes.luau"]}]},{"name":"Otis1960","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/init.luau"],"children":[{"name":"Config","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/Config.luau"]},{"name":"Leveling","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/Leveling.luau"]},{"name":"MovingObjects","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/MovingObjects.luau"]},{"name":"PhysicalRelay","className":"ModuleScript","filePaths":["src/server/main/Elevators/Map/Otis1960/PhysicalRelay.luau"]}]}]},{"name":"System","className":"ModuleScript","filePaths":["src/server/main/Elevators/System/init.luau"],"children":[{"name":"Lanterns","className":"Folder","children":[{"name":"Arrows","className":"ModuleScript","filePaths":["src/server/main/Elevators/System/Lanterns/Arrows.luau"]},{"name":"Display","className":"ModuleScript","filePaths":["src/server/main/Elevators/System/Lanterns/Display.luau"]}]},{"name":"RelayAlgorithm","className":"ModuleScript","filePaths":["src/server/main/Elevators/System/RelayAlgorithm.luau"]}]}]},{"name":"Map","className":"Folder","children":[{"name":"Interactions","className":"Folder","children":[{"name":"LightSwitches","className":"ModuleScript","filePaths":["src/server/main/Map/Interactions/LightSwitches.luau"]}]},{"name":"Lighting","className":"ModuleScript","filePaths":["src/server/main/Map/Lighting/init.luau"]},{"name":"Load","className":"Folder","children":[{"name":"EditorEntities","className":"ModuleScript","filePaths":["src/server/main/Map/Load/EditorEntities.luau"]},{"name":"StarterPlayer","className":"ModuleScript","filePaths":["src/server/main/Map/Load/StarterPlayer.luau"]},{"name":"Tags","className":"ModuleScript","filePaths":["src/server/main/Map/Load/Tags/init.luau"],"children":[{"name":"Buttons","className":"ModuleScript","filePaths":["src/server/main/Map/Load/Tags/Buttons.luau"]},{"name":"Lights","className":"ModuleScript","filePaths":["src/server/main/Map/Load/Tags/Lights.luau"]}]},{"name":"Workspace","className":"ModuleScript","filePaths":["src/server/main/Map/Load/Workspace.luau"]}]},{"name":"Prompts","className":"ModuleScript","filePaths":["src/server/main/Map/Prompts.luau"]}]},{"name":"PlayerAdded","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/init.luau"],"children":[{"name":"Character","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/init.luau"],"children":[{"name":"Actions","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/Actions.luau"]},{"name":"Flashlight","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/Flashlight.luau"]},{"name":"Shadows","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/Shadows.luau"]},{"name":"SpineKinematics","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Character/SpineKinematics.luau"]}]},{"name":"Users","className":"ModuleScript","filePaths":["src/server/main/PlayerAdded/Users.luau"]}]},{"name":"Types","className":"Folder","children":[{"name":"Elevator","className":"ModuleScript","filePaths":["src/server/main/Types/Elevator.luau"]},{"name":"Enums","className":"Folder","children":[{"name":"Doors","className":"ModuleScript","filePaths":["src/server/main/Types/Enums/Doors.luau"]},{"name":"Sounds","className":"ModuleScript","filePaths":["src/server/main/Types/Enums/Sounds.luau"]}]}]}]}]}]},{"name":"StarterPlayer","className":"StarterPlayer","children":[{"name":"StarterPlayerScripts","className":"StarterPlayerScripts","children":[{"name":"rapid/client","className":"Folder","children":[{"name":"Player","className":"LocalScript","filePaths":["src/client/init.client.luau"],"children":[{"name":"Character","className":"ModuleScript","filePaths":["src/client/Character/init.luau"],"children":[{"name":"Actions","className":"ModuleScript","filePaths":["src/client/Character/Actions.luau"]},{"name":"Camera","className":"ModuleScript","filePaths":["src/client/Character/Camera/init.luau"],"children":[{"name":"Bobbing","className":"ModuleScript","filePaths":["src/client/Character/Camera/Bobbing.luau"]}]},{"name":"Humanoid","className":"ModuleScript","filePaths":["src/client/Character/Humanoid.luau"]},{"name":"HumanoidRootPart","className":"ModuleScript","filePaths":["src/client/Character/HumanoidRootPart.luau"]},{"name":"Sound","className":"Folder","children":[{"name":"Relays","className":"ModuleScript","filePaths":["src/client/Character/Sound/Relays.luau"]}]},{"name":"SpineKinematics","className":"ModuleScript","filePaths":["src/client/Character/SpineKinematics.luau"]}]},{"name":"CoreGuis","className":"ModuleScript","filePaths":["src/client/CoreGuis.luau"]},{"name":"GuiService","className":"ModuleScript","filePaths":["src/client/GuiService.luau"]},{"name":"Mouse","className":"ModuleScript","filePaths":["src/client/Mouse.luau"]},{"name":"UI","className":"Folder","children":[{"name":"Crosshair","className":"ModuleScript","filePaths":["src/client/UI/Crosshair.luau"]},{"name":"Iris","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/init.lua","src/client/UI/Iris/default.project.json"],"children":[{"name":"API","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/API.lua"]},{"name":"Internal","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/Internal.lua"]},{"name":"Types","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/Types.lua"]},{"name":"config","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/config.lua"]},{"name":"demoWindow","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/demoWindow.lua"]},{"name":"widgets","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/init.lua"],"children":[{"name":"Button","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Button.lua"]},{"name":"Checkbox","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Checkbox.lua"]},{"name":"Combo","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Combo.lua"]},{"name":"Format","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Format.lua"]},{"name":"Image","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Image.lua"]},{"name":"Input","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Input.lua"]},{"name":"Menu","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Menu.lua"]},{"name":"Plot","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Plot.lua"]},{"name":"RadioButton","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/RadioButton.lua"]},{"name":"Root","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Root.lua"]},{"name":"Table","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Table.lua"]},{"name":"Text","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Text.lua"]},{"name":"Tree","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Tree.lua"]},{"name":"Window","className":"ModuleScript","filePaths":["src/client/UI/Iris/lib/widgets/Window.lua"]}]}]},{"name":"Vignette","className":"ModuleScript","filePaths":["src/client/UI/Vignette.luau"]}]}]}]}]}]}]} \ No newline at end of file diff --git a/src/server/main/Elevators/Map/Haughton/Config.luau b/src/server/main/Elevators/Map/Haughton/Config.luau index 161d652..19b68e6 100644 --- a/src/server/main/Elevators/Map/Haughton/Config.luau +++ b/src/server/main/Elevators/Map/Haughton/Config.luau @@ -20,8 +20,8 @@ ElevatorConfig.FloorLeveling3PhaseDistance = 1.5 ElevatorConfig.LevelingVelocity = .5 ElevatorConfig.Phase3LevelingVelocity = .5 ElevatorConfig.ParkedDistance = 0.2 -ElevatorConfig.Responsiveness = 5 -ElevatorConfig.MaxVelocity = 7 +ElevatorConfig.Responsiveness = 5 +ElevatorConfig.MaxVelocity = 7 ElevatorConfig.Functions = { ManualTravelStart = true @@ -35,40 +35,45 @@ ElevatorConfig.Colors = { ButtonDeactivated = { Color = Color3.fromRGB(136,143,145), Material = Enum.Material.SmoothPlastic - }, - LanternIndicator = { - On = { - Up = { - Color = Color3.fromRGB(44,255,157), - Material = Enum.Material.Neon - }, - Down = { - Color = Color3.fromRGB(255,29,101), - Material = Enum.Material.Neon - }, + } +} + +ElevatorConfig.Lanterns = { + On = { + Up = { + Color = Color3.fromRGB(44,255,157), + Material = Enum.Material.Neon, + Time = 1 + }, + Down = { + Color = Color3.fromRGB(255, 56, 59), + Material = Enum.Material.Neon, + Time = 1 + }, + }, + Off = { + Up = { + Color = Color3.fromRGB(172,174,197), + Material = Enum.Material.SmoothPlastic, + Time = 1 + }, + Down = { + Color = Color3.fromRGB(172,174,197), + Material = Enum.Material.SmoothPlastic, + Time = 1 }, - Off = { - Up = { - Color = Color3.fromRGB(172,174,197), - Material = Enum.Material.SmoothPlastic - }, - Down = { - Color = Color3.fromRGB(172,174,197), - Material = Enum.Material.SmoothPlastic - }, - } } } local DoorsConfig: ElevatorTypes.DoorsConfig = { Cab = { Type = DoorEnums.Door.DoubleSpeed, - Time = 4, + Time = 5, Goal = Vector3.new(4.027) }, Landing = { Type = DoorEnums.Door.SingleSpeed, - Time = 4, + Time = 5, Goal = Vector3.new(4.221) } } diff --git a/src/server/main/Elevators/Map/Haughton/Events/init.luau b/src/server/main/Elevators/Map/Haughton/Events/init.luau index c313ca3..0e3be31 100644 --- a/src/server/main/Elevators/Map/Haughton/Events/init.luau +++ b/src/server/main/Elevators/Map/Haughton/Events/init.luau @@ -5,8 +5,11 @@ local ParentDir = script.Parent local ElevatorsDir = ParentDir.Parent.Parent local MainDir = ElevatorsDir.Parent +local ElevatorSystem = ElevatorsDir:WaitForChild("System") + +local ArrowLanterns = require(ElevatorSystem:WaitForChild("Lanterns"):WaitForChild("Arrows")) local ButtonEvents = require(script:WaitForChild("Buttons")) -local InitElevator = require(ElevatorsDir:WaitForChild("System")) +local InitElevator = require(ElevatorSystem) local Doors = require(ParentDir:WaitForChild("Doors")) local Buttons = require(ParentDir:WaitForChild("Buttons")) local MovingObjects = require(ParentDir:WaitForChild("MovingObjects")) @@ -25,6 +28,7 @@ type Constructor_Fun = ( ElevatorConstructor: InitElevator.constructor, ElevatorConfig: ElevatorTypes.ElevatorConfigurationTable, DoorsConstructor: Doors.constructor, + ArrowLanternsConstructor: ArrowLanterns.constructor, ButtonsConstructor: Buttons.constructor, ElevatorBoxModel: BasePart, Leveling: {number}, @@ -36,6 +40,7 @@ type Constructor_Return_Props = { ElevatorConstructor: InitElevator.constructor, ElevatorConfig: ElevatorTypes.ElevatorConfigurationTable, DoorsConstructor: Doors.constructor, + ArrowLanternsConstructor: ArrowLanterns.constructor, ButtonsConstructor: Buttons.constructor, ElevatorBoxModel: BasePart, Leveling: {number}, @@ -50,6 +55,7 @@ function Events.constructor( ElevatorConstructor, ElevatorConfig, DoorsConstructor, + ArrowLanternsConstructor, ButtonsConstructor, ElevatorBoxModel, Leveling, @@ -60,6 +66,7 @@ function Events.constructor( ElevatorConstructor = ElevatorConstructor, ElevatorConfig = ElevatorConfig, DoorsConstructor = DoorsConstructor, + ArrowLanternsConstructor = ArrowLanternsConstructor, ButtonsConstructor = ButtonsConstructor, ElevatorBoxModel = ElevatorBoxModel, Leveling = Leveling, @@ -68,6 +75,20 @@ function Events.constructor( }, Events) end +local function ElevatorAttributes(self: ClassConstructor) + self.ElevatorConstructor.Attributes.TravelingUpwards:GetPropertyChangedSignal("Value"):Connect(function() + if self.ElevatorConstructor.Attributes.TravelingUpwards.Value then + self.ArrowLanternsConstructor:Toggle(true, true) + self.ArrowLanternsConstructor:Toggle(false, false) + else + self.ArrowLanternsConstructor:Toggle(true, false) + self.ArrowLanternsConstructor:Toggle(false, true) + end + end) +end + +local RandNew = Random.new() + local function ElevatorEvents(self: ClassConstructor) self.ElevatorConstructor.Events.Traveling:Connect(function(_DeltaTime: number, CabPosition: Vector3) local CabVelocity = self.ElevatorBoxModel:GetVelocityAtPosition(CabPosition) @@ -102,7 +123,12 @@ local function ElevatorEvents(self: ClassConstructor) self.DoorsConstructor:OpenCabAsync() end self.MovingObjectsConstructor:RotateRelayCogs3() + + self.ElevatorConfig.FloorLevelingDistance = 10 + print(self.ElevatorConfig.FloorLevelingDistance) end) + + ElevatorAttributes(self) end function Events:InitButtons() diff --git a/src/server/main/Elevators/Map/Haughton/init.luau b/src/server/main/Elevators/Map/Haughton/init.luau index f2cdc51..d916473 100644 --- a/src/server/main/Elevators/Map/Haughton/init.luau +++ b/src/server/main/Elevators/Map/Haughton/init.luau @@ -1,13 +1,16 @@ --!optimize 2 --!strict -local ButtonPromptsDistance = Vector3.new(-.05,0,0) +local ButtonPromptsDistance = Vector3.new(-.05) local ParentDir = script.Parent local ElevatorsDir = ParentDir.Parent local MainDir = ElevatorsDir.Parent -local InitElevator = require(ElevatorsDir:WaitForChild("System")) +local ElevatorSystem = ElevatorsDir:WaitForChild("System") + +local InitElevator = require(ElevatorSystem) +local ArrowLantern = require(ElevatorSystem:WaitForChild("Lanterns"):WaitForChild("Arrows")) local Events = require(script:WaitForChild("Events")) local Config = require(script:WaitForChild("Config")) local Buttons = require(script:WaitForChild("Buttons")) @@ -28,19 +31,24 @@ return function(TagsConstructor: TagsModule.TagsConstructor, ButtonTags: TagsMod local ButtonsConstructor = Buttons.constructor(Config.Elevator.Name, ButtonTags, Elevator.Attributes.CurrentFloor) ButtonsConstructor:InitForElevator(2, ButtonPromptsDistance) + local ArrowLanternConstructor = ArrowLantern.constructor(LanternTags, Config.Elevator) local TractionRopesConstructor = TractionRopes.constructor(CabRopesObject, PulleyRopesObject) local DoorsConstructor = Doors.constructor(Leveling, ElevatorBoxModel, Config.Doors, LandingDoorTags) local EventsConstructor = Events.constructor( Elevator, Config.Elevator, DoorsConstructor, + ArrowLanternConstructor, ButtonsConstructor, ElevatorBoxModel, Leveling, MovingObjectsConstructor, TractionRopesConstructor ) + TractionRopesConstructor:Update() EventsConstructor:InitButtons() + ArrowLanternConstructor:Toggle(true, true) + if DoorsConstructor:OpenAtFloor(Elevator.Attributes.CurrentFloor.Value) then DoorsConstructor:OpenCabAsync() end diff --git a/src/server/main/Elevators/System/Lanterns/Arrows.luau b/src/server/main/Elevators/System/Lanterns/Arrows.luau new file mode 100644 index 0000000..32f758b --- /dev/null +++ b/src/server/main/Elevators/System/Lanterns/Arrows.luau @@ -0,0 +1,65 @@ +--!optimize 2 +--!strict + +local MainDir = script.Parent.Parent.Parent.Parent +local TagsModule = require(MainDir:WaitForChild("Map"):WaitForChild("Load"):WaitForChild("Tags")) +local ElevatorTypes = require(MainDir:WaitForChild("Types"):WaitForChild("Elevator")) + +local TS = game:GetService("TweenService") + +type ClassConstructor = typeof(setmetatable({} :: Constructor_Return_Props, {} :: Impl_Constructor)) +type Impl_Constructor = { + __index: Impl_Constructor, + constructor: Constructor_Fun, + --Class functions + Toggle: (self: ClassConstructor, OnState: boolean, UpLantern: boolean) -> Tween?, + Off: (self: ClassConstructor) -> (Tween?, Tween?), +} + +type Constructor_Fun = (Lanterns: TagsModule.Lanterns, ElevatorConfig: ElevatorTypes.ElevatorConfigurationTable) -> ClassConstructor +type Constructor_Return_Props = { + Lanterns: TagsModule.Lanterns, + ElevatorConfig: ElevatorTypes.ElevatorConfigurationTable +} + +export type constructor = ClassConstructor + +local ArrowLanterns = {} :: Impl_Constructor +ArrowLanterns.__index = ArrowLanterns + +function ArrowLanterns.constructor(Lanterns, ElevatorConfig) + return setmetatable({ + Lanterns = Lanterns, + ElevatorConfig = ElevatorConfig + }, ArrowLanterns) +end + +function ArrowLanterns:Toggle(OnState, UpLantern) + local LanternType = UpLantern and self.Lanterns.Up or self.Lanterns.Down + if LanternType then + --mega boolean short circuit + local ConfigState = OnState and (UpLantern and self.ElevatorConfig.Lanterns.On.Up or self.ElevatorConfig.Lanterns.On.Down) or (UpLantern and self.ElevatorConfig.Lanterns.Off.Up or self.ElevatorConfig.Lanterns.Off.Down) + + LanternType.Inst.Material = ConfigState.Material + + local TweenTime = TweenInfo.new(ConfigState.Time, Enum.EasingStyle.Linear) + local UpArrowTween = TS:Create(LanternType.Inst, TweenTime, { + Color = ConfigState.Color + }) + UpArrowTween:Play() + TS:Create(LanternType.PointLight, TweenTime, { + Brightness = OnState and 1 or 0 + }):Play() + + return UpArrowTween + else + warn(`[{self.ElevatorConfig.Name}]: Could not toggle a direction lantern. UpLantern={UpLantern} OnState={OnState}, LaternType={LanternType}`) + end + return nil +end + +function ArrowLanterns:Off() + return self:Toggle(false, true), self:Toggle(false, false) +end + +return ArrowLanterns \ No newline at end of file diff --git a/src/server/main/Elevators/Lanterns.luau b/src/server/main/Elevators/System/Lanterns/Display.luau similarity index 100% rename from src/server/main/Elevators/Lanterns.luau rename to src/server/main/Elevators/System/Lanterns/Display.luau diff --git a/src/server/main/Map/Load/Tags/init.luau b/src/server/main/Map/Load/Tags/init.luau index 74f53ac..72760df 100644 --- a/src/server/main/Map/Load/Tags/init.luau +++ b/src/server/main/Map/Load/Tags/init.luau @@ -36,9 +36,7 @@ type Constructor_Return_Props = { export type Lantern = { Inst: BasePart, - Light: BasePart?, PointLight: PointLight?, - Played: boolean } export type ElevatorButtons = { @@ -225,35 +223,23 @@ function Tags:__ElevatorLanterns() if Floor then if not Lanterns[EnumValue :: Enums.ElevatorValues][Floor] then - local Light = ((Inst :: BasePart).Parent :: Instance):FindFirstChild("Light") :: BasePart? - Lanterns[EnumValue :: Enums.ElevatorValues][Floor] = { Inst = Inst :: BasePart, - Light = Light, - PointLight = Light and Light:FindFirstChildOfClass("PointLight") :: PointLight?, - Played = false + PointLight = (Inst :: BasePart):FindFirstChildWhichIsA("PointLight", true) :: PointLight? } else warn(`Lanterns: Floor "{tostring(Floor)}" was already wrote while parsing`) end else if FloorHint == "Up" then - local Light = ((Inst :: BasePart).Parent :: Instance):FindFirstChild("Light") :: BasePart? - Lanterns[EnumValue :: Enums.ElevatorValues].Up = { Inst = Inst :: BasePart, - Light = Light, - PointLight = Light and Light:FindFirstChildOfClass("PointLight") :: PointLight?, - Played = false + PointLight = (Inst :: BasePart):FindFirstChildWhichIsA("PointLight", true) :: PointLight? } elseif FloorHint == "Down" then - local Light = ((Inst :: BasePart).Parent :: Instance):FindFirstChild("Light") :: BasePart? - Lanterns[EnumValue :: Enums.ElevatorValues].Down = { Inst = Inst :: BasePart, - Light = Light, - PointLight = Light and Light:FindFirstChildOfClass("PointLight") :: PointLight?, - Played = false + PointLight = (Inst :: BasePart):FindFirstChildWhichIsA("PointLight", true) :: PointLight? } else warn(`Lanterns: Unknown type paired with "DirectionIndicator", {FloorHint}`) diff --git a/src/server/main/Types/Elevator.luau b/src/server/main/Types/Elevator.luau index 1da7481..cc77dd6 100644 --- a/src/server/main/Types/Elevator.luau +++ b/src/server/main/Types/Elevator.luau @@ -11,24 +11,27 @@ local DoorEnums = require(EnumsDir:WaitForChild("Doors")) local Enums = require(StorageService:WaitForChild("Enums")) local SoundEnums = require(EnumsDir:WaitForChild("Sounds")) -export type ButtonProperties = { +export type ButtonProperties = { Color: Color3, Material: Enum.Material } -export type Colors = { +export type ButtonColors = { ButtonActivated: ButtonProperties, ButtonDeactivated: ButtonProperties, - LanternIndicator: { - On: { - Up: ButtonProperties, - Down: ButtonProperties - }, - Off: { - Up: ButtonProperties, - Down: ButtonProperties - } +} + +export type LanternProperties = ButtonProperties & {Time: number} + +export type Lanterns = { + On: { + Up: LanternProperties, + Down: LanternProperties }, + Off: { + Up: LanternProperties, + Down: LanternProperties + } } export type ElevatorConfigurationTable = { @@ -48,7 +51,8 @@ export type ElevatorConfigurationTable = { LanternChimeDirection: SoundEnums.ElevatorSoundValues, LanternChimeLanding: SoundEnums.ElevatorSoundValues, }, - Colors: Colors, + Colors: ButtonColors, + Lanterns: Lanterns } export type DoorsConfigProperties = {