@civ-clone/core-city-build
Version:
The repo contains the `CityBuild` and associated objects that deal with building items in `City`s.
44 lines (43 loc) • 1.38 kB
TypeScript
import { AvailableCityBuildItemsRegistry } from './AvailableCityBuildItemsRegistry';
import {
DataObject,
IDataObject,
} from '@civ-clone/core-data-object/DataObject';
import { RuleRegistry } from '@civ-clone/core-rule/RuleRegistry';
import BuildItem from './BuildItem';
import { BuildProgress } from './Yields';
import { IBuildable as Buildable } from './Buildable';
import City from '@civ-clone/core-city/City';
import Yield from '@civ-clone/core-yield/Yield';
export interface ICityBuild extends IDataObject {
add(production: Yield): void;
available(): BuildItem[];
build(ItemToBuild: Buildable): void;
building(): BuildItem | null;
check(): void;
cost(): BuildProgress;
getAvailable(Item: Buildable): BuildItem;
progress(): BuildProgress;
remaining(): number;
revalidate(): void;
}
export declare class CityBuild extends DataObject implements ICityBuild {
#private;
constructor(
city: City,
availableCityBuildItemsRegistry?: AvailableCityBuildItemsRegistry,
ruleRegistry?: RuleRegistry
);
add(production: Yield): void;
available(): BuildItem[];
build(ItemToBuild: Buildable): void;
building(): BuildItem | null;
check(): IDataObject | null;
city(): City;
cost(): BuildProgress;
getAvailable(Item: Buildable): BuildItem;
progress(): BuildProgress;
remaining(): number;
revalidate(): void;
}
export default CityBuild;