89 lines
2.2 KiB
Lua
89 lines
2.2 KiB
Lua
local ChoregraphyUtils = {}
|
|
|
|
-- steps utils
|
|
|
|
function ChoregraphyUtils.getStepStructure(stepName)
|
|
local stepTypeList = require "datas.parsers.choregraphystep"
|
|
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 "datas.parsers.qtesteps"
|
|
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
|