ChoregraphyUtils = {} 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.validate(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.validate(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 return ChoregraphyUtils