@civ-clone/core-city-build
Version:
The repo contains the `CityBuild` and associated objects that deal with building items in `City`s.
34 lines (26 loc) • 768 B
text/typescript
import {
EntityRegistry,
IEntityRegistry,
} from '@civ-clone/core-registry/EntityRegistry';
import City from '@civ-clone/core-city/City';
import CityBuild from './CityBuild';
export interface ICityBuildRegistry extends IEntityRegistry<CityBuild> {
getByCity(city: City): CityBuild;
}
export class CityBuildRegistry
extends EntityRegistry<CityBuild>
implements ICityBuildRegistry
{
constructor() {
super(CityBuild);
}
getByCity(city: City): CityBuild {
const cityBuilds = this.getBy('city', city);
if (cityBuilds.length !== 1) {
throw new TypeError('Wrong number of entities returned.');
}
return cityBuilds[0];
}
}
export const instance: CityBuildRegistry = new CityBuildRegistry();
export default CityBuildRegistry;