diff --git a/src/server/main/Elevators/Otis1960/Leveling.lua b/src/server/main/Elevators/Otis1960/Leveling.lua index c7ba571..9ab3820 100644 --- a/src/server/main/Elevators/Otis1960/Leveling.lua +++ b/src/server/main/Elevators/Otis1960/Leveling.lua @@ -5,13 +5,13 @@ local Leveling: {number} = { [1] = 13.041, [2] = 37.973, - [3] = 0, - [4] = 0, - [5] = 0, - [6] = 0, - [7] = 0, - [8] = 0, - [9] = 0, + [3] = 62.978, + [4] = 87.968, + [5] = 112.952, + [6] = 137.988, + [7] = 163.009, + [8] = 188.007, + [9] = 213.058, [10] = 239.245 } diff --git a/src/server/main/Elevators/Otis1960/PiePlateSelector.lua b/src/server/main/Elevators/Otis1960/PiePlateSelector.lua new file mode 100644 index 0000000..92899d8 --- /dev/null +++ b/src/server/main/Elevators/Otis1960/PiePlateSelector.lua @@ -0,0 +1,32 @@ +local PieplateSelectorModule = {} +PieplateSelectorModule.__index = PieplateSelectorModule + +local RS: RunService = game:GetService("RunService") + +function PieplateSelectorModule.constructor(PieplateSelector: UnionOperation, PiePlatePlates: UnionOperation, ElevatorBox: UnionOperation) + return setmetatable({ + PieplateSelector = PieplateSelector, + PiePlatePlates = PiePlatePlates, + ElevatorBox = ElevatorBox + }, PieplateSelectorModule) +end + +function PieplateSelectorModule:test() + local Delta = 0 + + self.PieplateSelector.CFrame=self.PieplateSelector.CFrame+Vector3.yAxis/20 + + local OriginalAngleDelta = self.PiePlatePlates.CFrame + local OriginalPositionDelta = self.PieplateSelector.CFrame + + self.__SelectorConnection = RS.Heartbeat:Connect(function(_dt) + Delta+=1 + + self.PieplateSelector.CFrame=OriginalPositionDelta+Vector3.new(0, Delta/500, 0) + self.PiePlatePlates.CFrame=OriginalAngleDelta*CFrame.Angles(-math.rad(Delta*6.8), 0, 0) + end) + + return self.__SelectorConnection +end + +return PieplateSelectorModule \ No newline at end of file diff --git a/src/server/main/Elevators/Otis1960/init.lua b/src/server/main/Elevators/Otis1960/init.lua index fe640bc..4fa4390 100644 --- a/src/server/main/Elevators/Otis1960/init.lua +++ b/src/server/main/Elevators/Otis1960/init.lua @@ -9,8 +9,9 @@ local RS: RunService = game:GetService("RunService") local TagsModule = require(Storage:WaitForChild("Tags")) -local Leveling = require(script:WaitForChild("Leveling")) -local Doors = require(script:WaitForChild("Doors")) +local Leveling = require(script:WaitForChild("Leveling")) +local Doors = require(script:WaitForChild("Doors")) +local PieplateModule = require(script:WaitForChild("PiePlateSelector")) local Enums = require(Elevators:WaitForChild("Enums")) local ElevatorMover = require(Elevators:WaitForChild("Mover")) @@ -97,6 +98,11 @@ local function HookButtons(self: ClassConstructor, ButtonsConstructor: ButtonTag self:GoToLevel(DecodedFloor) end end) + + if DecodedFloor == 10 then + task.wait(5) + self:GoToLevel(DecodedFloor) + end elseif ButtonNameType == Enums.ButtonTree.Special then elseif ButtonNameType == Enums.ButtonTree.Landing then @@ -127,6 +133,7 @@ function Otis1960.constructor(Tags) self.ProximityButtons = Tags.ProximityElevatorButton :: {Instance} self.Ropes = Tags["1960_ElevatorPulleyRope"] :: {Instance} self.PiePlateSelector = Tags.Otis1960_PiePlateSelector :: UnionOperation + self.PiePlatePlates = Tags.Otis1960_PiePlatePlates :: UnionOperation self.BoxAttachment, self.BoxAlignPosition, @@ -134,6 +141,7 @@ function Otis1960.constructor(Tags) self.ElevatorDoors = Doors.constructor(self.ElevatorBox_1960, self.ElevatorDoor1, self.ElevatorDoor2, self.ElevatorDoorSensor) self.TractionRopes = TractionRopes.constructor(self.Ropes, self.ElevatorBox_1960, Leveling) + self.PiePlate = PieplateModule.constructor(self.PiePlateSelector, self.PiePlatePlates, self.ElevatorBox_1960) --Buttons local ButtonsConstructor = ButtonTags.constructor(Tags, Enums.Elevator.Otis1960) @@ -150,6 +158,7 @@ end function Otis1960:__MoveFloors(Level) local ElevatorBoxCurrentPos = self.ElevatorBox_1960.Position self.TractionRopes:Moving(Level, 26) + self.PiePlate:test() self.BoxAlignPosition.Position = Vector3.new(ElevatorBoxCurrentPos.X, Level, ElevatorBoxCurrentPos.Z) end diff --git a/src/server/main/Elevators/TractionRopes.lua b/src/server/main/Elevators/TractionRopes.lua index 3f75e45..3ae8083 100644 --- a/src/server/main/Elevators/TractionRopes.lua +++ b/src/server/main/Elevators/TractionRopes.lua @@ -47,7 +47,7 @@ function TractionRopes:Moving(Level, Offset) if self.__RopeConnection then self.__RopeConnection:Disconnect() end - self.__RopeConnection = RS.Heartbeat:Connect(function(_dt) + self.__RopeConnection = RS.Heartbeat:Connect(function(_dt) --Not safe for parallel local Elevator = self.ElevatorBox local ElevatorPosition = Elevator.Position local l = self.BiggestRopeLength-ElevatorPosition.Y+Offset