diff --git a/src/Core/ProductionQueue.ts b/src/Core/ProductionQueue.ts index 7e1003c..1b260ff 100644 --- a/src/Core/ProductionQueue.ts +++ b/src/Core/ProductionQueue.ts @@ -1,5 +1,3 @@ -import { getProductionQueue } from '../Task/TaskMap'; - export enum ProductionQueue { Building = 'building', TrainUnit = 'train_unit', @@ -33,14 +31,3 @@ export function translateProductionQueue(queue: ProductionQueue): string { export interface TaskNamePredicate { (name: string): boolean; } - -/** - * List on non intersected task queue predicates. - */ -const TASK_TYPE_PREDICATES: Array = OrderedProductionQueues.map(queue => { - return (taskName: string) => getProductionQueue(taskName) === queue; -}); - -export function isProductionTask(taskName: string): boolean { - return TASK_TYPE_PREDICATES.reduce((memo, predicate) => memo || predicate(taskName), false); -} diff --git a/src/Scheduler.ts b/src/Scheduler.ts index 5b43a22..6ca3670 100644 --- a/src/Scheduler.ts +++ b/src/Scheduler.ts @@ -9,9 +9,9 @@ import { SendResourcesTask } from './Task/SendResourcesTask'; import { Args } from './Queue/Args'; import { ImmutableTaskList, Task, TaskId, uniqTaskId, withTime } from './Queue/TaskProvider'; import { VillageRepositoryInterface } from './VillageRepository'; -import { isProductionTask } from './Core/ProductionQueue'; import { VillageFactory } from './VillageFactory'; import { RunVillageProductionTask } from './Task/RunVillageProductionTask'; +import { isProductionTask } from './Task/TaskMap'; export interface NextExecution { task?: Task; diff --git a/src/Task/TaskMap.ts b/src/Task/TaskMap.ts index 4fedc94..d91f815 100644 --- a/src/Task/TaskMap.ts +++ b/src/Task/TaskMap.ts @@ -1,6 +1,10 @@ import { Scheduler } from '../Scheduler'; import { TaskController } from './TaskController'; -import { ProductionQueue } from '../Core/ProductionQueue'; +import { + OrderedProductionQueues, + ProductionQueue, + TaskNamePredicate, +} from '../Core/ProductionQueue'; import { VillageFactory } from '../VillageFactory'; interface TaskOptions { @@ -47,3 +51,14 @@ export function createTaskHandler( const constructor = (taskDescription.ctor as unknown) as typeof TaskController; return new constructor(scheduler, factory); } + +/** + * List on non intersected task queue predicates. + */ +const TASK_TYPE_PREDICATES: Array = OrderedProductionQueues.map(queue => { + return (taskName: string) => getProductionQueue(taskName) === queue; +}); + +export function isProductionTask(taskName: string): boolean { + return TASK_TYPE_PREDICATES.reduce((memo, predicate) => memo || predicate(taskName), false); +} diff --git a/src/VillageTaskCollection.ts b/src/VillageTaskCollection.ts index 710e84d..ea6b4bd 100644 --- a/src/VillageTaskCollection.ts +++ b/src/VillageTaskCollection.ts @@ -1,12 +1,12 @@ import { VillageStorage } from './Storage/VillageStorage'; import { Task, TaskId, uniqTaskId, withResources, withTime } from './Queue/TaskProvider'; import { Args } from './Queue/Args'; -import { isProductionTask } from './Core/ProductionQueue'; import { timestamp } from './utils'; import { Resources } from './Core/Resources'; import { ContractAttributes, ContractType } from './Core/Contract'; import { UpgradeBuildingTask } from './Task/UpgradeBuildingTask'; import { ForgeImprovementTask } from './Task/ForgeImprovementTask'; +import { isProductionTask } from './Task/TaskMap'; export class VillageTaskCollection { private readonly storage: VillageStorage;