Class: InstancedEntity<TData, TVariant>
An entity drawn as one slot of a SkinnedInstancePool. It holds the slot for its lifetime, follows the server's position and facing with damping, writes its instance matrix and voxel light, and calls animate each frame for the family's bone pose.
A family subclasses it and implements animate, posing bones with
setBone (each matrix rotates the bone's boxes about their pivot).
Example
class Walker extends InstancedEntity {
protected animate(time: number) {
const swing = Math.sin(time * 6) * 0.5 * this.movement;
this.setBone(BONE.LEG_L, this.boneMatrix.makeRotationX(swing));
this.setBone(BONE.LEG_R, this.boneMatrix.makeRotationX(-swing));
}
}
entities.setClass("walker", (id) => new Walker(id, walkerPool, { world }));
Type parameters
| Name | Type |
|---|---|
TData | extends InstancedEntityData = InstancedEntityData |
TVariant | extends string = string |
Hierarchy
-
Entity<TData>↳
InstancedEntity
Constructors
constructor
• new InstancedEntity<TData, TVariant>(id, pool, options?): InstancedEntity<TData, TVariant>
Type parameters
| Name | Type |
|---|---|
TData | extends InstancedEntityData = InstancedEntityData |
TVariant | extends string = string |
Parameters
| Name | Type |
|---|---|
id | string |
pool | SkinnedInstancePool<TVariant, SkinnedRigInfo> |
options | InstancedEntityOptions |
Returns
InstancedEntity<TData, TVariant>
Overrides
Properties
entId
• entId: string
Inherited from
entType
• entType: string = ""
Inherited from
metadata
• metadata: TData = null
Inherited from
targetPosition
• Readonly targetPosition: Vector3
Where the server last put the entity; position damps toward it.
Methods
markHit
▸ markHit(): void
Flashes the instance red, fading over a third of a second.
Returns
void
onCreate
▸ onCreate(data): void
Parameters
| Name | Type |
|---|---|
data | TData |
Returns
void
Overrides
Entity.onCreate
onDelete
▸ onDelete(): void
Returns
void
Overrides
Entity.onDelete
onUpdate
▸ onUpdate(data): void
Parameters
| Name | Type |
|---|---|
data | TData |
Returns
void
Overrides
Entity.onUpdate
setHidden
▸ setHidden(hidden): void
Parameters
| Name | Type |
|---|---|
hidden | boolean |
Returns
void
Overrides
Entity.setHidden
snapToTarget
▸ snapToTarget(): void
Returns
void
Overrides
Entity.snapToTarget
update
▸ update(): void
Returns
void
Overrides
Entity.update
updateFrozen
▸ updateFrozen(): void
Returns
void
Overrides
Entity.updateFrozen