flow={ level=1, step={0}, paths={ {flow_safe} }, registre={ } -- sub_path_enable = false, -- sub_step = 0, -- sub_path={} } function flow_safe() print("FLOW SAFE") end function flow:print() print("> STEP= "..self.step.." / "..#self.path) if self.sub_path_enable then print("> SUB_PATH_ENABLE= TRUE") else print("> SUB_PATH_ENABLE= FALSE") end print("> SUB_STEP= "..self.sub_step.." / "..#self.sub_path) print("") end function flow:next() local level_step = self.step[self.level] local level_path = self.paths[self.level] -- print("LEVEL= "..self.level) -- print("LEVEL_STEP= "..level_step) if level_step+1 > #level_path then -- Si s'ha acabat la llista pujar de nivell if self.level>1 then self.level=self.level-1 end level_step = self.step[self.level] -- level_path = self.paths[self.level] end -- següent pas level_step = level_step+1 game_update = self.paths[self.level][level_step] -- result = self.step[self.level] self.step[self.level] = level_step end function flow:restore() local level_step = self.step[self.level] game_update = self.paths[self.level][level_step] end function flow:call(nom) game_update = self.registre[nom] end function flow:add_path( path ) self.level = self.level+1 self.step[self.level] = 0 self.paths[self.level] = path end function flow:add(name, fn) self.registre[name] = fn end