[fix] fixed bug in parseTimeLineElement and parseFunction

- damn you Lua arrays!!!
This commit is contained in:
2020-01-29 01:19:11 -06:00
parent b640ca4a65
commit 94e64e3d42

View File

@@ -97,7 +97,7 @@ class SimulationConfigParser(input: Map[String, Any], simulationBehaviours: Simu
private def parseTimeLineElement(timeLineElement: Any): (Int, Option[Int]) = {
timeLineElement match {
case timeLineElement: Vector[_] => val elementVector = timeLineElement.asInstanceOf[Vector[Int]]
(elementVector(1), if(timeLineElement.contains(2)) Some(elementVector(2)) else None)
(elementVector(0), if(elementVector.size > 1) Some(elementVector(1)) else None)
case timeLineElement: Map[_, _] => val elementMap = timeLineElement.asInstanceOf[Map[String, Int]]
(elementMap("start"), if(elementMap.contains("end")) Some(elementMap("end")) else None)
}
@@ -111,7 +111,7 @@ class SimulationConfigParser(input: Map[String, Any], simulationBehaviours: Simu
val start: Int = function(0).asInstanceOf[Int]
// val end: Option[Int] = None // Not used
val name: String = function(1).asInstanceOf[String]
val args: Option[FunctionArgs] = if (function.contains(3)) Some(FunctionArgs(function(2).asInstanceOf[Map[String, Any]])) else None
val args: Option[FunctionArgs] = if (function.size > 2) Some(FunctionArgs(function(2).asInstanceOf[Map[String, Any]])) else None
if (!simulationBehaviours.get(name).isEmpty) funcPointer = Some((simulationBehaviours.get(name).get, args))
Map[Int, Option[(SimulationBehaviour, Option[FunctionArgs])]](start -> funcPointer)
}