From 8252f85720cf2a9a824e247f0f33826f1fa4374f Mon Sep 17 00:00:00 2001 From: SweetSea-ButImNotSweet <106439598+SweetSea-ButImNotSweet@users.noreply.github.com> Date: Thu, 4 Jan 2024 07:53:28 +0700 Subject: [PATCH] Fix some bugs --- parts/data.lua | 2 ++ parts/gameFuncs.lua | 8 -------- parts/player/init.lua | 7 ++++++- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/parts/data.lua b/parts/data.lua index 9f044b46..996bcab8 100644 --- a/parts/data.lua +++ b/parts/data.lua @@ -334,6 +334,7 @@ do-- function DATA.saveReplay() seed=GAME.seed, setting=GAME.setting, mod=_getModList(), + modPatch=GAME.modPatch, tasUsed=GAME.tasUsed, } if GAME.curMode.savePrivate then @@ -393,6 +394,7 @@ function DATA.parseReplayData(fileName,fileData,ifFull) seed=metaData.seed, setting=metaData.setting, mod=metaData.mod, + modPatch=metaData.modPatch, tasUsed=metaData.tasUsed, } if ifFull then rep.data=fileData end diff --git a/parts/gameFuncs.lua b/parts/gameFuncs.lua index 8c7fdd88..8ab91a06 100644 --- a/parts/gameFuncs.lua +++ b/parts/gameFuncs.lua @@ -666,14 +666,6 @@ function gameOver() end end end - - -- Kill mod patching function - if GAME.ApplyModsTask then - TASK.removeTask_code(GAME.ApplyModsTask) - TABLE.cut(GAME.modCodeList) - GAME.modCodeList=nil - GAME.ApplyModsTask=nil - end end function trySave() if not GAME.statSaved and PLAYERS[1] and PLAYERS[1].type=='human' and (PLAYERS[1].frameRun>300 or GAME.result) then diff --git a/parts/player/init.lua b/parts/player/init.lua index 82c264d2..db399773 100644 --- a/parts/player/init.lua +++ b/parts/player/init.lua @@ -212,12 +212,17 @@ local function _loadGameEnv(P)-- Load gameEnv if not GAME.ApplyModsTask then GAME.ApplyModsTask=function() - while true do + while GAME.playing do for _,p in pairs(GAME.modCodeList) do for _,c in pairs(p) do pcall(c) end end coroutine.yield() end + -- Kill mod patching function when game stopped + TASK.removeTask_code(GAME.ApplyModsTask) + TABLE.cut(GAME.modCodeList) + GAME.modCodeList=nil + GAME.ApplyModsTask=nil end TASK.new(GAME.ApplyModsTask) end