ChoregraphyUtils = {} -- steps utils function ChoregraphyUtils.getStepStructure(stepName) local stepTypeList = require "game.utils.choregraphy.arguments" return stepTypeList[stepName] end function ChoregraphyUtils.stepExists(stepName) return (ChoregraphyUtils.getStepStructure(stepName) ~= nil) end function ChoregraphyUtils.validateStep(stepBaseDatas) local structure = ChoregraphyUtils.getStepStructure(stepBaseDatas[1]) if (structure == nil) then return false else return ((#structure + 2) == #stepBaseDatas) end end function ChoregraphyUtils.getStepDatas(stepBaseDatas) local stepData = {} stepData.name = stepBaseDatas[1] if (ChoregraphyUtils.validateStep(stepBaseDatas)) then stepData.condition = stepBaseDatas[2] local structure = ChoregraphyUtils.getStepStructure(stepData.name) stepData.arguments = {} for i, argumentName in ipairs(structure) do local argumentContent = stepBaseDatas[i + 2] stepData.arguments[argumentName] = argumentContent end return stepData else error("L'étape " .. stepData.name .. " à un nbr d'argument incorrect") end end -- QTE utils function ChoregraphyUtils.getQteStructure(qteName) local stepTypeList = require "game.utils.choregraphy.qte" return stepTypeList[qteName] end function ChoregraphyUtils.qteExists(qteName) return (ChoregraphyUtils.getQteStructure(qteName) ~= nil) end function ChoregraphyUtils.validateQte(qteBaseDatas) local structure = ChoregraphyUtils.getQteStructure(qteBaseDatas[1]) if (structure == nil) then return false else return ((#structure + 1) == #qteBaseDatas) end end function ChoregraphyUtils.getQteDatas(qteBaseDatas) local qteData = {} qteData.name = qteBaseDatas[1] if (ChoregraphyUtils.validateQte(qteBaseDatas)) then local structure = ChoregraphyUtils.getQteStructure(qteData.name) qteData.arguments = {} for i, argumentName in ipairs(structure) do local argumentContent = qteBaseDatas[i + 1] qteData.arguments[argumentName] = argumentContent end return qteData else error("Le QTE " .. qteData.name .. " à un nbr d'argument incorrect") end end return ChoregraphyUtils