Automatic Plan
自动规划模块
interface PlanModuleRegisterUnitOpts {
/** 指定根据距离判定选址位置的参照对象 (到) */
distanceReferencesTo? : ( StructureConstant | 'sources' | 'mineral' )[]
/** 指定根据距离判定选址位置的参照对象 (从) */
distanceReferencesFrom? : StructureConstant[]
/** 与路径的位置关系 - 沿着路径 | 避免与路径重叠 */
roadRelationship? : 'along' | 'avoid'
/** 规划的本建筑单元数量 */
amount? : number
/** 可视化时文本 */
visualizePinText? : string
/** 可视化时颜色 */
visualizeStrokeColor? : string
}
/** 自动规划模块 */
interface PlanModule {
/** 注册建筑单元 - 按照注册顺序进行规划 */
register(token: 'unit', unitName: string, unit: Unit, opts?: PlanModuleRegisterUnitOpts)
/** 连接建筑单元 - 按照注册顺序进行规划 */
register(token: 'road', roadName: string, unitNameU: string, unitNameV: string)
/** 连接建筑单元和位置 - 按照注册顺序进行规划 */
register(token: 'road', roadName: string, unitName: string, pos: RoomPosition)
/** 连接位置 - 按照注册顺序进行规划 */
register(token: 'road', roadName: string, posU: RoomPosition, posV: RoomPosition)
/** 设定某房间建筑单元位置 (即非自动规划, 手动指定) */
setUnitPos(roomName: string, unitName: string, pos: RoomPosition)
/** 规划某房间的建筑单位或连接路径 */
plan(roomName: string, token: 'unit' | 'road', name: string): { [structureType in StructureConstant]? : RoomPosition[] }
/** 判定位置是否 已有/规划 了建筑 - 可用于一些不利用自动规划模块的建筑规划 */
isAvailable(pos: RoomPosition): boolean
/** 可视化 */
visualize()
}
Last updated