mirror of
https://github.com/unixtensor/Roblox-Elevator-Game.git
synced 2025-12-14 06:41:55 +00:00
56 lines
2.5 KiB
Lua
56 lines
2.5 KiB
Lua
--!optimize 2
|
|
--!strict
|
|
|
|
local ButtonPromptsDistance = Vector3.new(-.05)
|
|
|
|
local ParentDir = script.Parent
|
|
local ElevatorsDir = ParentDir.Parent
|
|
local MainDir = ElevatorsDir.Parent
|
|
|
|
local ElevatorSystem = ElevatorsDir:WaitForChild("System")
|
|
|
|
local InitElevator = require(ElevatorSystem)
|
|
local ArrowLantern = require(ElevatorSystem:WaitForChild("Lanterns"):WaitForChild("Arrows"))
|
|
local Buttons = require(ElevatorSystem:WaitForChild("Buttons"))
|
|
local TractionRopes = require(ElevatorSystem:WaitForChild("TractionRopes"))
|
|
local Doors = require(ElevatorSystem:WaitForChild("Doors"))
|
|
local Events = require(script:WaitForChild("Events"))
|
|
local Config = require(script:WaitForChild("Config"))
|
|
local Leveling = require(script:WaitForChild("Leveling"))
|
|
local MovingObjects = require(script:WaitForChild("MovingObjects"))
|
|
local TagsModule = require(MainDir:WaitForChild("Map"):WaitForChild("Load"):WaitForChild("Tags"))
|
|
|
|
return function(TagsConstructor: TagsModule.TagsConstructor, ButtonTags: TagsModule.ElevatorButtons, LanternTags: TagsModule.Lanterns, LandingDoorTags: TagsModule.LandingTags)
|
|
local ElevatorModel = TagsConstructor:Request("Elevator_Haughton") :: Model
|
|
local CabRopesObject = TagsConstructor:Request("Haughton_Rope_Cab") :: BasePart
|
|
local PulleyRopesObject = TagsConstructor:Request("Haughton_Rope_Pulley") :: BasePart
|
|
local ElevatorBoxModel = ElevatorModel:WaitForChild("Mover") :: BasePart
|
|
|
|
local Elevator = InitElevator.constructor(ElevatorBoxModel, Config.Elevator, Leveling)
|
|
local MovingObjectsConstructor = MovingObjects.constructor(TagsConstructor)
|
|
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:Init()
|
|
ArrowLanternConstructor:Toggle(true, true)
|
|
|
|
if DoorsConstructor:OpenAtFloor(Elevator.Attributes.CurrentFloor.Value) then
|
|
DoorsConstructor:OpenCabAsync()
|
|
end
|
|
end
|