mirror of
https://github.com/Heretek-AI/GDevelop.git
synced 2026-07-22 01:55:25 -04:00
deb802cfec
* For now, this is limited to instances inside custom objects. This will be made available in the future for all instances in scenes if this works well.
134 lines
3.5 KiB
TypeScript
134 lines
3.5 KiB
TypeScript
/*
|
|
* GDevelop JS Platform
|
|
* Copyright 2013-2023 Florian Rival (Florian.Rival@gmail.com). All rights reserved.
|
|
* This project is released under the MIT License.
|
|
*/
|
|
namespace gdjs {
|
|
/** @category Behaviors > Default behaviors */
|
|
export interface EffectHandler {
|
|
/**
|
|
* Change an effect property value (for properties that are numbers).
|
|
* @param name The name of the effect to update.
|
|
* @param parameterName The name of the property to update.
|
|
* @param value The new value (number).
|
|
*/
|
|
setEffectDoubleParameter(
|
|
name: string,
|
|
parameterName: string,
|
|
value: float
|
|
): boolean;
|
|
|
|
/**
|
|
* Change an effect property value (for properties that are strings).
|
|
* @param name The name of the effect to update.
|
|
* @param parameterName The name of the property to update.
|
|
* @param value The new value (string).
|
|
*/
|
|
setEffectStringParameter(
|
|
name: string,
|
|
parameterName: string,
|
|
value: string
|
|
): boolean;
|
|
|
|
/**
|
|
* Change an effect property value (for properties that are booleans).
|
|
* @param name The name of the effect to update.
|
|
* @param parameterName The name of the property to update.
|
|
* @param value The new value (boolean).
|
|
*/
|
|
setEffectBooleanParameter(
|
|
name: string,
|
|
parameterName: string,
|
|
value: boolean
|
|
): boolean;
|
|
|
|
/**
|
|
* Enable or disable an effect.
|
|
* @param name The name of the effect to enable or disable.
|
|
* @param enable true to enable, false to disable
|
|
*/
|
|
enableEffect(name: string, enable: boolean): void;
|
|
|
|
/**
|
|
* Check if an effect is enabled
|
|
* @param name The name of the effect
|
|
* @return true if the effect is enabled, false otherwise.
|
|
*/
|
|
isEffectEnabled(name: string): boolean;
|
|
}
|
|
|
|
/**
|
|
* A behavior that forwards the EffectBehavior interface to its object.
|
|
* @category Behaviors > Default behaviors
|
|
*/
|
|
export class EffectBehavior
|
|
extends gdjs.RuntimeBehavior
|
|
implements EffectHandler
|
|
{
|
|
private object: gdjs.RuntimeObject & EffectHandler;
|
|
|
|
constructor(
|
|
instanceContainer: gdjs.RuntimeInstanceContainer,
|
|
behaviorData,
|
|
owner: gdjs.RuntimeObject & EffectHandler
|
|
) {
|
|
super(instanceContainer, behaviorData, owner);
|
|
this.object = owner;
|
|
}
|
|
|
|
usesLifecycleFunction(): boolean {
|
|
return false;
|
|
}
|
|
|
|
override applyBehaviorOverriding(behaviorData): boolean {
|
|
// Nothing to update.
|
|
return true;
|
|
}
|
|
|
|
onDeActivate() {}
|
|
|
|
onDestroy() {}
|
|
|
|
doStepPreEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {}
|
|
|
|
doStepPostEvents(instanceContainer: gdjs.RuntimeInstanceContainer) {}
|
|
|
|
setEffectDoubleParameter(
|
|
name: string,
|
|
parameterName: string,
|
|
value: float
|
|
): boolean {
|
|
return this.object.setEffectDoubleParameter(name, parameterName, value);
|
|
}
|
|
|
|
setEffectStringParameter(
|
|
name: string,
|
|
parameterName: string,
|
|
value: string
|
|
): boolean {
|
|
return this.object.setEffectStringParameter(name, parameterName, value);
|
|
}
|
|
|
|
setEffectBooleanParameter(
|
|
name: string,
|
|
parameterName: string,
|
|
value: boolean
|
|
): boolean {
|
|
return this.object.setEffectBooleanParameter(name, parameterName, value);
|
|
}
|
|
|
|
enableEffect(name: string, enable: boolean): void {
|
|
this.object.enableEffect(name, enable);
|
|
}
|
|
|
|
isEffectEnabled(name: string): boolean {
|
|
return this.object.isEffectEnabled(name);
|
|
}
|
|
}
|
|
|
|
gdjs.registerBehavior(
|
|
'EffectCapability::EffectBehavior',
|
|
gdjs.EffectBehavior
|
|
);
|
|
}
|