public void SLIDE(object[] args)
{
// look for agent
GameObject agent = GameObject.FindGameObjectWithTag("Agent");
if (agent != null) {
// add preconditions
if (!SatisfactionTest.IsSatisfied (string.Format ("reach({0})", (args [0] as GameObject).name))) {
eventManager.InsertEvent (string.Format ("reach({0})", (args [0] as GameObject).name), 0);
eventManager.InsertEvent (string.Format ("grasp({0})", (args [0] as GameObject).name), 1);
if (args.Length > 2) {
eventManager.InsertEvent (eventManager.evalOrig [string.Format ("slide({0},{1})", (args [0] as GameObject).name, Helper.VectorToParsable ((Vector3)args [1]))], 1);
}
else {
eventManager.InsertEvent (eventManager.evalOrig [string.Format ("slide({0})", (args [0] as GameObject).name)], 1);
}
eventManager.RemoveEvent (3);
return;
}
else {
if (!SatisfactionTest.IsSatisfied (string.Format ("grasp({0})", (args [0] as GameObject).name))) {
eventManager.InsertEvent (string.Format ("grasp({0})", (args [0] as GameObject).name), 0);
if (args.Length > 2) {
eventManager.InsertEvent (eventManager.evalOrig [string.Format ("slide({0},{1})", (args [0] as GameObject).name, Helper.VectorToParsable ((Vector3)args [1]))], 1);
}
else {
eventManager.InsertEvent (eventManager.evalOrig [string.Format ("slide({0})", (args [0] as GameObject).name)], 1);
}
eventManager.RemoveEvent (2);
return;
}
}
// add postconditions
if (args [args.Length - 1] is bool) {
if ((bool)args [args.Length - 1] == true) {
eventManager.InsertEvent (string.Format ("ungrasp({0})", (args [0] as GameObject).name), 1);
}
}
}
// override physics rigging
/*foreach (object arg in args) {
if (arg is GameObject) {
(arg as GameObject).GetComponent<Rigging> ().ActivatePhysics(false);
}
}*/
Vector3 targetPosition = Vector3.zero;
Helper.PrintRDFTriples (rdfTriples);
string prep = rdfTriples.Count > 0 ? rdfTriples [0].Item2.Replace ("slide", "") : "";
if (args [0] is GameObject) {
GameObject obj = (args [0] as GameObject);
Voxeme voxComponent = obj.GetComponent<Voxeme> ();
if (voxComponent != null) {
if (!voxComponent.enabled) {
voxComponent.gameObject.transform.parent = null;
voxComponent.enabled = true;
}
if (args [1] is Vector3) {
targetPosition = (Vector3)args [1];
}
else {
targetPosition = new Vector3 (obj.transform.position.x + UnityEngine.Random.insideUnitSphere.x,
obj.transform.position.y, obj.transform.position.z + UnityEngine.Random.insideUnitSphere.z);
}
voxComponent.targetPosition = targetPosition;
}
}
// add to events manager
if (args[args.Length-1] is bool) {
if ((bool)args[args.Length-1] == false) {
eventManager.events[0] = "slide("+(args [0] as GameObject).name+","+Helper.VectorToParsable(targetPosition)+")";
Debug.Log (eventManager.events [0]);
}
}
return;
}