Compare commits
2 Commits
7020620496
...
99f8ab7f8b
Author | SHA1 | Date |
---|---|---|
Jill | 99f8ab7f8b | |
Jill | 9681b0538e |
44
main.xml
44
main.xml
|
@ -248,6 +248,7 @@
|
|||
|
||||
GAMESTATE:ApplyModifiers('clearall')
|
||||
|
||||
local drawfunctionArguments = {}
|
||||
local specialActorFrames = {} -- ones defined specifically; here for drawfunction jank
|
||||
|
||||
function setDrawFunction(frame, func)
|
||||
|
@ -261,19 +262,29 @@
|
|||
a:Draw()
|
||||
end
|
||||
end
|
||||
func()
|
||||
local args = drawfunctionArguments[frame]
|
||||
if args then
|
||||
func(unpack(args))
|
||||
else
|
||||
func()
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
function setShader(actor, shader)
|
||||
if not shader.__raw then error('uranium: cannot set shader during module loadtime! put this in uranium.init or actor:addcommand(\'Init\', ...)', 2) end
|
||||
if not actor.__raw then error('uranium: cannot set shader while the actor hasn\'t been loaded!', 2) end
|
||||
actor:SetShader(shader.__raw)
|
||||
if not shader.__raw then
|
||||
function uranium.init() setShader(actor, shader) end
|
||||
else
|
||||
actor:SetShader(shader.__raw)
|
||||
end
|
||||
end
|
||||
|
||||
function setShaderfuck(shader)
|
||||
if not shader.__raw then error('uranium: cannot set shader during module loadtime! put this in uranium.init or actor:addcommand(\'Init\', ...)', 2) end
|
||||
DISPLAY:ShaderFuck(shader.__raw)
|
||||
if not shader.__raw then
|
||||
function uranium.init() setShaderfuck(shader) end
|
||||
else
|
||||
DISPLAY:ShaderFuck(shader.__raw)
|
||||
end
|
||||
end
|
||||
|
||||
function clearShaderfuck()
|
||||
|
@ -401,6 +412,13 @@
|
|||
end
|
||||
end
|
||||
|
||||
local actorMethodOverrides = {
|
||||
Draw = function(self, ...)
|
||||
drawfunctionArguments[self] = arg
|
||||
self.__raw:Draw()
|
||||
end
|
||||
}
|
||||
|
||||
local function createProxyActor(name)
|
||||
local queue = {}
|
||||
local initCommands = {}
|
||||
|
@ -413,11 +431,15 @@
|
|||
return lockedActor
|
||||
end
|
||||
if lockedActor then
|
||||
local val = lockedActor[key]
|
||||
if type(val) == 'function' then
|
||||
return patchFunction(val, lockedActor)
|
||||
if actorMethodOverrides[key] then
|
||||
return actorMethodOverrides[key]
|
||||
else
|
||||
local val = lockedActor[key]
|
||||
if type(val) == 'function' then
|
||||
return patchFunction(val, lockedActor)
|
||||
end
|
||||
return val
|
||||
end
|
||||
return val
|
||||
end
|
||||
if key == '__queue' then
|
||||
return queueRepresentation
|
||||
|
@ -727,6 +749,8 @@
|
|||
uranium:call('ready')
|
||||
end
|
||||
|
||||
drawfunctionArguments = {}
|
||||
|
||||
for _, q in ipairs(globalQueue) do
|
||||
local actor = q[1]
|
||||
local v = q[2]
|
||||
|
|
Loading…
Reference in New Issue