@civ-clone/core-city-build
Version:
The repo contains the `CityBuild` and associated objects that deal with building items in `City`s.
30 lines (25 loc) • 797 B
text/typescript
import {
DataObject,
IDataObject,
} from '@civ-clone/core-data-object/DataObject';
import {
RuleRegistry,
instance as ruleRegistryInstance,
} from '@civ-clone/core-rule/RuleRegistry';
import City from '@civ-clone/core-city/City';
import { IConstructor } from '@civ-clone/core-registry/Registry';
export interface BuildableInstance extends IDataObject {}
export interface IBuildable extends IConstructor<BuildableInstance> {
build(city: City, ruleRegistry?: RuleRegistry): BuildableInstance;
}
export class Buildable extends DataObject {
public static build(
city: City,
ruleRegistry: RuleRegistry = ruleRegistryInstance
): BuildableInstance {
throw new TypeError(
'createFromObject: Must be overridden in extending class'
);
}
}
export default Buildable;