From 850a64174d7bd13f7e5049c85bbd24528820967d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=84=B8=EC=A0=A4=EA=B7=80=20=EA=B3=A0=EC=96=91=EC=9D=B4?= =?UTF-8?q?=EB=93=A4?= <46598063+qwreey75@users.noreply.github.com> Date: Sun, 19 Dec 2021 01:05:07 +0900 Subject: [PATCH 1/4] adding week mode --- src/store.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/store.lua b/src/store.lua index 6bdecb3..997f7a2 100644 --- a/src/store.lua +++ b/src/store.lua @@ -16,6 +16,7 @@ local function catch(...) end end +local week = {__mode = "vk"}; function module.init(shared) local new = {}; local items = shared.items; @@ -94,7 +95,7 @@ function module.init(shared) self.__self[key] = value; local event = self.__evt[key]; if event then - for _,v in ipairs(event) do + for _,v in pairs(event) do -- NO ipairs here wrap(catch)(v,value,store); end end @@ -128,7 +129,7 @@ function module.init(shared) end function new.new(self) return setmetatable( - {__self = self or {},__evt = {},__reg = {}},store + {__self = self or {},__evt = setmetatable({},week),__reg = setmetatable({},week)},store ); end From 40f06fac9dbc6eca1243c9d45f50483781f278ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=84=B8=EC=A0=A4=EA=B7=80=20=EA=B3=A0=EC=96=91=EC=9D=B4?= =?UTF-8?q?=EB=93=A4?= <46598063+qwreey75@users.noreply.github.com> Date: Sun, 19 Dec 2021 01:16:26 +0900 Subject: [PATCH 2/4] Update class.lua --- src/class.lua | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/class.lua b/src/class.lua index a73ebcc..464c7c4 100644 --- a/src/class.lua +++ b/src/class.lua @@ -91,11 +91,22 @@ function module.init(shared) item[index] = dset; end end - value.register(function (newValue,store) + local tween = value.tween; + + -- adding event function + local function regFn(newValue,store) if with then newValue = with(newValue,item,store); end item[index] = newValue; + end + value.register(regFn); + + -- this is using hacky of roblox instance + -- this is will keep reference from week table until + -- inscance got GCed + item:GetPropertyChangedSignal("ClassName"):Connect(function () + return regFn; end); elseif (valueType == "function" or valueType == "table") and bind(item,index,value,valueType) then -- connect event -- event binding @@ -275,4 +286,4 @@ function module.init(shared) return new; end -return module; \ No newline at end of file +return module; From c8d68613fff6b25711bab0724f1f5b2fa2fbd316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=84=B8=EC=A0=A4=EA=B7=80=20=EA=B3=A0=EC=96=91=EC=9D=B4?= =?UTF-8?q?=EB=93=A4?= <46598063+qwreey75@users.noreply.github.com> Date: Sun, 19 Dec 2021 01:20:52 +0900 Subject: [PATCH 3/4] Update store.lua --- src/store.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/store.lua b/src/store.lua index 997f7a2..a448916 100644 --- a/src/store.lua +++ b/src/store.lua @@ -115,6 +115,9 @@ function module.init(shared) default = function (s,value) return setmetatable({dvalue = value},{__index = s}); end; + tween = function (s,value) + return setmetatable({tvalue = value},{__index = s}); + end; key = key; store = self; t = "reg"; From 750724fc0b775abeb7a54edee06c0eb747e1e230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=84=B8=EC=A0=A4=EA=B7=80=20=EA=B3=A0=EC=96=91=EC=9D=B4?= =?UTF-8?q?=EB=93=A4?= <46598063+qwreey75@users.noreply.github.com> Date: Sun, 19 Dec 2021 01:22:10 +0900 Subject: [PATCH 4/4] Update class.lua --- src/class.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/class.lua b/src/class.lua index 464c7c4..5eb737e 100644 --- a/src/class.lua +++ b/src/class.lua @@ -91,7 +91,7 @@ function module.init(shared) item[index] = dset; end end - local tween = value.tween; + local tween = value.tvalue; -- adding event function local function regFn(newValue,store)