@awayjs/scene
Version:
AwayJS scene classes
48 lines (38 loc) • 1.08 kB
text/typescript
import { AssetBase, AbstractMethodError } from '@awayjs/core';
import { DisplayObject } from '../display/DisplayObject';
/**
* PrefabBase is an abstract base class for prefabs,
* which are prebuilt display objects that allow easy cloning and updating
*/
export class PrefabBase extends AssetBase {
public _pObjects: Array<DisplayObject> = new Array<DisplayObject>();
// public _pBatchObjects:Array<BatchObject> = new Array<BatchObject>();
/**
* Creates a new PrefabBase object.
*/
constructor() {
super();
}
/**
* Returns a display object generated from this prefab
*/
public getNewObject(): DisplayObject {
const object: DisplayObject = this._pCreateObject();
this._pObjects.push(object);
return object;
}
// public getNewBatchObject():BatchObject
// {
// var object:BatchObject = this._pCreateBatchObject();
//
// this._pBatchObjects.push(object);
//
// return object;
// }
public _pCreateObject(): DisplayObject {
throw new AbstractMethodError();
}
public _iValidate(): void {
// To be overridden when necessary
}
}