mirror of
https://github.com/unixtensor/Roblox-Elevator-Game.git
synced 2025-12-14 14:51:55 +00:00
a
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
--!native
|
--!native
|
||||||
--!strict
|
--!strict
|
||||||
|
|
||||||
type LightingProps = { [string]: Color3 | number | boolean | string }
|
type LightingProps = { [string]: Color3 | number | boolean | string | Enum.Technology }
|
||||||
|
|
||||||
export type Effects = {
|
export type Effects = {
|
||||||
ColorCorrection: ColorCorrectionEffect
|
ColorCorrection: ColorCorrectionEffect
|
||||||
@@ -28,19 +28,10 @@ local Lighting_PropsTree: LightingProps = {
|
|||||||
["FogColor"] = Color3.new(0,0,0),
|
["FogColor"] = Color3.new(0,0,0),
|
||||||
["FogEnd"] = 10_0000,
|
["FogEnd"] = 10_0000,
|
||||||
["FogStart"] = 10_0000,
|
["FogStart"] = 10_0000,
|
||||||
|
["Technology"] = Enum.Technology.Future
|
||||||
}
|
}
|
||||||
|
|
||||||
local function Skybox(): (Sky, Atmosphere, BloomEffect)
|
local function Skybox(): (Atmosphere, BloomEffect)
|
||||||
local SkyBox = Instance.new("Sky") :: Sky
|
|
||||||
SkyBox.SkyboxBk = "rbxassetid://48020371"
|
|
||||||
SkyBox.SkyboxDn = "rbxassetid://48020144"
|
|
||||||
SkyBox.SkyboxFt = "rbxassetid://48020234"
|
|
||||||
SkyBox.SkyboxLf = "rbxassetid://48020211"
|
|
||||||
SkyBox.SkyboxRt = "rbxassetid://48020254"
|
|
||||||
SkyBox.SkyboxUp = "rbxassetid://48020383"
|
|
||||||
SkyBox.MoonTextureId = ""
|
|
||||||
SkyBox.StarCount = 500
|
|
||||||
|
|
||||||
local Atmosphere = Instance.new("Atmosphere") :: Atmosphere
|
local Atmosphere = Instance.new("Atmosphere") :: Atmosphere
|
||||||
Atmosphere.Density = .429
|
Atmosphere.Density = .429
|
||||||
Atmosphere.Offset = 0
|
Atmosphere.Offset = 0
|
||||||
@@ -54,7 +45,7 @@ local function Skybox(): (Sky, Atmosphere, BloomEffect)
|
|||||||
Bloom.Size = 35
|
Bloom.Size = 35
|
||||||
Bloom.Threshold = 1.5
|
Bloom.Threshold = 1.5
|
||||||
|
|
||||||
return SkyBox, Atmosphere, Bloom
|
return Atmosphere, Bloom
|
||||||
end
|
end
|
||||||
|
|
||||||
return function(): Effects
|
return function(): Effects
|
||||||
@@ -73,8 +64,7 @@ return function(): Effects
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local Sky, Atmosphere, Bloom = Skybox()
|
local Atmosphere, Bloom = Skybox()
|
||||||
Sky.Parent = Lighting
|
|
||||||
Atmosphere.Parent = Lighting
|
Atmosphere.Parent = Lighting
|
||||||
Bloom.Parent = Lighting
|
Bloom.Parent = Lighting
|
||||||
|
|
||||||
|
|||||||
@@ -46,10 +46,11 @@ function Lights.constructor(LightSwitches)
|
|||||||
}, Lights)
|
}, Lights)
|
||||||
end
|
end
|
||||||
|
|
||||||
local EnumMaterials = Enum.Material:GetEnumItems()
|
local EnumMaterials: {Enum.Material} = Enum.Material:GetEnumItems()
|
||||||
|
local EnumMaterialsNames: {string} = {}
|
||||||
--Convert it all to string values, couldnt figure out any hacks to make it a true one liner
|
--Convert it all to string values, couldnt figure out any hacks to make it a true one liner
|
||||||
for k: number, v: Enum.Material in EnumMaterials do
|
for k: number, v: Enum.Material in EnumMaterials do
|
||||||
EnumMaterials[k] = v.Name
|
EnumMaterialsNames[k] = v.Name
|
||||||
end
|
end
|
||||||
|
|
||||||
local function ToggleSwitchLight(EnabledState: boolean, LightProperties: LightPropertiesSafe)
|
local function ToggleSwitchLight(EnabledState: boolean, LightProperties: LightPropertiesSafe)
|
||||||
@@ -61,15 +62,11 @@ local function ToggleSwitchLight(EnabledState: boolean, LightProperties: LightPr
|
|||||||
local LightObject = LightProperties.Lights[n] :: BasePart
|
local LightObject = LightProperties.Lights[n] :: BasePart
|
||||||
|
|
||||||
if EnabledState then
|
if EnabledState then
|
||||||
local ActivatedMaterial = table.find(EnumMaterials, LightProperties.ActivatedMaterial) or 1 --Only doing this because it is runtime safe
|
|
||||||
|
|
||||||
LightObject.Color = LightProperties.ColorActivated
|
LightObject.Color = LightProperties.ColorActivated
|
||||||
LightObject.Material = EnumMaterials[ActivatedMaterial]
|
LightObject.Material = Enum.Material[LightProperties.ActivatedMaterial]
|
||||||
else
|
else
|
||||||
local DeactivatedMaterial = table.find(EnumMaterials, LightProperties.DeactivatedMaterial) or 1 --Only doing this because it is runtime safe
|
|
||||||
|
|
||||||
LightObject.Color = LightProperties.ColorDeactivated
|
LightObject.Color = LightProperties.ColorDeactivated
|
||||||
LightObject.Material = EnumMaterials[DeactivatedMaterial]
|
LightObject.Material = Enum.Material[LightProperties.DeactivatedMaterial]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -130,7 +127,7 @@ function Lights:Init()
|
|||||||
LightProperties.Lights and
|
LightProperties.Lights and
|
||||||
LightProperties.LightSources and
|
LightProperties.LightSources and
|
||||||
LightProperties.ActivatedMaterial and
|
LightProperties.ActivatedMaterial and
|
||||||
LightProperties.DeactivatedMaterial then
|
LightProperties.DeactivatedMaterial then
|
||||||
if LightProperties.Enabled then
|
if LightProperties.Enabled then
|
||||||
EnabledState = true
|
EnabledState = true
|
||||||
LightProperties.Prompt.ActionText = "Toggle Off"
|
LightProperties.Prompt.ActionText = "Toggle Off"
|
||||||
@@ -138,6 +135,21 @@ function Lights:Init()
|
|||||||
LightProperties.Prompt.ActionText = "Toggle On"
|
LightProperties.Prompt.ActionText = "Toggle On"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local ActivatedMaterial = table.find(EnumMaterialsNames, LightProperties.ActivatedMaterial) :: number
|
||||||
|
local DeactivatedMaterial = table.find(EnumMaterialsNames, LightProperties.DeactivatedMaterial) :: number
|
||||||
|
|
||||||
|
if not ActivatedMaterial then
|
||||||
|
ActivatedMaterial = 1
|
||||||
|
warn()
|
||||||
|
end
|
||||||
|
if not DeactivatedMaterial then
|
||||||
|
DeactivatedMaterial = 1
|
||||||
|
warn()
|
||||||
|
end
|
||||||
|
|
||||||
|
LightProperties.ActivatedMaterial = EnumMaterialsNames[ActivatedMaterial]
|
||||||
|
LightProperties.DeactivatedMaterial = EnumMaterialsNames[DeactivatedMaterial]
|
||||||
|
|
||||||
ToggleSwitch(EnabledState, LightProperties :: LightPropertiesSafe, false)
|
ToggleSwitch(EnabledState, LightProperties :: LightPropertiesSafe, false)
|
||||||
|
|
||||||
Prompt:AddHookTriggered(function(_Player: Player)
|
Prompt:AddHookTriggered(function(_Player: Player)
|
||||||
|
|||||||
@@ -3,7 +3,8 @@
|
|||||||
--!strict
|
--!strict
|
||||||
|
|
||||||
type HumanoidRootPart = BasePart
|
type HumanoidRootPart = BasePart
|
||||||
type PromptCallback = (Player: Player, Root: HumanoidRootPart) -> ()
|
type Character = Model
|
||||||
|
type PromptCallback = (Player: Player, HumanoidRootPart: HumanoidRootPart, Character: Character) -> ()
|
||||||
type PromptSignal = RBXScriptSignal<Player>
|
type PromptSignal = RBXScriptSignal<Player>
|
||||||
type PromptSignalName = "Triggered" | "TriggerEnded"
|
type PromptSignalName = "Triggered" | "TriggerEnded"
|
||||||
|
|
||||||
@@ -52,7 +53,7 @@ local function DistanceCheck(self: ClassConstructor, Player: Player)
|
|||||||
|
|
||||||
if Root then
|
if Root then
|
||||||
if (Root.Position-(self.Instance :: BasePart).Position).Magnitude<=self.Prompt.MaxActivationDistance+1 then
|
if (Root.Position-(self.Instance :: BasePart).Position).Magnitude<=self.Prompt.MaxActivationDistance+1 then
|
||||||
(self.__TriggeredCallback :: PromptCallback)(Player, Root)
|
(self.__TriggeredCallback :: PromptCallback)(Player, Root, PlayerCharacter :: Character)
|
||||||
else
|
else
|
||||||
warn(`{Player.Name}, {Player.UserId} activated a prompt without being in range of MaxActivationDistance.`)
|
warn(`{Player.Name}, {Player.UserId} activated a prompt without being in range of MaxActivationDistance.`)
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user