diff --git a/sourcemap.json b/sourcemap.json index 199bfbf..5660021 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":"Output","className":"ModuleScript","filePaths":["src/shared/Output.luau"]},{"name":"Property","className":"ModuleScript","filePaths":["src/shared/Property.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":"ButtonsManager","className":"ModuleScript","filePaths":["src/server/main/Elevators/ButtonsManager.luau"]},{"name":"Config","className":"ModuleScript","filePaths":["src/server/main/Elevators/Config.luau"]},{"name":"Doors","className":"ModuleScript","filePaths":["src/server/main/Elevators/Doors.luau"]},{"name":"HallDisplays","className":"ModuleScript","filePaths":["src/server/main/Elevators/HallDisplays.luau"]},{"name":"Haughton","className":"ModuleScript","filePaths":["src/server/main/Elevators/Haughton/init.luau"]},{"name":"InitElevator","className":"ModuleScript","filePaths":["src/server/main/Elevators/InitElevator/init.luau"],"children":[{"name":"RelayAlgorithm","className":"ModuleScript","filePaths":["src/server/main/Elevators/InitElevator/RelayAlgorithm.luau"]}]},{"name":"Lanterns","className":"ModuleScript","filePaths":["src/server/main/Elevators/Lanterns.luau"]},{"name":"Leveling","className":"ModuleScript","filePaths":["src/server/main/Elevators/Leveling.luau"]},{"name":"Otis1960","className":"ModuleScript","filePaths":["src/server/main/Elevators/Otis1960/init.luau"],"children":[{"name":"MovingObjects","className":"ModuleScript","filePaths":["src/server/main/Elevators/Otis1960/MovingObjects.luau"]},{"name":"PhysicalRelay","className":"ModuleScript","filePaths":["src/server/main/Elevators/Otis1960/PhysicalRelay.luau"]}]},{"name":"TractionRopes","className":"ModuleScript","filePaths":["src/server/main/Elevators/TractionRopes.luau"]}]},{"name":"Enums","className":"Folder","children":[{"name":"Sounds","className":"ModuleScript","filePaths":["src/server/main/Enums/Sounds.luau"]}]},{"name":"Lighting","className":"ModuleScript","filePaths":["src/server/main/Lighting/init.luau"]},{"name":"Load","className":"Folder","children":[{"name":"EditorEntities","className":"ModuleScript","filePaths":["src/server/main/Load/EditorEntities.luau"]},{"name":"StarterPlayer","className":"ModuleScript","filePaths":["src/server/main/Load/StarterPlayer.luau"]},{"name":"Tags","className":"ModuleScript","filePaths":["src/server/main/Load/Tags/init.luau"],"children":[{"name":"Buttons","className":"ModuleScript","filePaths":["src/server/main/Load/Tags/Buttons.luau"]},{"name":"Lights","className":"ModuleScript","filePaths":["src/server/main/Load/Tags/Lights.luau"]}]},{"name":"Workspace","className":"ModuleScript","filePaths":["src/server/main/Load/Workspace.luau"]}]},{"name":"Map","className":"Folder","children":[{"name":"Interactions","className":"Folder","children":[{"name":"LightSwitches","className":"ModuleScript","filePaths":["src/server/main/Map/Interactions/LightSwitches.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":"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":"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":"Configs","className":"ModuleScript","filePaths":["src/server/main/Elevators/Configs.luau"]},{"name":"Elevator","className":"ModuleScript","filePaths":["src/server/main/Elevators/Elevator/init.luau"],"children":[{"name":"ButtonsManager","className":"ModuleScript","filePaths":["src/server/main/Elevators/Elevator/ButtonsManager.luau"]},{"name":"Haughton","className":"ModuleScript","filePaths":["src/server/main/Elevators/Elevator/Haughton/init.luau"]},{"name":"Otis1960","className":"ModuleScript","filePaths":["src/server/main/Elevators/Elevator/Otis1960/init.luau"],"children":[{"name":"MovingObjects","className":"ModuleScript","filePaths":["src/server/main/Elevators/Elevator/Otis1960/MovingObjects.luau"]},{"name":"PhysicalRelay","className":"ModuleScript","filePaths":["src/server/main/Elevators/Elevator/Otis1960/PhysicalRelay.luau"]}]},{"name":"RelayAlgorithm","className":"ModuleScript","filePaths":["src/server/main/Elevators/Elevator/RelayAlgorithm.luau"]}]},{"name":"Lanterns","className":"ModuleScript","filePaths":["src/server/main/Elevators/Lanterns.luau"]},{"name":"Leveling","className":"ModuleScript","filePaths":["src/server/main/Elevators/Leveling.luau"]},{"name":"TractionRopes","className":"ModuleScript","filePaths":["src/server/main/Elevators/TractionRopes.luau"]}]},{"name":"Enums","className":"Folder","children":[{"name":"Sounds","className":"ModuleScript","filePaths":["src/server/main/Enums/Sounds.luau"]}]},{"name":"Lighting","className":"ModuleScript","filePaths":["src/server/main/Lighting/init.luau"]},{"name":"Load","className":"Folder","children":[{"name":"EditorEntities","className":"ModuleScript","filePaths":["src/server/main/Load/EditorEntities.luau"]},{"name":"StarterPlayer","className":"ModuleScript","filePaths":["src/server/main/Load/StarterPlayer.luau"]},{"name":"Tags","className":"ModuleScript","filePaths":["src/server/main/Load/Tags/init.luau"],"children":[{"name":"Buttons","className":"ModuleScript","filePaths":["src/server/main/Load/Tags/Buttons.luau"]},{"name":"Lights","className":"ModuleScript","filePaths":["src/server/main/Load/Tags/Lights.luau"]}]},{"name":"Workspace","className":"ModuleScript","filePaths":["src/server/main/Load/Workspace.luau"]}]},{"name":"Map","className":"Folder","children":[{"name":"Interactions","className":"Folder","children":[{"name":"LightSwitches","className":"ModuleScript","filePaths":["src/server/main/Map/Interactions/LightSwitches.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":"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/client/init.client.luau b/src/client/init.client.luau index 01b5e62..5408523 100644 --- a/src/client/init.client.luau +++ b/src/client/init.client.luau @@ -18,14 +18,13 @@ end local UI = script:WaitForChild("UI") local CrosshairSettings = require(UI:WaitForChild("Crosshair")) local VignetteSettings = require(UI:WaitForChild("Vignette")) -local HealthSettings = require(UI:WaitForChild("Health")) local CoreGuis = require(script:WaitForChild("CoreGuis")) local Mouse = require(script:WaitForChild("Mouse")) local Character = require(script:WaitForChild("Character")) local function LoadCharacter(CharacterModel) local CharacterConstructor = Character.constructor(CharacterModel) - + CharacterConstructor:DisableRobloxSounds() CharacterConstructor:SetWalkSpeed() CharacterConstructor:SetJumpHeight() @@ -61,7 +60,7 @@ local Crosshair = CrosshairSettings.constructor(PlayerGui) --Keybinds local function CameraBinds() local CameraBindMap = KeyBindsModule.constructor(false) - + CameraBindMap:AddInputBegan({Enum.KeyCode.C, Enum.KeyCode.Z}, function(_KeyPressed) Camera:ZoomIn(Vignette, Crosshair) end) @@ -84,10 +83,9 @@ CoreGuis:Off() Camera:FirstPerson() Mouse:DisablePointer() Crosshair:Enable() -HealthSettings:Enable() CameraBinds() Crosshair3DEffect() LoadCharacter(PlayerCharacter) -Player.CharacterAdded:Connect(LoadCharacter) \ No newline at end of file +Player.CharacterAdded:Connect(LoadCharacter) diff --git a/src/load/intro/IntroGui.luau b/src/load/intro/IntroGui.luau index db68a70..30899b8 100644 --- a/src/load/intro/IntroGui.luau +++ b/src/load/intro/IntroGui.luau @@ -22,7 +22,6 @@ type Scalar = { type GuiDependencies = { IntroGui: ScreenGui, Frame: Frame, - FrameGradient: UIGradient, TextShadow: TextLabel, ShadowGradient: UIGradient, FrameworkText: TextLabel, @@ -45,7 +44,6 @@ local function GuiDependencies(IntroGui: ScreenGui): GuiDependencies local Frame = IntroGui:WaitForChild("Frame") :: Frame - local FrameGradient = Frame:WaitForChild("UIGradient") :: UIGradient local TextShadow = Frame:WaitForChild("TextShadow") :: TextLabel local FrameworkText = Frame:WaitForChild("Framework") :: TextLabel local SandboxText = Frame:WaitForChild("Sandbox") :: TextLabel @@ -63,7 +61,6 @@ local function GuiDependencies(IntroGui: ScreenGui): GuiDependencies return { IntroGui = IntroGui, Frame = Frame, - FrameGradient = FrameGradient, TextShadow = TextShadow, ShadowGradient = ShadowGradient, FrameworkText = FrameworkText, @@ -158,12 +155,12 @@ local function UI_3D_Rotation(Gui: GuiDependencies, Delta: number) local mX = Delta/1.5 local mY = Delta/1.5 local mZ = -7.65 - + local RMatrix = RotationMatrix(mX,mY,mZ) local X = {Size*RMatrix.Ixx, Size*RMatrix.Ixy} local Y = {Size*RMatrix.Iyx, Size*RMatrix.Iyy} local Z = {Size*RMatrix.Izx, Size*RMatrix.Izy} - + local AXIS_R_3DScalar_X = Scalar(CenterX+X[1],CenterY+X[2],CenterX,CenterY) local AXIS_R_3DScalar_Y = Scalar(CenterX+Y[1],CenterY+Y[2],CenterX,CenterY) local AXIS_R_3DScalar_Z = Scalar(CenterX+Z[1],CenterY+Z[2],CenterX,CenterY) @@ -171,19 +168,19 @@ local function UI_3D_Rotation(Gui: GuiDependencies, Delta: number) Gui.Xframe.Position = UDim2.fromOffset(AXIS_R_3DScalar_X.Center.X, AXIS_R_3DScalar_X.Center.Y) Gui.Yframe.Position = UDim2.fromOffset(AXIS_R_3DScalar_Y.Center.X, AXIS_R_3DScalar_Y.Center.Y) Gui.Zframe.Position = UDim2.fromOffset(AXIS_R_3DScalar_Z.Center.X, AXIS_R_3DScalar_Z.Center.Y) - + Gui.Xframe_text.Position = UDim2.fromOffset(AXIS_R_3DScalar_X.Center.X, AXIS_R_3DScalar_X.Center.Y) Gui.Yframe_text.Position = UDim2.fromOffset(AXIS_R_3DScalar_Y.Center.X, AXIS_R_3DScalar_Y.Center.Y) Gui.Zframe_text.Position = UDim2.fromOffset(AXIS_R_3DScalar_Z.Center.X, AXIS_R_3DScalar_Z.Center.Y) - + Gui.Xframe.Size = UDim2.fromOffset(AXIS_R_3DScalar_X.Distance, WorldSize) Gui.Yframe.Size = UDim2.fromOffset(AXIS_R_3DScalar_Y.Distance, WorldSize) Gui.Zframe.Size = UDim2.fromOffset(AXIS_R_3DScalar_Z.Distance, WorldSize) - + Gui.Xframe.Rotation = AXIS_R_3DScalar_X.Rotation Gui.Yframe.Rotation = AXIS_R_3DScalar_Y.Rotation Gui.Zframe.Rotation = AXIS_R_3DScalar_Z.Rotation - + Gui.Xframe_text.Rotation = Gui.Xframe.Rotation Gui.Yframe_text.Rotation = Gui.Yframe.Rotation Gui.Zframe_text.Rotation = Gui.Zframe.Rotation @@ -206,4 +203,4 @@ return function(IntroGui: ScreenGui, load_elapse_start: number) GUI_LoadFinish(Gui) end) -end \ No newline at end of file +end diff --git a/src/server/main/Elevators/Config.luau b/src/server/main/Elevators/Configs.luau similarity index 59% rename from src/server/main/Elevators/Config.luau rename to src/server/main/Elevators/Configs.luau index 89d2812..428d039 100644 --- a/src/server/main/Elevators/Config.luau +++ b/src/server/main/Elevators/Configs.luau @@ -32,8 +32,26 @@ Otis1960Configuration.Colors = { LanternDisplayOff = Color3.fromRGB(55,55,55), } - +local HaughtonConfiguration = {} :: ElevatorTypes.ElevatorConfigurationTable +HaughtonConfiguration.Name = Enums.Elevator.Haughton +HaughtonConfiguration.FloorLevelingDistance = 4 +HaughtonConfiguration.FloorLeveling3PhaseDistance = 1.5 +HaughtonConfiguration.ParkedDistance = 0.2 +HaughtonConfiguration.Responsiveness = 20 +HaughtonConfiguration.MaxVelocity = 7 +HaughtonConfiguration.LevelingVelocity = 2 +HaughtonConfiguration.Phase3LevelingVelocity = .5 +HaughtonConfiguration.Functions = { + ManualTravelStart = true +} +HaughtonConfiguration.Colors = { + ButtonActivated = Color3.fromRGB(180,0,0), + ButtonDeactivated = Color3.fromRGB(139,139,139), + LanternDisplayOn = Color3.fromRGB(44,255,157), + LanternDisplayOff = Color3.fromRGB(255,29,101), +} return { - Otis1960Configuration = Otis1960Configuration + Otis1960Configuration = Otis1960Configuration, + HaughtonConfiguration = HaughtonConfiguration } diff --git a/src/server/main/Elevators/Doors.luau b/src/server/main/Elevators/Doors.luau deleted file mode 100644 index 1bcf4bd..0000000 --- a/src/server/main/Elevators/Doors.luau +++ /dev/null @@ -1,282 +0,0 @@ ---!optimize 2 ---!native ---!strict - -local RS: RunService = game:GetService("RunService") -local Storage: ReplicatedStorage = game:GetService("ReplicatedStorage") - -local Main = script.Parent.Parent.Parent -local Load = Main:WaitForChild("Load") - -local Tween = require(Storage:WaitForChild("Tween")) -local Algebra = require(Storage:WaitForChild("Algebra")) - -local Tags = require(Load:WaitForChild("Tags")) -local SoundEnums = require(Main:WaitForChild("Enums"):WaitForChild("Sounds")) - -type DoorSensors = { - [string]: BasePart -} - -type ClassConstructor = typeof(setmetatable({} :: Constructor_Return_Props, {} :: Impl_Constructor)) -type Impl_Constructor = { - __index: Impl_Constructor, - constructor: Constructor_Fun, - --Class functions - __DetectSensorHit: (self: ClassConstructor, DoorTween1: Tween, DoorTween2: Tween) -> RBXScriptConnection, - ToggleElevatorDoorsAsync: (self: ClassConstructor, opening: boolean, floor: number) -> () -} & Impl_Static_Props - -type Constructor_Fun = (FloorDoorsTags: Tags.LandingTags, ElevatorBox: BasePart, ElevatorDoor1: BasePart, ElevatorDoor2: BasePart, ElevatorDoorSensor: Folder) -> ClassConstructor -type Impl_Static_Props = { - Sensors: boolean, - Door1Stopped_X: Vector3, - Door2Stopped_X: Vector3, - ElevatorDoorTime: number, - ElevatorDoorStyle: Enum.EasingStyle, - __DoorSensors: RBXScriptConnection?, - - Attributes: {} & RelayAttributes -} - -type Constructor_Return_Props = { - FloorDoorsTags: Tags.LandingTags, - DoorSensor: DoorSensors, - ElevatorBox: BasePart, - ElevatorDoor1: BasePart, - ElevatorDoor2: BasePart, - DoorClosingClick: Sound -} - -type Floor = number -type FloorDoors = { - [Floor]: {Vector3}? -} - -export type RelayAttributes = { - Relay: { - Open: BoolValue - } -} - -export type DoorConstructor = ClassConstructor - -local Doors = {} :: Impl_Constructor -Doors.__index = Doors - -Doors.Sensors = true -Doors.Door1Stopped_X = Vector3.xAxis*2.9 -Doors.Door2Stopped_X = Vector3.xAxis*5.8 -Doors.ElevatorDoorTime = 4 -Doors.ElevatorDoorStyle = Enum.EasingStyle.Quad - -Doors.Attributes = { - Relay = { - Open = Instance.new("BoolValue") :: BoolValue - } -} - -Doors.Attributes.Relay.Open.Value = false - -local Attributes = Doors.Attributes - -function Doors.constructor(FloorDoorsTags, ElevatorBox, ElevatorDoor1, ElevatorDoor2, ElevatorDoorSensor) - local DoorSensor: DoorSensors = { - Start = ElevatorDoorSensor:WaitForChild("Start") :: BasePart, - End = ElevatorDoorSensor:WaitForChild("End") :: BasePart - } - - local DoorClosingClick = Instance.new("Sound") :: Sound - DoorClosingClick.SoundId = SoundEnums.Otis1960.DoorClosingClick - DoorClosingClick.Volume = .1 - DoorClosingClick.Parent = ElevatorDoor2 - - return setmetatable({ - FloorDoorsTags = FloorDoorsTags, - DoorSensor = DoorSensor, - ElevatorBox = ElevatorBox, - ElevatorDoor1 = ElevatorDoor1, - ElevatorDoor2 = ElevatorDoor2, - DoorClosingClick = DoorClosingClick - }, Doors) -end - ---speed -local init_floors_opened: FloorDoors = {} -local init_floors_closed: FloorDoors = {} - -local function DoorsAnimationFloor(FloorDoors: {Instance?}, Floor: number, opening: boolean?, activated_via_censor: boolean?): (Tween?, Tween?) - local Door2Tween_Floor: Tween? - local Door1Tween_Floor: Tween? - local FloorDoor1 = FloorDoors[1] :: BasePart? - local FloorDoor2 = FloorDoors[2] :: BasePart? - local FloorDoor1_P = FloorDoor1 and FloorDoor1.Position - local FloorDoor2_P = FloorDoor2 and FloorDoor2.Position - - if opening then - if not init_floors_closed[Floor] then - init_floors_closed[Floor] = {} - end - - if not (init_floors_closed[Floor] :: {})[1] and not (init_floors_closed[Floor] :: {})[2] then - if FloorDoor1_P then - (init_floors_closed[Floor] :: {})[1] = FloorDoor1_P-Doors.Door1Stopped_X - end - if FloorDoor2_P then - (init_floors_closed[Floor] :: {})[2] = FloorDoor2_P-Doors.Door2Stopped_X - end - end - else - if not init_floors_opened[Floor] then - init_floors_opened[Floor] = {} - end - - if not (init_floors_opened[Floor] :: {})[1] and not (init_floors_opened[Floor] :: {})[2] then - if FloorDoor1_P then - (init_floors_opened[Floor] :: {})[1] = FloorDoor1_P+Doors.Door1Stopped_X - end - if FloorDoor2_P then - (init_floors_opened[Floor] :: {})[2] = FloorDoor2_P+Doors.Door2Stopped_X - end - end - end - - if FloorDoor1 then - local DoorTween1 = Tween.constructor(TweenInfo.new( - Doors.ElevatorDoorTime, - activated_via_censor and Enum.EasingStyle.Linear or Doors.ElevatorDoorStyle, - Enum.EasingDirection.Out - ), FloorDoor1) - - Door1Tween_Floor = DoorTween1:Start(nil, { - Position = opening and (init_floors_closed[Floor] :: {Vector3})[1] or (init_floors_opened[Floor] :: {Vector3})[1] - }) - end - - if FloorDoor2 then - local DoorTween2 = Tween.constructor(TweenInfo.new( - Doors.ElevatorDoorTime, - activated_via_censor and Enum.EasingStyle.Linear or Doors.ElevatorDoorStyle, - Enum.EasingDirection.Out - ), FloorDoor2) - - Door2Tween_Floor = DoorTween2:Start(nil, { - Position = opening and (init_floors_closed[Floor] :: {Vector3})[2] or (init_floors_opened[Floor] :: {Vector3})[2] - }) - end - - return Door1Tween_Floor, Door2Tween_Floor -end - -local function ElevatorDoorsAnimationAsync(self: ClassConstructor, opening: boolean, activated_via_censor: boolean?) - --Roblox physics will freak out - self.ElevatorDoor1.CanCollide = false - self.ElevatorDoor2.CanCollide = false - - local ElevatorDoor1_P = self.ElevatorDoor1.Position - local ElevatorDoor2_P = self.ElevatorDoor2.Position - - local StartTime = os.clock() - local Timing = Doors.ElevatorDoorTime-1 - - if opening then - while task.wait() do - local Time = Algebra.LinearElapse(StartTime, Timing) - local Ease = Algebra.Easing.InOutQuart(Time) - - local ElevatorBoxY = Vector3.new(0, self.ElevatorBox.Position.Y, 0) - local Door1Vector = Vector3.new(ElevatorDoor1_P.X, 0, ElevatorDoor1_P.Z) - local Door2Vector = Vector3.new(ElevatorDoor2_P.X, 0, ElevatorDoor2_P.Z) - - self.ElevatorDoor1.Position = ElevatorBoxY+Door1Vector:Lerp(Door1Vector-Doors.Door1Stopped_X, Ease) - self.ElevatorDoor2.Position = ElevatorBoxY+Door2Vector:Lerp(Door2Vector-Doors.Door2Stopped_X, Ease) - - if Time>=1 then - break - end - end - else - while task.wait() do - local Time = Algebra.LinearElapse(StartTime, Timing) - local Ease = Algebra.Easing.InOutQuart(Time) - - local ElevatorBoxY = Vector3.new(0, self.ElevatorBox.Position.Y, 0) - local Door1Vector = Vector3.new(ElevatorDoor1_P.X, 0, ElevatorDoor1_P.Z) - local Door2Vector = Vector3.new(ElevatorDoor2_P.X, 0, ElevatorDoor2_P.Z) - - self.ElevatorDoor1.Position = ElevatorBoxY+Door1Vector:Lerp(Door1Vector+Doors.Door1Stopped_X, Ease) - self.ElevatorDoor2.Position = ElevatorBoxY+Door2Vector:Lerp(Door2Vector+Doors.Door2Stopped_X, Ease) - - if Time>=1 then - break - end - end - end -end - -local raycastParams = RaycastParams.new() -raycastParams.FilterType = Enum.RaycastFilterType.Exclude - ---heh.. -local RayIgnoring = {} -local workspace_items = workspace:GetChildren() -for n: number = 1, #workspace_items do - local Inst = workspace_items[n] - if Inst:IsA("Folder") or Inst:IsA("BasePart") then - table.insert(RayIgnoring, workspace_items[n]) - end -end - -function Doors:__DetectSensorHit(DoorTween1, DoorTween2) - local Step = nil - - if Doors.Sensors and Attributes.Relay.Open.Value then - raycastParams.FilterDescendantsInstances = {self.ElevatorBox, table.unpack(RayIgnoring)} - - Step = RS.Heartbeat:Connect(function(_dt) - local DoorSensor = workspace:Raycast(self.DoorSensor.Start.Position, self.DoorSensor.End.Position, raycastParams) - - if DoorSensor and DoorSensor.Instance and DoorSensor.Instance:IsA("BasePart") then - Step:Disconnect() - DoorTween1:Pause() - DoorTween2:Pause() - task.wait(1) --elevators irl have this delay - ElevatorDoorsAnimationAsync(self, true, true) - end - end) - end - - return Step -end - -function Doors:ToggleElevatorDoorsAsync(opening, floor) - --short circuiting central - if opening then - if Attributes.Relay.Open.Value then - warn("Doors are already closed, doing nothing") - return - end - else - if not Attributes.Relay.Open.Value then - warn("Doors are already open, doing nothing") - return - end - end - - local FloorDoorsObjects = self.FloorDoorsTags[floor] - if FloorDoorsObjects then - DoorsAnimationFloor(FloorDoorsObjects, floor, opening) - end - - Attributes.Relay.Open.Value = opening - ElevatorDoorsAnimationAsync(self, opening) - - self.ElevatorDoor1.CanCollide = true - self.ElevatorDoor2.CanCollide = true - - if Doors.__DoorSensors and Doors.__DoorSensors.Connected then - Doors.__DoorSensors:Disconnect() - end -end - -return Doors \ No newline at end of file diff --git a/src/server/main/Elevators/ButtonsManager.luau b/src/server/main/Elevators/Elevator/Buttons.luau similarity index 79% rename from src/server/main/Elevators/ButtonsManager.luau rename to src/server/main/Elevators/Elevator/Buttons.luau index 02624e7..420402c 100644 --- a/src/server/main/Elevators/ButtonsManager.luau +++ b/src/server/main/Elevators/Elevator/Buttons.luau @@ -25,9 +25,6 @@ type Impl_Constructor = { CarButton: (self: ClassConstructor, ButtonID: string, ButtonTree: Tags.ButtonProperties, Callback: FloorButtonActivatedCallback, Fallback: FloorButtonActivatedFallback) -> (), LandingButton: (self: ClassConstructor, ButtonID: string, ButtonTree: Tags.ButtonProperties, Callback: FloorButtonActivatedCallback, Fallback: FloorButtonActivatedFallback) -> (), SpecialButton: (self: ClassConstructor, ButtonName: Enums.SpecialButtonValues, ButtonID: string, ButtonTree: Tags.ButtonProperties, Callback: StopButtonActivatedCallback) -> (), - AestheticActivateButton: (self: ClassConstructor, Button: BasePart, Glass: BasePart?) -> (), - __DeactivateButton: (self: ClassConstructor, Button: BasePart, Glass: BasePart?) -> (), - __ActivateButton: (self: ClassConstructor, Button: BasePart, Glass: BasePart?) -> (), } & Impl_Static_Props type Impl_Static_Props = { @@ -135,38 +132,4 @@ function ButtonFunctions:SpecialButton(ButtonID, ButtonName, ButtonTree, Callbac end end -function ButtonFunctions:__DeactivateButton(Button, Glass) - local Part = Glass or Button - - Part.Material = Enum.Material.Glass - Part.Color = self.ElevatorButtonColors.ButtonDeactivated - Part.Transparency = 0.3 -end - -function ButtonFunctions:__ActivateButton(Button, Glass) - local Part = Glass or Button - - Part.Material = Enum.Material.Neon - Part.Color = self.ElevatorButtonColors.ButtonActivated - Part.Transparency = 0 -end - -function ButtonFunctions:AestheticActivateButton(Button) - local Glass = Button:FindFirstChild("Glass") :: BasePart? - local LookVec = (Glass or Button).CFrame.LookVector/50 - if Glass then - Glass.Position+=LookVec - self:__ActivateButton(Button, Glass) - end - - Button.Position+=LookVec - - task.delay(ButtonFunctions.ButtonHoldDuration, function() - if Glass then - Glass.Position-=LookVec - end - Button.Position-=LookVec - end) -end - -return ButtonFunctions \ No newline at end of file +return ButtonFunctions diff --git a/src/server/main/Elevators/Elevator/Haughton/init.luau b/src/server/main/Elevators/Elevator/Haughton/init.luau new file mode 100644 index 0000000..c16feb9 --- /dev/null +++ b/src/server/main/Elevators/Elevator/Haughton/init.luau @@ -0,0 +1,38 @@ +--!optimize 2 +--!native +--!strict + +local ParentDir = script.Parent +local ElevatorDir = ParentDir.Parent +local MainDir = ElevatorDir.Parent + +local StorageService = game:GetService("ReplicatedStorage") + +local InitElevator = require(ParentDir) +local TagsModule = require(MainDir:WaitForChild("Load"):WaitForChild("Tags")) +local Enums = require(StorageService:WaitForChild("Enums")) + +local ElevatorConfigurationTable = require(ElevatorDir:WaitForChild("Configs")) +local FloorLevelingPositions = require(ElevatorDir:WaitForChild("Leveling")) +local TractionRopes = require(ElevatorDir:WaitForChild("TractionRopes")) + +return function(TagsConstructor: TagsModule.TagsConstructor, ButtonTags: TagsModule.ElevatorButtons, LanternTags: TagsModule.Lanterns, LandingDoorTags: TagsModule.LandingTags) + local ElevatorBoxModel = TagsConstructor:Request("ElevatorMover_Haughton") :: BasePart + local RopeTags = TagsConstructor:Request("ElevatorRope_Haughton") :: {Instance} + + local Elevator = InitElevator.constructor(ElevatorBoxModel, ElevatorConfigurationTable.HaughtonConfiguration, FloorLevelingPositions.HaughtonLeveling) + local TractionRopesConstructor = TractionRopes.constructor(RopeTags, ElevatorBoxModel, FloorLevelingPositions.HaughtonLeveling) + + task.wait(3) + task.spawn(function() + Elevator:RequestLevelAsync(2, Enums.ElevatorCallDirection.Down) + end) + + Elevator.Events.Traveling:Connect(function(deltaTime: number, cabPosition: Vector3) + --TractionRopesConstructor:Move(10, cabPosition) + warn("This is impossible to be firing during parked") + end) + Elevator:StartTraveling() + Elevator.Events.Parked:Wait() + Elevator.__Connections.Moving:Disconnect() +end diff --git a/src/server/main/Elevators/Otis1960/MovingObjects.luau b/src/server/main/Elevators/Elevator/Otis1960/MovingObjects.luau similarity index 100% rename from src/server/main/Elevators/Otis1960/MovingObjects.luau rename to src/server/main/Elevators/Elevator/Otis1960/MovingObjects.luau diff --git a/src/server/main/Elevators/Otis1960/PhysicalRelay.luau b/src/server/main/Elevators/Elevator/Otis1960/PhysicalRelay.luau similarity index 100% rename from src/server/main/Elevators/Otis1960/PhysicalRelay.luau rename to src/server/main/Elevators/Elevator/Otis1960/PhysicalRelay.luau diff --git a/src/server/main/Elevators/Otis1960/init.luau b/src/server/main/Elevators/Elevator/Otis1960/init.luau similarity index 64% rename from src/server/main/Elevators/Otis1960/init.luau rename to src/server/main/Elevators/Elevator/Otis1960/init.luau index 78dafd8..b9c38af 100644 --- a/src/server/main/Elevators/Otis1960/init.luau +++ b/src/server/main/Elevators/Elevator/Otis1960/init.luau @@ -7,18 +7,18 @@ local MainDir = ParentDir.Parent local StorageService = game:GetService("ReplicatedStorage") -local Enums = require(StorageService:WaitForChild("Enums")) -local InitElevator = require(ParentDir:WaitForChild("InitElevator")) -local TagsModule = require(MainDir:WaitForChild("Load"):WaitForChild("Tags")) +local Enums = require(StorageService:WaitForChild("Enums")) +local InitElevator = require(ParentDir:WaitForChild("InitElevator")) +local TagsModule = require(MainDir:WaitForChild("Load"):WaitForChild("Tags")) -local ElevatorConfigurationTable = require(ParentDir:WaitForChild("Config")) +local ElevatorConfigurationTable = require(ParentDir:WaitForChild("Configs")) local FloorLevelingPositions = require(ParentDir:WaitForChild("Leveling")) -- self.ElevatorBox_1960 = TagsConstructor:Request("ElevatorMover_1960") :: UnionOperation -- self.ElevatorDoor1 = TagsConstructor:Request("ElevatorDoor_1960_1") :: BasePart -- self.ElevatorDoor2 = TagsConstructor:Request("ElevatorDoor_1960_2") :: BasePart -- self.ElevatorDoorSensor = TagsConstructor:Request("ElevatorDoor_Sensor_1960") :: Folder --- self.Ropes = TagsConstructor:Request("1960_ElevatorPulleyRope") :: {Instance} +-- self.Ropes = TagsConstructor:Request("1960_ElevatorPulleyRope") :: {Instance} -- self.HallDisplays = TagsConstructor:Request("Otis1960_LandingFloorDisplay") :: {Instance} -- self.MachineRoom.Pulley = TagsConstructor:Request("Otis1960_Pulley") :: UnionOperation @@ -30,21 +30,7 @@ local FloorLevelingPositions = require(ParentDir:WaitForChild("Leveling")) -- self.MachineRoom.PiePlateSelector = TagsConstructor:Request("Otis1960_PiePlateSelector") :: UnionOperation return function(TagsConstructor: TagsModule.TagsConstructor, ButtonTags: TagsModule.ElevatorButtons, LanternTags: TagsModule.Lanterns, LandingDoorTags: TagsModule.LandingTags) - local ElevatorBoxModel = TagsConstructor:Request("ElevatorMover_1960") :: UnionOperation + --local ElevatorBoxModel = TagsConstructor:Request("ElevatorMover_1960") :: UnionOperation - local Elevator = InitElevator.constructor(ElevatorBoxModel, ElevatorConfigurationTable.Otis1960Configuration, FloorLevelingPositions) - - Elevator.Events.Progression:Connect(function(PreviousFloor: number, CurrentFloor: number, NextFloor: number) - print(CurrentFloor) - end) - Elevator.Attributes.Goal:GetPropertyChangedSignal("Value"):Connect(function() - print("Goal=", Elevator.Attributes.Goal.Value) - end) - - task.wait(1) - task.spawn(function() - Elevator:RequestLevelAsync(2, Enums.ElevatorCallDirection.Up) - end) - - print(Elevator.RelayAlgorithm.FloorQueue.Up) + --local Elevator = InitElevator.constructor(ElevatorBoxModel, ElevatorConfigurationTable.Otis1960Configuration, FloorLevelingPositions) end diff --git a/src/server/main/Elevators/InitElevator/RelayAlgorithm.luau b/src/server/main/Elevators/Elevator/RelayAlgorithm.luau similarity index 100% rename from src/server/main/Elevators/InitElevator/RelayAlgorithm.luau rename to src/server/main/Elevators/Elevator/RelayAlgorithm.luau diff --git a/src/server/main/Elevators/InitElevator/init.luau b/src/server/main/Elevators/Elevator/init.luau similarity index 96% rename from src/server/main/Elevators/InitElevator/init.luau rename to src/server/main/Elevators/Elevator/init.luau index 1ca5dbe..f549235 100644 --- a/src/server/main/Elevators/InitElevator/init.luau +++ b/src/server/main/Elevators/Elevator/init.luau @@ -31,7 +31,7 @@ type Impl_Constructor = { } type FloorLevelingPositions = {number} -type Constructor_Fun = (ElevatorBoxModel: UnionOperation, ElevatorConfigurationTable: ElevatorTypes.ElevatorConfigurationTable, FloorLevelingPositions: FloorLevelingPositions) -> ClassConstructor +type Constructor_Fun = (ElevatorBoxModel: BasePart, ElevatorConfigurationTable: ElevatorTypes.ElevatorConfigurationTable, FloorLevelingPositions: FloorLevelingPositions) -> ClassConstructor type Constructor_Return_Props = { RelayAlgorithm: RelayAlgorithm.RelayAlgorithmConstructor, @@ -86,7 +86,7 @@ local function ElevatorGoingUpDirection(CurrentFloor: number, RequestedFloor: nu return CurrentFloor(...: T...) warn(`[{ElevatorConfigurationTable.Name}]:`, ...) + warn(debug.traceback()) end local function eprintStudio(...: T...) Out.printStudio(`[{ElevatorConfigurationTable.Name}]:`, ...) @@ -342,7 +343,8 @@ function Elevator:__TravelToFloorAsync(Level_Int, LEVEL_VEC3_Y_WRAP) self.__Connections.Moving:Disconnect() end - print("TravelingToFloorAsync") + assert(not self.Elevator.BoxModel.Anchored, "The elevator cannot move! Its box model is Anchored.") + local ElevatorTravelingUpwards = ElevatorGoingUpDirection(self.Attributes.CurrentFloor.Value, Level_Int) self.Attributes.Goal.Value = Level_Int self.Attributes.TravelingUpwards.Value = ElevatorTravelingUpwards diff --git a/src/server/main/Elevators/HallDisplays.luau b/src/server/main/Elevators/HallDisplays.luau deleted file mode 100644 index d256a80..0000000 --- a/src/server/main/Elevators/HallDisplays.luau +++ /dev/null @@ -1,57 +0,0 @@ ---!optimize 2 ---!native ---!strict - -type HallDisplays = {Instance} - -type ClassConstructor = typeof(setmetatable({} :: Constructor_Return_Props, {} :: Impl_Constructor)) -type Impl_Constructor = { - __index: Impl_Constructor, - constructor: Constructor_Fun, - --Class functions - BindHallDisplays: (self: ClassConstructor) -> (), - UnBindHallDisplays: (self: ClassConstructor) -> (), - SetHallDisplays: (self: ClassConstructor, floor: string | number) -> () -} - -type Constructor_Fun = (CurrentFloorAttribute: IntValue, HallDisplayTags: HallDisplays) -> ClassConstructor -type Constructor_Return_Props = { - CurrentFloorAttribute: IntValue, - HallDisplayTags: HallDisplays, - __CurrentFloorConnection: RBXScriptConnection? -} - -export type HallDisplaysConstructor = ClassConstructor - -local HallDisplays = {} :: Impl_Constructor -HallDisplays.__index = HallDisplays - -function HallDisplays.constructor(CurrentFloorAttribute, HallDisplayTags) - return setmetatable({ - CurrentFloorAttribute = CurrentFloorAttribute, - HallDisplayTags = HallDisplayTags - }, HallDisplays) -end - -function HallDisplays:SetHallDisplays(floor) - local FloorString = tostring(floor) - - for i = 1, #self.HallDisplayTags do - (self.HallDisplayTags[i] :: TextLabel).Text = FloorString - end -end - -function HallDisplays:BindHallDisplays() - self:UnBindHallDisplays() - self.__CurrentFloorConnection = self.CurrentFloorAttribute:GetPropertyChangedSignal("Value"):Connect(function() - self:SetHallDisplays(self.CurrentFloorAttribute.Value) - end) -end - -function HallDisplays:UnBindHallDisplays() - if self.__CurrentFloorConnection and self.__CurrentFloorConnection.Connected then - self.__CurrentFloorConnection:Disconnect() - end -end - -return HallDisplays \ No newline at end of file diff --git a/src/server/main/Elevators/Leveling.luau b/src/server/main/Elevators/Leveling.luau index 8019106..02d76e7 100644 --- a/src/server/main/Elevators/Leveling.luau +++ b/src/server/main/Elevators/Leveling.luau @@ -16,11 +16,8 @@ local Otis1960Leveling: {number} = { } local HaughtonLeveling: {number} = { - [1] = 0, - [2] = 0, - [3] = 0, - [4] = 0, - [5] = 0, + [1] = 1.163, + [2] = 19.163, } return { diff --git a/src/server/main/Elevators/TractionRopes.luau b/src/server/main/Elevators/TractionRopes.luau index 3712c63..e7ed7b2 100644 --- a/src/server/main/Elevators/TractionRopes.luau +++ b/src/server/main/Elevators/TractionRopes.luau @@ -14,7 +14,7 @@ type Impl_Constructor = { Stopped: (self: ClassConstructor) -> (), } -type Constructor_Fun = (RopeTags: RopeTags, ElevatorBox: UnionOperation, Leveling: Leveling) -> ClassConstructor +type Constructor_Fun = (RopeTags: RopeTags, ElevatorBox: BasePart, Leveling: Leveling) -> ClassConstructor type Constructor_Return_Props = { Ropes: RopeTags, Leveling: Leveling, @@ -50,4 +50,4 @@ function TractionRopes:Stopped() end -return TractionRopes \ No newline at end of file +return TractionRopes diff --git a/src/server/main/init.server.luau b/src/server/main/init.server.luau index a7c9918..0e26ab6 100644 --- a/src/server/main/init.server.luau +++ b/src/server/main/init.server.luau @@ -16,11 +16,14 @@ local Workspace_Stuff = require(Load:WaitForChild("Workspace")) local StarterPlayer_Stuff = require(Load:WaitForChild("StarterPlayer")) local Elevators = script:WaitForChild("Elevators") +local Elevator = Elevators:WaitForChild("Elevator") local Maps = script:WaitForChild("Map") local Interactions = Maps:WaitForChild("Interactions") local LightSwitches = require(Interactions:WaitForChild("LightSwitches")) -local Otis1960 = require(Elevators:WaitForChild("Otis1960")) + +--local Otis1960 = require(Elevators:WaitForChild("Elevator"):WaitForChild("Otis1960")) +local Haughton = require(Elevator:WaitForChild("Haughton")) local Enums = require(Storage:WaitForChild("Enums")) @@ -50,4 +53,5 @@ print("[DEBUG] Lanterns=", Lanterns) local LandingDoors = TagsConstructor:__ElevatorDoors() print("[DEBUG] Elevator Landing Doors=", LandingDoors) -Otis1960(TagsConstructor, Buttons[Enums.Elevator.Otis1960], Lanterns[Enums.Elevator.Otis1960], LandingDoors[Enums.Elevator.Otis1960]) +-- Otis1960(TagsConstructor, Buttons[Enums.Elevator.Otis1960], Lanterns[Enums.Elevator.Otis1960], LandingDoors[Enums.Elevator.Otis1960]) +Haughton(TagsConstructor, Buttons[Enums.Elevator.Haughton], Lanterns[Enums.Elevator.Haughton], LandingDoors[Enums.Elevator.Haughton]) diff --git a/src/shared/Output.luau b/src/shared/Output.luau index 6b8f4cb..28612ef 100644 --- a/src/shared/Output.luau +++ b/src/shared/Output.luau @@ -23,16 +23,19 @@ end local function warnStudio(...: T...) if RunService:IsStudio() then warn(...) + warn(debug.traceback()) end end local function warnServer(...: T...) if RunService:IsServer() then warn(...) + warn(debug.traceback()) end end local function warnClient(...: T...) if RunService:IsClient() then warn(...) + warn(debug.traceback()) end end diff --git a/src/shared/Property.luau b/src/shared/Property.luau deleted file mode 100644 index 7b89593..0000000 --- a/src/shared/Property.luau +++ /dev/null @@ -1,11 +0,0 @@ ---!optimize 2 ---!native ---!strict - -local function MakeEvent() - -end - -return { - MakeEvent = MakeEvent -} \ No newline at end of file