@bscotch/stitch
Version:
Stitch: The GameMaker Studio 2 Asset Pipeline Development Kit.
26 lines • 1.58 kB
TypeScript
import { StitchStorage } from '../StitchStorage.js';
export declare abstract class Gms2ComponentArrayBase<YypData, ComponentClass extends (new (object: YypData) => InstanceType<ComponentClass> & {
toJSON: () => YypData;
}) | (new (object: YypData, storage: StitchStorage) => InstanceType<ComponentClass> & {
toJSON: () => YypData;
})> {
protected items: InstanceType<ComponentClass>[];
/** Get shallow-copy array of all item instances */
list(): InstanceType<ComponentClass>[];
filter(matchFunction: (item: InstanceType<ComponentClass>) => any): InstanceType<ComponentClass>[];
filterByField(field: keyof InstanceType<ComponentClass>, value: any): InstanceType<ComponentClass>[];
find(matchFunction: (item: InstanceType<ComponentClass>) => any): InstanceType<ComponentClass> | undefined;
findByField(field: keyof InstanceType<ComponentClass>, value: any): InstanceType<ComponentClass> | undefined;
removeByField(field: keyof InstanceType<ComponentClass>, value: any): this;
push(...items: InstanceType<ComponentClass>[]): this;
prepend(...items: InstanceType<ComponentClass>[]): this;
abstract addNew(data: YypData): ComponentClass;
/**
* Create a new component instance if one doesn't already exist
* matching the given uniqueField:uniqueValue pair.
*/
addIfNew(data: YypData, uniqueField: keyof InstanceType<ComponentClass>, uniqueFieldValue: any): false | ComponentClass;
toJSON(): YypData[];
uniqueYypDataEntries(data: YypData[]): YypData[];
}
//# sourceMappingURL=Gms2ComponentArrayBase.d.ts.map