Files
GDevelop/Extensions/TextEntryObject/textentryruntimeobject.ts
D8H 80cb6d697c Handle custom objects at runtime (#4294)
* Don't show in changelog
2022-10-18 13:36:48 +02:00

70 lines
1.8 KiB
TypeScript

/*
* GDevelop JS Platform
* 2013 Florian Rival (Florian.Rival@gmail.com)
*/
namespace gdjs {
/**
* The TextEntryRuntimeObject allows to capture text typed on the keyboard.
*/
export class TextEntryRuntimeObject extends gdjs.RuntimeObject {
_str: string = '';
_activated: boolean = true;
_renderer: gdjs.TextEntryRuntimeObjectRenderer;
/**
* @param instanceContainer The container the object belongs to.
* @param textEntryObjectData The initial properties of the object
*/
constructor(
instanceContainer: gdjs.RuntimeInstanceContainer,
textEntryObjectData: ObjectData
) {
super(instanceContainer, textEntryObjectData);
this._renderer = new gdjs.TextEntryRuntimeObjectRenderer(this);
// *ALWAYS* call `this.onCreated()` at the very end of your object constructor.
this.onCreated();
}
updateFromObjectData(oldObjectData, newObjectData): boolean {
// Nothing to update.
return true;
}
onDestroyFromScene(instanceContainer: gdjs.RuntimeInstanceContainer): void {
super.onDestroyFromScene(instanceContainer);
if (this._renderer.onDestroy) {
this._renderer.onDestroy();
}
}
update(instanceContainer: gdjs.RuntimeInstanceContainer): void {
if ((this._renderer as any).getString) {
this._str = (this._renderer as any).getString();
}
}
getString(): string {
return this._str;
}
setString(str: string): void {
this._str = str;
this._renderer.updateString();
}
isActivated(): boolean {
return this._activated;
}
activate(enable: boolean) {
this._activated = enable;
this._renderer.activate(this._activated);
}
}
gdjs.registerObject(
'TextEntryObject::TextEntry',
gdjs.TextEntryRuntimeObject
);
}