something
This commit is contained in:
parent
5d707925c6
commit
445bc8c7dc
@ -67,7 +67,7 @@ local type,pcall = type,pcall
|
|||||||
setmetatable(element,{
|
setmetatable(element,{
|
||||||
__call = function(cls, ...)
|
__call = function(cls, ...)
|
||||||
local self
|
local self
|
||||||
local func, loader = ...
|
local func, loader, w, h, param = ...
|
||||||
if type(func)=='function' then
|
if type(func)=='function' then
|
||||||
self = setmetatable({}, element)
|
self = setmetatable({}, element)
|
||||||
self.parentFunc = func
|
self.parentFunc = func
|
||||||
@ -80,7 +80,7 @@ setmetatable(element,{
|
|||||||
loader(f)
|
loader(f)
|
||||||
end
|
end
|
||||||
|
|
||||||
self:new()
|
self:new(w, h, param)
|
||||||
|
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
@ -91,13 +91,13 @@ function element:renderer() print('no renderer') end
|
|||||||
|
|
||||||
--Control functions
|
--Control functions
|
||||||
--The new function that should be used for element creation
|
--The new function that should be used for element creation
|
||||||
function element:new()
|
function element:new(w, h, param)
|
||||||
local dimensions
|
local dimensions
|
||||||
--save the parameters
|
--save the parameters
|
||||||
self.parameters = {}
|
self.parameters = {}
|
||||||
|
|
||||||
--The element canvas
|
--The element canvas
|
||||||
--self.canvas = nil
|
self.baseParams = param
|
||||||
|
|
||||||
--Internal settings
|
--Internal settings
|
||||||
self.settings = {
|
self.settings = {
|
||||||
@ -113,8 +113,8 @@ function element:new()
|
|||||||
self.baseView = {
|
self.baseView = {
|
||||||
x = 0,
|
x = 0,
|
||||||
y = 0,
|
y = 0,
|
||||||
w = 10,
|
w = w or 10,
|
||||||
h = 10,
|
h = h or 10,
|
||||||
}
|
}
|
||||||
|
|
||||||
self.view = setmetatable({},{
|
self.view = setmetatable({},{
|
||||||
@ -167,12 +167,14 @@ end
|
|||||||
|
|
||||||
function element:reLoader(newFunc)
|
function element:reLoader(newFunc)
|
||||||
self.inputContext:set()
|
self.inputContext:set()
|
||||||
|
self.context:set()
|
||||||
self.inputContext:destroy()
|
self.inputContext:destroy()
|
||||||
|
|
||||||
self.parentFunc = newFunc
|
self.parentFunc = newFunc
|
||||||
self.renderer = self.parentFunc(self.parameters,self.state,self.view)
|
self.renderer = self.parentFunc(self.parameters,self.state,self.view)
|
||||||
self.context:bubbleUpdate()
|
self.context:bubbleUpdate()
|
||||||
|
|
||||||
|
self.context:unset()
|
||||||
self.inputContext:unset()
|
self.inputContext:unset()
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -210,9 +212,11 @@ function element:setup()
|
|||||||
self.canvas = newCanvas(self.view.w*1.25, self.view.h*1.25)
|
self.canvas = newCanvas(self.view.w*1.25, self.view.h*1.25)
|
||||||
self.quad = newQuad(0, 0, self.view.w, self.view.h, self.view.w*1.25, self.view.h*1.25)
|
self.quad = newQuad(0, 0, self.view.w, self.view.h, self.view.w*1.25, self.view.h*1.25)
|
||||||
|
|
||||||
|
self.context:set()
|
||||||
self.inputContext:set()
|
self.inputContext:set()
|
||||||
self.renderer = self.parentFunc(self.parameters,self.state,self.view)
|
self.renderer = self.parentFunc(self.parameters,self.state,self.view)
|
||||||
self.inputContext:unset()
|
self.inputContext:unset()
|
||||||
|
self.context:unset()
|
||||||
|
|
||||||
self.settings.isSetup = true
|
self.settings.isSetup = true
|
||||||
end
|
end
|
||||||
@ -285,32 +289,12 @@ end
|
|||||||
local insert = table.insert
|
local insert = table.insert
|
||||||
--External functions
|
--External functions
|
||||||
--Acts as the entrypoint for beginning rendering
|
--Acts as the entrypoint for beginning rendering
|
||||||
---@param params any
|
|
||||||
---@param x number
|
---@param x number
|
||||||
---@param y number
|
---@param y number
|
||||||
---@param w number
|
function element:draw(x, y)
|
||||||
---@param h number
|
|
||||||
function element:draw(params, x, y, w, h)
|
|
||||||
if not self.view.lock then
|
if not self.view.lock then
|
||||||
--self.view.x = x or self.view.x
|
|
||||||
--self.view.y = y or self.view.y
|
|
||||||
--self.view.w = w or self.view.w
|
|
||||||
--self.view.h = h or self.view.h
|
|
||||||
if x then self.view.x = x end
|
if x then self.view.x = x end
|
||||||
if y then self.view.y = y end
|
if y then self.view.y = y end
|
||||||
if w then self.view.w = w end
|
|
||||||
if h then self.view.h = h end
|
|
||||||
end
|
|
||||||
|
|
||||||
if params then
|
|
||||||
if type(params)=='table' and self.baseParams then
|
|
||||||
helium.utils.tableMerge(params, self.parameters)
|
|
||||||
elseif self.baseParams==nil then
|
|
||||||
self.baseParams = params
|
|
||||||
else
|
|
||||||
self.parameters = params
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if not self.settings.isSetup then
|
if not self.settings.isSetup then
|
||||||
|
|||||||
@ -57,11 +57,11 @@ debugLoader.loader = function(path,returnLevel)
|
|||||||
setfuncs[#setfuncs+1] = setFunc
|
setfuncs[#setfuncs+1] = setFunc
|
||||||
end
|
end
|
||||||
|
|
||||||
local factory = function()
|
local factory = function(param,w,h)
|
||||||
return helium.element(ret, reloader)
|
return helium.element(ret, reloader, w, h, param)
|
||||||
end
|
end
|
||||||
|
|
||||||
elements[path] = { fileContents, func, ret, path, lastLoaded, factory, setfuncs = setfuncs }
|
elements[path] = {fileContents, func, ret, path, lastLoaded, factory, setfuncs = setfuncs}
|
||||||
return elements[path][level]
|
return elements[path][level]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user