|
@@ -1,3 +1,12 @@
|
|
|
+import { Nullable } from "types";
|
|
|
+import { AbstractMesh } from "Mesh";
|
|
|
+import { Sprite } from "Sprites";
|
|
|
+import { Scene } from "scene";
|
|
|
+import { Vector2, Vector3, Vector4, Color3, Color4 } from "Math";
|
|
|
+import { Action, Condition, ValueCondition, DoNothingAction } from "Actions";
|
|
|
+import { Engine } from "Engine";
|
|
|
+import { Tools } from "Tools";
|
|
|
+
|
|
|
/**
|
|
|
* ActionEvent is the event being sent when an action is triggered.
|
|
|
*/
|
|
@@ -526,10 +535,10 @@
|
|
|
public static Parse(parsedActions: any, object: Nullable<AbstractMesh>, scene: Scene): void {
|
|
|
var actionManager = new ActionManager(scene);
|
|
|
if (object === null) {
|
|
|
- scene.actionManager = actionManager;
|
|
|
+ scene.actionManager = actionManager;
|
|
|
}
|
|
|
else {
|
|
|
- object.actionManager = actionManager;
|
|
|
+ object.actionManager = actionManager;
|
|
|
}
|
|
|
|
|
|
// instanciate a new object
|
|
@@ -546,10 +555,10 @@
|
|
|
var floatValue = parseFloat(value);
|
|
|
|
|
|
if (value === "true" || value === "false") {
|
|
|
- return value === "true";
|
|
|
+ return value === "true";
|
|
|
}
|
|
|
else {
|
|
|
- return isNaN(floatValue) ? value : floatValue;
|
|
|
+ return isNaN(floatValue) ? value : floatValue;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -563,33 +572,33 @@
|
|
|
|
|
|
// Return appropriate value with its type
|
|
|
if (typeof (target) === "boolean") {
|
|
|
- return values[0] === "true";
|
|
|
+ return values[0] === "true";
|
|
|
}
|
|
|
|
|
|
if (typeof (target) === "string") {
|
|
|
- return values[0];
|
|
|
+ return values[0];
|
|
|
}
|
|
|
|
|
|
// Parameters with multiple values such as Vector3 etc.
|
|
|
var split = new Array<number>();
|
|
|
for (var i = 0; i < values.length; i++) {
|
|
|
- split.push(parseFloat(values[i]));
|
|
|
+ split.push(parseFloat(values[i]));
|
|
|
}
|
|
|
|
|
|
if (target instanceof Vector3) {
|
|
|
- return Vector3.FromArray(split);
|
|
|
+ return Vector3.FromArray(split);
|
|
|
}
|
|
|
|
|
|
if (target instanceof Vector4) {
|
|
|
- return Vector4.FromArray(split);
|
|
|
+ return Vector4.FromArray(split);
|
|
|
}
|
|
|
|
|
|
if (target instanceof Color3) {
|
|
|
- return Color3.FromArray(split);
|
|
|
+ return Color3.FromArray(split);
|
|
|
}
|
|
|
|
|
|
if (target instanceof Color4) {
|
|
|
- return Color4.FromArray(split);
|
|
|
+ return Color4.FromArray(split);
|
|
|
}
|
|
|
|
|
|
return parseFloat(values[0]);
|
|
@@ -598,7 +607,7 @@
|
|
|
// traverse graph per trigger
|
|
|
var traverse = (parsedAction: any, trigger: any, condition: Nullable<Condition>, action: Nullable<Action>, combineArray: Nullable<Array<Action>> = null) => {
|
|
|
if (parsedAction.detached) {
|
|
|
- return;
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
var parameters = new Array<any>();
|
|
@@ -608,10 +617,10 @@
|
|
|
|
|
|
// Parameters
|
|
|
if (parsedAction.type === 2) {
|
|
|
- parameters.push(actionManager);
|
|
|
+ parameters.push(actionManager);
|
|
|
}
|
|
|
else {
|
|
|
- parameters.push(trigger);
|
|
|
+ parameters.push(trigger);
|
|
|
}
|
|
|
|
|
|
if (combine) {
|
|
@@ -629,14 +638,14 @@
|
|
|
|
|
|
if (name === "target") {
|
|
|
if (targetType !== null && targetType === "SceneProperties") {
|
|
|
- value = target = scene;
|
|
|
+ value = target = scene;
|
|
|
}
|
|
|
else {
|
|
|
- value = target = scene.getNodeByName(value);
|
|
|
- }
|
|
|
+ value = target = scene.getNodeByName(value);
|
|
|
+ }
|
|
|
}
|
|
|
else if (name === "parent") {
|
|
|
- value = scene.getNodeByName(value);
|
|
|
+ value = scene.getNodeByName(value);
|
|
|
}
|
|
|
else if (name === "sound") {
|
|
|
// Can not externalize to component, so only checks for the presence off the API.
|
|
@@ -646,10 +655,10 @@
|
|
|
}
|
|
|
else if (name !== "propertyPath") {
|
|
|
if (parsedAction.type === 2 && name === "operator") {
|
|
|
- value = (<any>ValueCondition)[value];
|
|
|
+ value = (<any>ValueCondition)[value];
|
|
|
}
|
|
|
else {
|
|
|
- value = parseParameter(name, value, target, name === "value" ? propertyPath : null);
|
|
|
+ value = parseParameter(name, value, target, name === "value" ? propertyPath : null);
|
|
|
}
|
|
|
} else {
|
|
|
propertyPath = value;
|
|
@@ -680,10 +689,10 @@
|
|
|
var nothing = new DoNothingAction(trigger, condition);
|
|
|
|
|
|
if (action) {
|
|
|
- action.then(nothing);
|
|
|
+ action.then(nothing);
|
|
|
}
|
|
|
else {
|
|
|
- actionManager.registerAction(nothing);
|
|
|
+ actionManager.registerAction(nothing);
|
|
|
}
|
|
|
|
|
|
action = nothing;
|
|
@@ -696,10 +705,10 @@
|
|
|
} else {
|
|
|
condition = null;
|
|
|
if (action) {
|
|
|
- action.then(newAction);
|
|
|
+ action.then(newAction);
|
|
|
}
|
|
|
else {
|
|
|
- actionManager.registerAction(newAction);
|
|
|
+ actionManager.registerAction(newAction);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -708,7 +717,7 @@
|
|
|
}
|
|
|
|
|
|
for (var i = 0; i < parsedAction.children.length; i++) {
|
|
|
- traverse(parsedAction.children[i], trigger, condition, newAction, null);
|
|
|
+ traverse(parsedAction.children[i], trigger, condition, newAction, null);
|
|
|
}
|
|
|
};
|
|
|
|
|
@@ -728,12 +737,12 @@
|
|
|
triggerParams = { trigger: (<any>ActionManager)[trigger.name], parameter: value };
|
|
|
}
|
|
|
else {
|
|
|
- triggerParams = (<any>ActionManager)[trigger.name];
|
|
|
+ triggerParams = (<any>ActionManager)[trigger.name];
|
|
|
}
|
|
|
|
|
|
for (var j = 0; j < trigger.children.length; j++) {
|
|
|
if (!trigger.detached) {
|
|
|
- traverse(trigger.children[j], triggerParams, null, null);
|
|
|
+ traverse(trigger.children[j], triggerParams, null, null);
|
|
|
}
|
|
|
}
|
|
|
}
|