Skip to content

Commit 1b8f62c

Browse files
authored
schedule filter
Added event filters for schedules, now they should work properly.
1 parent 61e38d8 commit 1b8f62c

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

Basalt/main.lua

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ return function(...)
6868
local co = coroutine.create(f)
6969
local ok, result = coroutine.resume(co, ...)
7070
if(ok)then
71-
table.insert(schedules, co)
71+
table.insert(schedules, {co, result})
7272
else
7373
basaltError(result)
7474
end
@@ -154,15 +154,26 @@ local bInstance = {
154154
end
155155
}
156156

157-
local function handleSchedules(event, p1, p2, p3, p4)
157+
local function handleSchedules(event, ...)
158158
if(#schedules>0)then
159159
local finished = {}
160160
for n=1,#schedules do
161161
if(schedules[n]~=nil)then
162-
if (coroutine.status(schedules[n]) == "suspended")then
163-
local ok, result = coroutine.resume(schedules[n], event, p1, p2, p3, p4)
164-
if not(ok)then
165-
basaltError(result)
162+
if (coroutine.status(schedules[n][1]) == "suspended")then
163+
if(schedules[n][2]~=nil)then
164+
if(schedules[n][2]==event)then
165+
local ok, result = coroutine.resume(schedules[n][1], event, ...)
166+
schedules[n][2] = result
167+
if not(ok)then
168+
basaltError(result)
169+
end
170+
end
171+
else
172+
local ok, result = coroutine.resume(schedules[n][1], event, ...)
173+
schedules[n][2] = result
174+
if not(ok)then
175+
basaltError(result)
176+
end
166177
end
167178
else
168179
table.insert(finished, n)
@@ -240,6 +251,7 @@ local function basaltUpdateEvent(event, ...)
240251
local mouseEvent = mouseEvents[event]
241252
if(mouseEvent~=nil)then
242253
mouseEvent(mainFrame, ...)
254+
handleSchedules(event, ...)
243255
drawFrames()
244256
return
245257
end
@@ -255,6 +267,7 @@ local function basaltUpdateEvent(event, ...)
255267
v[1]:mouseHandler(1, a[2], a[3], true, a[1])
256268
end
257269
end
270+
handleSchedules(event, ...)
258271
drawFrames()
259272
return
260273
end
@@ -273,6 +286,7 @@ local function basaltUpdateEvent(event, ...)
273286
activeKey[a[1]] = false
274287
end
275288
keyEvent(activeFrame, ...)
289+
handleSchedules(event, ...)
276290
drawFrames()
277291
return
278292
end

0 commit comments

Comments
 (0)