Add Observe

This commit is contained in:
Qwreey 2023-02-24 02:09:47 +09:00
parent 3a51a6f751
commit 9bfa67e11f
3 changed files with 25 additions and 26 deletions

Binary file not shown.

Binary file not shown.

View file

@ -334,36 +334,35 @@ function module.init(shared)
function store:__newindex(key,value)
-- if got register, just copy data to self and connect
if PcallGetProperty(value,"__type") == "quad_register" then
-- warn "[Quad] adding register value on store is only allowed when init store. set value request was ignored"
error "[Quad] adding register value on store is only allowed when init store. set value request was ignored"
-- local selfValues = self.__self
-- local selfTweens = self.__tweens
local selfValues = self.__self
local selfTweens = self.__tweens
-- -- fetch data from origin
-- do
-- local tstore = value.store
-- for tkey in gmatch(value.key,"^[,]") do
-- if not selfValues[tkey] then
-- selfValues[tkey] = tstore[tkey]
-- end
-- end
-- end
-- fetch data from origin
do
local tstore = value.store
for tkey in gmatch(value.key,"^[,]") do
if not selfValues[tkey] then
selfValues[tkey] = tstore[tkey]
end
end
end
-- -- calc value
-- do
-- local setValue,tween = value:CalcWithDefault(self)
-- selfValues[key] = setValue
-- selfTweens[key] = tween
-- end
-- calc value
do
local setValue,tween = value:CalcWithDefault(self)
selfValues[key] = setValue
selfTweens[key] = tween
end
-- -- make event connection
-- value:Register(function (_,newValue,eventKey)
-- -- !HOLD IT SELF TO PREVENT THIS REGISTER BEGIN REMOVED FROM MEMORY
-- local setValue = value:CalcWithNewValue(self,newValue,eventKey)
-- self[key] = setValue
-- end)
-- make event connection
value:Register(function (_,newValue,eventKey)
-- !HOLD IT SELF TO PREVENT THIS REGISTER BEGIN REMOVED FROM MEMORY
local setValue = value:CalcWithNewValue(self,newValue,eventKey)
self[key] = setValue
end)
return
-- return
end
self.__self[key] = value
local event = self.__evt[key]