From d83122731bc20b49ee464f96d82a78b5c29597d1 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Wed, 24 Mar 2021 17:44:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B4=E7=90=86=E5=BA=8F=E5=88=97=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=99=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{sequenceGenerator.lua => getSeqGen.lua} | 30 ++++++++----------- parts/player/init.lua | 6 ++-- 2 files changed, 17 insertions(+), 19 deletions(-) rename parts/player/{sequenceGenerator.lua => getSeqGen.lua} (83%) diff --git a/parts/player/sequenceGenerator.lua b/parts/player/getSeqGen.lua similarity index 83% rename from parts/player/sequenceGenerator.lua rename to parts/player/getSeqGen.lua index 9e2eba4e..0337d110 100644 --- a/parts/player/sequenceGenerator.lua +++ b/parts/player/getSeqGen.lua @@ -1,7 +1,7 @@ local ins,rem=table.insert,table.remove local yield=coroutine.yield -local sequenceModes={ +local seqGens={ none=function() while true do yield()end end, bag=function(P,seq0) local len=#seq0 @@ -139,22 +139,18 @@ local sequenceModes={ end, } return function(P)--Set newNext funtion for player P - local ENV=P.gameEnv - ::tryAgain:: - if type(ENV.sequence)=="string"then - if sequenceModes[ENV.sequence]then - P.newNext=coroutine.create(sequenceModes[ENV.sequence]) - else - LOG.print("No sequence mode called "..ENV.sequence,"warn") - ENV.sequence="bag" - goto tryAgain - end - elseif type(ENV.sequence)=="function"then - P.newNext=coroutine.create(ENV.sequence) + local s=P.gameEnv.sequence + if type(s)=="function"then + return s + elseif type(s)=="string"and seqGens[s]then + return seqGens[s] else - LOG.print("Wrong sequence generator","warn") - ENV.sequence="bag" - goto tryAgain + LOG.print( + type(s)=="string"and + "No sequence mode called "..s or + "Wrong sequence generator", + "warn") + P.gameEnv.sequence="bag" + return seqGens.bag end - assert(coroutine.resume(P.newNext,P,ENV.seqData)) end \ No newline at end of file diff --git a/parts/player/init.lua b/parts/player/init.lua index 5df55a90..9bf7f149 100644 --- a/parts/player/init.lua +++ b/parts/player/init.lua @@ -1,5 +1,5 @@ local Player=require"parts.player.player" -local sequenceGenerator=require"parts.player.sequenceGenerator" +local getSeqGen=require"parts.player.getSeqGen" local gameEnv0=require"parts.player.gameEnv0" local rnd,max=math.random,math.max @@ -307,7 +307,9 @@ local function applyGameEnv(P)--Finish gameEnv processing end if ENV.nextCount==0 then ENV.nextPos=false end - sequenceGenerator(P) + + P.newNext=coroutine.create(getSeqGen(P)) + assert(coroutine.resume(P.newNext,P,P.gameEnv.seqData)) if P.mini then ENV.lockFX=false