Created lane feature that should be backwards compatible with non-lane features

This commit is contained in:
2026-08-25 18:40:07 +02:00
parent b9068a7ac8
commit 27548d69bb
13 changed files with 1055 additions and 254 deletions
+8 -13
View File
@@ -29,7 +29,7 @@ do
end
---@class OnStageChangedListener
---@field OnStageNumberChanged fun(self:OnStageChangedListener, number:integer)
---@field OnStageNumberChanged fun(self:OnStageChangedListener, number:integer, laneIdentifier:string?)
do -- STAGE NUMBER CHANGED
local OnStageNumberChangedListeners = {}
@@ -37,17 +37,11 @@ do
---Add a stage zone number changed listener
---@param listener OnStageChangedListener object with function OnStageNumberChanged(self, number)
SpearheadEvents.AddStageNumberChangedListener = function(listener)
table.insert(OnStageNumberChangedListeners, listener)
end
---Add a stage zone number changed listener
---@param handler function function(number)
SpearheadEvents.AddStageNumberChangedHandler = function(handler)
if type(handler) ~= "function" then
warn("Event handler not of type function, did you mean to use listener?")
if type(listener) ~= "table" or type(listener.OnStageNumberChanged) ~= "function" then
warn("Event handler not of type table/object with function OnStageNumberChanged(self, number)")
return
end
table.insert(OnStageNumberChangedHandlers, handler)
table.insert(OnStageNumberChangedListeners, listener)
end
---@class OnStageNumberChangeCompleteListener
@@ -64,14 +58,15 @@ do
end
---@param newStageNumber number
SpearheadEvents.PublishStageNumberChanged = function(newStageNumber)
---@param laneIdentifier string?
SpearheadEvents.PublishStageNumberChanged = function(newStageNumber, laneIdentifier)
pcall(function ()
Persistence.SetActiveStage(newStageNumber)
end)
for _, callable in pairs(OnStageNumberChangedListeners) do
local succ, err = pcall(function()
callable:OnStageNumberChanged(newStageNumber)
callable:OnStageNumberChanged(newStageNumber, laneIdentifier)
end)
if err then
logError(err)
@@ -79,7 +74,7 @@ do
end
for _, callable in pairs(OnStageNumberChangedHandlers) do
local succ, err = pcall(callable, newStageNumber)
local succ, err = pcall(callable, newStageNumber, laneIdentifier)
if err then
logError(err)
end