@aibee/crc-bmap 0.6.4 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,6 +5,7 @@ import { PathData2, TweenUtil, PathData } from "../../utils";
5
5
  import { Floor, Poi2, PoiOptions2 } from "../../elements";
6
6
  import { Tween } from "@tweenjs/tween.js";
7
7
  import { NavigationProcessInfo, PositionNavigation, PositionNavigationConfig } from "./position-navigation";
8
+ import TaskQueue from "src/utils/taskQueue";
8
9
  export type Point = [number, number];
9
10
  export { NavigationProcessInfo };
10
11
  interface EventMap {
@@ -50,7 +51,7 @@ export declare class Navigation extends Plugin<EventMap> {
50
51
  movedDistance: number;
51
52
  pathStart: [number, number];
52
53
  tweenUtil: TweenUtil;
53
- toPositionPromise?: Promise<any> | null;
54
+ taskQueue: TaskQueue;
54
55
  animationPathOptions: {
55
56
  cPathIndex: number;
56
57
  };
@@ -63,6 +64,7 @@ export declare class Navigation extends Plugin<EventMap> {
63
64
  onNavigationInfo: ({ info }: {
64
65
  info: NavigationProcessInfo;
65
66
  }) => void;
67
+ toPositionByTask(pos: [number, number]): void;
66
68
  pauseAnimation(): void;
67
69
  continueAnimation(): void;
68
70
  clearTween(): void;
@@ -0,0 +1,83 @@
1
+ import { EventDispatcher } from "three";
2
+ export interface Task {
3
+ run: () => any;
4
+ meta: Record<string, any>;
5
+ tid: number;
6
+ }
7
+ interface TaskEventMap {
8
+ "active-task-end": {
9
+ task: Task;
10
+ };
11
+ "active-task-start": {
12
+ task: Task;
13
+ };
14
+ }
15
+ /**
16
+ * 按照队列执行任务
17
+ */
18
+ export default class TaskQueue extends EventDispatcher<TaskEventMap> {
19
+ _task: Task[];
20
+ started: boolean;
21
+ activeTask: Task | null;
22
+ _id: number;
23
+ constructor(start?: boolean);
24
+ /**
25
+ * 判断任务是否有效
26
+ * @param task
27
+ * @return {boolean}
28
+ * @private
29
+ */
30
+ _isEffectiveTask(task: MakeOptional<Task, "meta" | "tid">): task is Task;
31
+ /**
32
+ * 根据tid获取元素的位置
33
+ * @param tid
34
+ * @return {number}
35
+ * @private
36
+ */
37
+ _getIndexByTid(tid: number): number;
38
+ /**
39
+ * 创建任务
40
+ * @param task
41
+ * @private
42
+ */
43
+ _createTask(task: Task): Task | false;
44
+ get task(): Task[];
45
+ /**
46
+ * 获取当前队列中的任务
47
+ */
48
+ getTasks(): Task[];
49
+ /**
50
+ * 添加任务
51
+ * @param task
52
+ * @return
53
+ */
54
+ add(task: MakeOptional<Task, "meta" | "tid">): number | false;
55
+ /**
56
+ * 替换队列中的某个任务
57
+ * @param id
58
+ * @param task
59
+ */
60
+ replace(id: number, task: MakeOptional<Task, "meta" | "tid">): number | false;
61
+ /**
62
+ * 根据id删除对应的task
63
+ * @param id
64
+ */
65
+ remove(id: number): boolean;
66
+ /**
67
+ * 清空队列
68
+ */
69
+ clear(): void;
70
+ /**
71
+ * 开始执行任务,默认在构造函数中执行
72
+ */
73
+ start(): void;
74
+ /**
75
+ * 停止执行队列中的任务,不包括当前执行中的任务
76
+ */
77
+ stop(): void;
78
+ /**
79
+ * 从任务队列中的第一个任务开始执行
80
+ */
81
+ exec(): Promise<false>;
82
+ }
83
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aibee/crc-bmap",
3
- "version": "0.6.4",
3
+ "version": "0.6.5",
4
4
  "description": "",
5
5
  "main": "lib/bmap.min.js",
6
6
  "module": "lib/bmap.esm.js",