UNPKG

@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
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;