How to access Methods and Properties of a referenced Entity in TypeScript (Desktop Editor)
Hi,
I have two local scripts
- SomeLocalItem.ts
- AnotherLocalItem.ts
SomeLocalItem has reference to Entity with AnotherLocalItem.
I want:
1) Inside SomeLocalItem invoke method on referenced AnotherLocalItem.
2) Inside SomeLocalItem read some property from AnotherLocalItem.
Note, both scripts are local, so Behaviour.ts doesn't work here without rewriting it to work locally. Is there simpler way?
SomeLocalItem.ts
import * as hz from 'horizon/core';
import { AnotherLocalItem } from 'AnotherLocalItem';
class SomeLocalItem extends hz.Component<typeof SomeLocalItem> {
static propsDefinition = {
anotherLocalItemEntity: { type: hz.PropTypes.Entity }
};
start() {
this.connectCodeBlockEvent(this.entity, hz.CodeBlockEvents.OnButton1Down, () => {this.onButton1Down();});
}
onButton1Down() {
this.anotherLocalItem = this.props.anotherLocalItemEntity as AnotherLocalItem; // This doesn't work, how to assign the entity to the component?
this.anotherLocalItem.printToConsole('Hello from SomeLocalItem'); // I want to invoke this method, how?
console.log('Level of anotherLocalItem: ', this.anotherLocalItem.level); // Or print it's public property, how?
}
}
hz.Component.register(SomeLocalItem);
AnotherLocalItem.ts
import * as hz from 'horizon/core';
export class AnotherLocalItem extends hz.Component<typeof AnotherLocalItem> {
static propsDefinition = {
level: { type: hz.PropTypes.Number, default: 1}
};
public level: number = 1;
preStart(): void {
this.level = this.props.level;
}
start() {
}
public printToConsole(message: string) {
console.log('AnotherLocalItem.printToConsole: ', message);
}
}
hz.Component.register(AnotherLocalItem);
