diff --git a/src/server/main/Elevators/InitElevator/init.luau b/src/server/main/Elevators/InitElevator/init.luau index 19551f0..da0f4a7 100644 --- a/src/server/main/Elevators/InitElevator/init.luau +++ b/src/server/main/Elevators/InitElevator/init.luau @@ -189,11 +189,11 @@ function Elevator.constructor(ElevatorBoxModel, ElevatorConfigurationTable, Floo }, Elevator) RelayAlgorithmConstructor.Events.Sorted:Connect(function(AddedFloorDirection: Enums.ElevatorCallDirectionValues, FloorDirectionQueue: RelayAlgorithm.FloorDirectionQueue) - if AddedFloorDirection == ElevatorClass.Elevator.TravelingDirection then + if AddedFloorDirection == (ElevatorClass.Attributes.TravelingUpwards.Value and Enums.ElevatorCallDirection.Up or Enums.ElevatorCallDirection.Down) then local NextFloorAsTraveling = FloorDirectionQueue[1] if NextFloorAsTraveling then local Level = FloorLevelingPositions[NextFloorAsTraveling] - ElevatorClass:__TravelToFloorAsync(Level, Vector3.new(0, Level, 0), AddedFloorDirection) + ElevatorClass:__TravelToFloorAsync(Level, Vector3.new(0, Level, 0)) end ElevatorClass.eprintStudio(`Floors sorted in proceeding direction. direction={AddedFloorDirection}, FloorDirectionQueue={FloorDirectionQueue}`) end @@ -222,8 +222,8 @@ local function CheckFloorQueue(self: ClassConstructor) local DirectionToDirectionQueue = self.Attributes.TravelingUpwards.Value and self.RelayAlgorithm.FloorQueue.Up or self.RelayAlgorithm.FloorQueue.Down local DirectionToOppositeDirectionQueue = self.Attributes.TravelingUpwards.Value and self.RelayAlgorithm.FloorQueue.Down or self.RelayAlgorithm.FloorQueue.Up - if DirectionToOppositeDirectionQueue[1] ~= self.Attributes.CurrentFloor.Value then - self.ewarn("The floor queue first index did not match the elevator's current floor, CurrentFloor=", self.Attributes.CurrentFloor.Value, "FloorQueue[1]=", DirectionToOppositeDirectionQueue[1]) + if DirectionToDirectionQueue[1] ~= self.Attributes.CurrentFloor.Value then + self.ewarn("The floor queue first index did not match the elevator's current floor, CurrentFloor=", self.Attributes.CurrentFloor.Value, "FloorQueue[1]=", DirectionToDirectionQueue[1]) end table.remove(DirectionToDirectionQueue, 1) @@ -291,7 +291,6 @@ local function CabTraveling(self: ClassConstructor, deltaTime: number, LEVEL_VEC if ElevatorPosition.Y>=LEVEL_VEC3_Y_WRAP.Y-self.Elevator.Configuration.ParkedDistance then self.Events.__eventInstances__.Parked:Fire() CheckFloorQueue(self); - (self.__Connections.Moving :: RBXScriptConnection):Disconnect() end end @@ -317,7 +316,6 @@ local function CabTraveling(self: ClassConstructor, deltaTime: number, LEVEL_VEC if ElevatorPosition.Y<=LEVEL_VEC3_Y_WRAP.Y+self.Elevator.Configuration.ParkedDistance then self.Events.__eventInstances__.Parked:Fire() CheckFloorQueue(self); - (self.__Connections.Moving :: RBXScriptConnection):Disconnect() end end @@ -366,6 +364,8 @@ function Elevator:RequestLevelAsync(RequestedLevel, Direction) return false else local DirectionQueue = Direction == Enums.ElevatorCallDirection.Up and self.RelayAlgorithm.FloorQueue.Up or self.RelayAlgorithm.FloorQueue.Down + -- local OppositeQueue = Direction == Enums.ElevatorCallDirection.Up and self.RelayAlgorithm.FloorQueue.Down or self.RelayAlgorithm.FloorQueue.Up + self.RelayAlgorithm:AddFloor(Direction :: Enums.ElevatorCallDirectionValues, RequestedLevel) if #DirectionQueue == 1 then self:__TravelToFloorAsync(RequestedLevel, Level) diff --git a/src/server/main/Elevators/Otis1960/Config.luau b/src/server/main/Elevators/Otis1960/Config.luau index b467669..09b8b40 100644 --- a/src/server/main/Elevators/Otis1960/Config.luau +++ b/src/server/main/Elevators/Otis1960/Config.luau @@ -20,7 +20,7 @@ ElevatorConfiguration.LevelingVelocity = 2 ElevatorConfiguration.Phase3LevelingVelocity = .5 ElevatorConfiguration.Functions = { - ManualTravelStart = true + ManualTravelStart = false } ElevatorConfiguration.Sounds = { diff --git a/src/server/main/Elevators/Otis1960/init.luau b/src/server/main/Elevators/Otis1960/init.luau index 097e985..ffbcb19 100644 --- a/src/server/main/Elevators/Otis1960/init.luau +++ b/src/server/main/Elevators/Otis1960/init.luau @@ -38,14 +38,22 @@ return function(TagsConstructor: TagsModule.TagsConstructor, ButtonTags: TagsMod 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.Down) + Elevator:RequestLevelAsync(2, Enums.ElevatorCallDirection.Up) end) - Elevator:StartTraveling() - Elevator.Events.Parked:Wait() task.spawn(function() - Elevator:RequestLevelAsync(1, Enums.ElevatorCallDirection.Up) + Elevator:RequestLevelAsync(3, Enums.ElevatorCallDirection.Down) end) - Elevator:StartTraveling() + task.spawn(function() + Elevator:RequestLevelAsync(4, Enums.ElevatorCallDirection.Up) + end) + task.spawn(function() + Elevator:RequestLevelAsync(5, Enums.ElevatorCallDirection.Down) + end) + print(Elevator.RelayAlgorithm.FloorQueue.Up) end