--!optimize 2 --!native --!strict local Enums = {} export type EnumValue = EnumButton | EnumButtonTree | EnumElevator | EnumInteractables | EnumSpecialButton export type EnumButton = typeof(Enums.Button) export type EnumButtonTree = typeof(Enums.ButtonTree) export type EnumElevator = typeof(Enums.Elevator) export type EnumInteractables = typeof(Enums.InteractType) export type EnumSpecialButton = typeof(Enums.SpecialButton) export type ButtonValues = typeof(Enums.Button.Car) | typeof(Enums.Button.Landing) | typeof(Enums.Button.Special) | typeof(Enums.Button.Relay) export type ButtonTreeValues = typeof(Enums.ButtonTree.Car) | typeof(Enums.ButtonTree.Landing) | typeof(Enums.ButtonTree.Special) | typeof(Enums.ButtonTree.Relays) | typeof(Enums.ButtonTree.Unknown) export type SpecialButtonValues = typeof(Enums.SpecialButton.Stop) export type InteractablesValues = typeof(Enums.InteractType.LightSwitch) | typeof(Enums.InteractType.Light) | typeof(Enums.InteractType.LightSource) export type ElevatorValues = typeof(Enums.Elevator.Otis1960) Enums.Button = { Car = "CarButton" :: "CarButton", Landing = "LandingButton" :: "LandingButton", Special = "SpecialButton" :: "SpecialButton", Relay = "RelayButton" :: "RelayButton" } Enums.ButtonTree = { Car = "Car" :: "Car", Landing = "Landing" :: "Landing", Special = "Special" :: "Special", Relays = "Relays" :: "Relays", Unknown = "Unknown" :: "Unknown" } Enums.SpecialButton = { Stop = "Stop" :: "Stop" } Enums.Elevator = { Otis1960 = "Otis1960" :: "Otis1960" } Enums.InteractType = { LightSwitch = "LightSwitch" :: "LightSwitch", Light = "Light" :: "Light", LightSource = "LightSource" :: "LightSource" } return Enums