36 lines
1009 B
Lua
36 lines
1009 B
Lua
--!native
|
|
--!optimize 2
|
|
|
|
local ReplicatedStorage = game:GetService("ReplicatedStorage")
|
|
|
|
local PlacementState = {}
|
|
|
|
local selectedId: string = ""
|
|
local selectedName: string = ""
|
|
|
|
local changed = Instance.new("BindableEvent")
|
|
PlacementState.Changed = changed.Event
|
|
|
|
local valueObject = ReplicatedStorage:FindFirstChild("HotbarSelectedBlock")
|
|
if not valueObject then
|
|
valueObject = Instance.new("StringValue")
|
|
valueObject.Name = "HotbarSelectedBlock"
|
|
valueObject.Parent = ReplicatedStorage
|
|
end
|
|
PlacementState.ValueObject = valueObject
|
|
|
|
function PlacementState:SetSelected(id: string?, name: string?)
|
|
selectedId = id or ""
|
|
selectedName = name or selectedId
|
|
valueObject.Value = selectedName or ""
|
|
local Util = require(ReplicatedStorage:WaitForChild("Shared"):WaitForChild("Util"))
|
|
Util.StudioLog("[PLACE][CLIENT][SELECT]", "id", selectedId, "name", selectedName)
|
|
changed:Fire(selectedId, selectedName)
|
|
end
|
|
|
|
function PlacementState:GetSelected()
|
|
return selectedId, selectedName
|
|
end
|
|
|
|
return PlacementState
|