9827cd4450b74aab41054e68b06b5e3b6eaa1747ab23872db91ddae37ab10f9c.json 18 KB

1
  1. {"ast":null,"code":"import { Observable } from \"../Misc/observable.js\";\nimport { Vector2, Vector3 } from \"../Maths/math.vector.js\";\nimport { Color3, Color4 } from \"../Maths/math.color.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\n/**\n * The action to be carried out following a trigger\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#available-actions\n */\nexport class Action {\n /**\n * Creates a new Action\n * @param triggerOptions the trigger, with or without parameters, for the action\n * @param condition an optional determinant of action\n */\n constructor( /** the trigger, with or without parameters, for the action */\n triggerOptions, condition) {\n this.triggerOptions = triggerOptions;\n /**\n * An event triggered prior to action being executed.\n */\n this.onBeforeExecuteObservable = new Observable();\n if (triggerOptions.parameter) {\n this.trigger = triggerOptions.trigger;\n this._triggerParameter = triggerOptions.parameter;\n } else if (triggerOptions.trigger) {\n this.trigger = triggerOptions.trigger;\n } else {\n this.trigger = triggerOptions;\n }\n this._nextActiveAction = this;\n this._condition = condition;\n }\n /**\n * Internal only\n * @internal\n */\n _prepare() {}\n /**\n * Gets the trigger parameter\n * @returns the trigger parameter\n */\n getTriggerParameter() {\n return this._triggerParameter;\n }\n /**\n * Sets the trigger parameter\n * @param value defines the new trigger parameter\n */\n setTriggerParameter(value) {\n this._triggerParameter = value;\n }\n /**\n * Internal only - Returns if the current condition allows to run the action\n * @internal\n */\n _evaluateConditionForCurrentFrame() {\n const condition = this._condition;\n if (!condition) {\n return true;\n }\n const currentRenderId = this._actionManager.getScene().getRenderId();\n // We cache the current evaluation for the current frame\n if (condition._evaluationId !== currentRenderId) {\n condition._evaluationId = currentRenderId;\n condition._currentResult = condition.isValid();\n }\n return condition._currentResult;\n }\n /**\n * Internal only - executes current action event\n * @internal\n */\n _executeCurrent(evt) {\n const isConditionValid = this._evaluateConditionForCurrentFrame();\n if (!isConditionValid) {\n return;\n }\n this.onBeforeExecuteObservable.notifyObservers(this);\n this._nextActiveAction.execute(evt);\n this.skipToNextActiveAction();\n }\n /**\n * Execute placeholder for child classes\n * @param evt optional action event\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n execute(evt) {}\n /**\n * Skips to next active action\n */\n skipToNextActiveAction() {\n if (this._nextActiveAction._child) {\n if (!this._nextActiveAction._child._actionManager) {\n this._nextActiveAction._child._actionManager = this._actionManager;\n }\n this._nextActiveAction = this._nextActiveAction._child;\n } else {\n this._nextActiveAction = this;\n }\n }\n /**\n * Adds action to chain of actions, may be a DoNothingAction\n * @param action defines the next action to execute\n * @returns The action passed in\n * @see https://www.babylonjs-playground.com/#1T30HR#0\n */\n then(action) {\n this._child = action;\n action._actionManager = this._actionManager;\n action._prepare();\n return action;\n }\n /**\n * Internal only\n * @internal\n */\n _getProperty(propertyPath) {\n return this._actionManager._getProperty(propertyPath);\n }\n /**\n * @internal\n */\n _getEffectiveTarget(target, propertyPath) {\n return this._actionManager._getEffectiveTarget(target, propertyPath);\n }\n /**\n * Serialize placeholder for child classes\n * @param parent of child\n * @returns the serialized object\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n serialize(parent) {\n return null;\n }\n /**\n * Internal only called by serialize\n * @internal\n */\n _serialize(serializedAction, parent) {\n const serializationObject = {\n type: 1,\n children: [],\n name: serializedAction.name,\n properties: serializedAction.properties || []\n };\n // Serialize child\n if (this._child) {\n this._child.serialize(serializationObject);\n }\n // Check if \"this\" has a condition\n if (this._condition) {\n const serializedCondition = this._condition.serialize();\n serializedCondition.children.push(serializationObject);\n if (parent) {\n parent.children.push(serializedCondition);\n }\n return serializedCondition;\n }\n if (parent) {\n parent.children.push(serializationObject);\n }\n return serializationObject;\n }\n}\n/**\n * Internal only\n * @internal\n */\nAction._SerializeValueAsString = value => {\n if (typeof value === \"number\") {\n return value.toString();\n }\n if (typeof value === \"boolean\") {\n return value ? \"true\" : \"false\";\n }\n if (value instanceof Vector2) {\n return value.x + \", \" + value.y;\n }\n if (value instanceof Vector3) {\n return value.x + \", \" + value.y + \", \" + value.z;\n }\n if (value instanceof Color3) {\n return value.r + \", \" + value.g + \", \" + value.b;\n }\n if (value instanceof Color4) {\n return value.r + \", \" + value.g + \", \" + value.b + \", \" + value.a;\n }\n return value; // string\n};\n/**\n * Internal only\n * @internal\n */\nAction._GetTargetProperty = target => {\n return {\n name: \"target\",\n targetType: target._isMesh ? \"MeshProperties\" : target._isLight ? \"LightProperties\" : target._isCamera ? \"CameraProperties\" : target._isMaterial ? \"MaterialProperties\" : \"SceneProperties\",\n value: target._isScene ? \"Scene\" : target.name\n };\n};\nRegisterClass(\"BABYLON.Action\", Action);","map":{"version":3,"names":["Observable","Vector2","Vector3","Color3","Color4","RegisterClass","Action","constructor","triggerOptions","condition","onBeforeExecuteObservable","parameter","trigger","_triggerParameter","_nextActiveAction","_condition","_prepare","getTriggerParameter","setTriggerParameter","value","_evaluateConditionForCurrentFrame","currentRenderId","_actionManager","getScene","getRenderId","_evaluationId","_currentResult","isValid","_executeCurrent","evt","isConditionValid","notifyObservers","execute","skipToNextActiveAction","_child","then","action","_getProperty","propertyPath","_getEffectiveTarget","target","serialize","parent","_serialize","serializedAction","serializationObject","type","children","name","properties","serializedCondition","push","_SerializeValueAsString","toString","x","y","z","r","g","b","a","_GetTargetProperty","targetType","_isMesh","_isLight","_isCamera","_isMaterial","_isScene"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/@babylonjs/core/Actions/action.js"],"sourcesContent":["import { Observable } from \"../Misc/observable.js\";\nimport { Vector2, Vector3 } from \"../Maths/math.vector.js\";\nimport { Color3, Color4 } from \"../Maths/math.color.js\";\nimport { RegisterClass } from \"../Misc/typeStore.js\";\n/**\n * The action to be carried out following a trigger\n * @see https://doc.babylonjs.com/features/featuresDeepDive/events/actions#available-actions\n */\nexport class Action {\n /**\n * Creates a new Action\n * @param triggerOptions the trigger, with or without parameters, for the action\n * @param condition an optional determinant of action\n */\n constructor(\n /** the trigger, with or without parameters, for the action */\n triggerOptions, condition) {\n this.triggerOptions = triggerOptions;\n /**\n * An event triggered prior to action being executed.\n */\n this.onBeforeExecuteObservable = new Observable();\n if (triggerOptions.parameter) {\n this.trigger = triggerOptions.trigger;\n this._triggerParameter = triggerOptions.parameter;\n }\n else if (triggerOptions.trigger) {\n this.trigger = triggerOptions.trigger;\n }\n else {\n this.trigger = triggerOptions;\n }\n this._nextActiveAction = this;\n this._condition = condition;\n }\n /**\n * Internal only\n * @internal\n */\n _prepare() { }\n /**\n * Gets the trigger parameter\n * @returns the trigger parameter\n */\n getTriggerParameter() {\n return this._triggerParameter;\n }\n /**\n * Sets the trigger parameter\n * @param value defines the new trigger parameter\n */\n setTriggerParameter(value) {\n this._triggerParameter = value;\n }\n /**\n * Internal only - Returns if the current condition allows to run the action\n * @internal\n */\n _evaluateConditionForCurrentFrame() {\n const condition = this._condition;\n if (!condition) {\n return true;\n }\n const currentRenderId = this._actionManager.getScene().getRenderId();\n // We cache the current evaluation for the current frame\n if (condition._evaluationId !== currentRenderId) {\n condition._evaluationId = currentRenderId;\n condition._currentResult = condition.isValid();\n }\n return condition._currentResult;\n }\n /**\n * Internal only - executes current action event\n * @internal\n */\n _executeCurrent(evt) {\n const isConditionValid = this._evaluateConditionForCurrentFrame();\n if (!isConditionValid) {\n return;\n }\n this.onBeforeExecuteObservable.notifyObservers(this);\n this._nextActiveAction.execute(evt);\n this.skipToNextActiveAction();\n }\n /**\n * Execute placeholder for child classes\n * @param evt optional action event\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n execute(evt) { }\n /**\n * Skips to next active action\n */\n skipToNextActiveAction() {\n if (this._nextActiveAction._child) {\n if (!this._nextActiveAction._child._actionManager) {\n this._nextActiveAction._child._actionManager = this._actionManager;\n }\n this._nextActiveAction = this._nextActiveAction._child;\n }\n else {\n this._nextActiveAction = this;\n }\n }\n /**\n * Adds action to chain of actions, may be a DoNothingAction\n * @param action defines the next action to execute\n * @returns The action passed in\n * @see https://www.babylonjs-playground.com/#1T30HR#0\n */\n then(action) {\n this._child = action;\n action._actionManager = this._actionManager;\n action._prepare();\n return action;\n }\n /**\n * Internal only\n * @internal\n */\n _getProperty(propertyPath) {\n return this._actionManager._getProperty(propertyPath);\n }\n /**\n * @internal\n */\n _getEffectiveTarget(target, propertyPath) {\n return this._actionManager._getEffectiveTarget(target, propertyPath);\n }\n /**\n * Serialize placeholder for child classes\n * @param parent of child\n * @returns the serialized object\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n serialize(parent) {\n return null;\n }\n /**\n * Internal only called by serialize\n * @internal\n */\n _serialize(serializedAction, parent) {\n const serializationObject = {\n type: 1,\n children: [],\n name: serializedAction.name,\n properties: serializedAction.properties || [],\n };\n // Serialize child\n if (this._child) {\n this._child.serialize(serializationObject);\n }\n // Check if \"this\" has a condition\n if (this._condition) {\n const serializedCondition = this._condition.serialize();\n serializedCondition.children.push(serializationObject);\n if (parent) {\n parent.children.push(serializedCondition);\n }\n return serializedCondition;\n }\n if (parent) {\n parent.children.push(serializationObject);\n }\n return serializationObject;\n }\n}\n/**\n * Internal only\n * @internal\n */\nAction._SerializeValueAsString = (value) => {\n if (typeof value === \"number\") {\n return value.toString();\n }\n if (typeof value === \"boolean\") {\n return value ? \"true\" : \"false\";\n }\n if (value instanceof Vector2) {\n return value.x + \", \" + value.y;\n }\n if (value instanceof Vector3) {\n return value.x + \", \" + value.y + \", \" + value.z;\n }\n if (value instanceof Color3) {\n return value.r + \", \" + value.g + \", \" + value.b;\n }\n if (value instanceof Color4) {\n return value.r + \", \" + value.g + \", \" + value.b + \", \" + value.a;\n }\n return value; // string\n};\n/**\n * Internal only\n * @internal\n */\nAction._GetTargetProperty = (target) => {\n return {\n name: \"target\",\n targetType: target._isMesh\n ? \"MeshProperties\"\n : target._isLight\n ? \"LightProperties\"\n : target._isCamera\n ? \"CameraProperties\"\n : target._isMaterial\n ? \"MaterialProperties\"\n : \"SceneProperties\",\n value: target._isScene ? \"Scene\" : target.name,\n };\n};\nRegisterClass(\"BABYLON.Action\", Action);\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}