1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- module BABYLON {
- export class Action {
- public trigger: number;
- public _actionManager: ActionManager;
- private _nextActiveAction: Action;
- private _child: Action;
- private _condition: Condition;
- private _triggerParameter: any;
- constructor(public triggerOptions: any, condition?: Condition) {
- if (triggerOptions.parameter) {
- this.trigger = triggerOptions.trigger;
- this._triggerParameter = triggerOptions.parameter;
- } else {
- this.trigger = triggerOptions;
- }
- this._nextActiveAction = this;
- this._condition = condition;
- }
- // Methods
- public _prepare(): void {
- }
- public getTriggerParameter(): any {
- return this._triggerParameter;
- }
- public _executeCurrent(evt: ActionEvent): void {
- if (this._nextActiveAction._condition) {
- var condition = this._nextActiveAction._condition;
- var currentRenderId = this._actionManager.getScene().getRenderId();
- // We cache the current evaluation for the current frame
- if (condition._evaluationId === currentRenderId) {
- if (!condition._currentResult) {
- return;
- }
- } else {
- condition._evaluationId = currentRenderId;
- if (!condition.isValid()) {
- condition._currentResult = false;
- return;
- }
- condition._currentResult = true;
- }
- }
- this._nextActiveAction.execute(evt);
- if (this._nextActiveAction._child) {
- if (!this._nextActiveAction._child._actionManager) {
- this._nextActiveAction._child._actionManager = this._actionManager;
- }
- this._nextActiveAction = this._nextActiveAction._child;
- } else {
- this._nextActiveAction = this;
- }
- }
- public execute(evt: ActionEvent): void {
- }
- public then(action: Action): Action {
- this._child = action;
- action._actionManager = this._actionManager;
- action._prepare();
- return action;
- }
- public _getProperty(propertyPath: string): string {
- return this._actionManager._getProperty(propertyPath);
- }
- public _getEffectiveTarget(target: any, propertyPath: string): any {
- return this._actionManager._getEffectiveTarget(target, propertyPath);
- }
- }
- }
|