diff --git a/source/Model/CtrlObject.ts b/source/Model/CtrlObject.ts new file mode 100644 index 0000000..445e77d --- /dev/null +++ b/source/Model/CtrlObject.ts @@ -0,0 +1,24 @@ +import { LabelObject } from "./Label" +import type { Model } from "./Model"; + +/** + * 可控对象 + */ +class CtrlObject extends LabelObject { + + /** + * 控制模型 + */ + protected model: Model; + + /** + * 构造器 + */ + public constructor(model: Model) { + super(); + this.model = model; + } +} + +export default CtrlObject; +export { CtrlObject }; \ No newline at end of file diff --git a/source/Model/Group.ts b/source/Model/Group.ts index 2dacd11..5e1e1e3 100644 --- a/source/Model/Group.ts +++ b/source/Model/Group.ts @@ -1,12 +1,12 @@ import { Individual } from "./Individual"; -import { LabelObject } from "./Label"; +import { CtrlObject } from "./CtrlObject"; import type { Behavior } from "./Behavior"; import type { Model } from "./Model"; /** * 群体类型 */ -class Group extends LabelObject { +class Group extends CtrlObject { /** * 所有个体 @@ -112,10 +112,10 @@ class Group extends LabelObject { * 执行行为影响 * @param */ - public runner(model: Model, t: number): void { + public runner(t: number): void { this.individuals.forEach((individual) => { for(let j = 0; j < this.behaviors.length; j++) { - this.behaviors[j].effect(individual, this, model, t); + this.behaviors[j].effect(individual, this, this.model, t); } }); } diff --git a/source/Model/Label.ts b/source/Model/Label.ts index 693d72a..037f1b1 100644 --- a/source/Model/Label.ts +++ b/source/Model/Label.ts @@ -44,20 +44,20 @@ class LabelObject { /** * 标签集合 */ - private labels: Set