diff --git a/src/mol-plugin/behavior/behavior.ts b/src/mol-plugin/behavior/behavior.ts index 6da2a78161c86dd45d11dfd98e5b2ad775f7bc09..e42dabfdd62c0f18e2b182d19c32dc4fe1e66cf8 100644 --- a/src/mol-plugin/behavior/behavior.ts +++ b/src/mol-plugin/behavior/behavior.ts @@ -5,7 +5,7 @@ */ import { PluginStateTransform, PluginStateObject } from '../state/objects'; -import { Transformer } from 'mol-state'; +import { Transformer, Transform } from 'mol-state'; import { Task } from 'mol-task'; import { PluginContext } from 'mol-plugin/context'; import { PluginCommand } from '../command'; @@ -16,7 +16,7 @@ import { shallowEqual } from 'mol-util'; export { PluginBehavior } interface PluginBehavior<P = unknown> { - register(): void, + register(ref: Transform.Ref): void, unregister(): void, /** Update params in place. Optionally return a promise if it depends on an async action. */ diff --git a/src/mol-plugin/behavior/static/state.ts b/src/mol-plugin/behavior/static/state.ts index 5a6e6be01b16ce3deaa39b639cfef7dc14b90100..af9541687760557e436bb8c23116f7b78b2bbfc1 100644 --- a/src/mol-plugin/behavior/static/state.ts +++ b/src/mol-plugin/behavior/static/state.ts @@ -28,7 +28,7 @@ export function registerDefault(ctx: PluginContext) { export function SyncBehaviors(ctx: PluginContext) { ctx.events.state.object.created.subscribe(o => { if (!SO.isBehavior(o.obj)) return; - o.obj.data.register(); + o.obj.data.register(o.ref); }); ctx.events.state.object.removed.subscribe(o => { @@ -39,7 +39,7 @@ export function SyncBehaviors(ctx: PluginContext) { ctx.events.state.object.updated.subscribe(o => { if (o.action === 'recreate') { if (o.oldObj && SO.isBehavior(o.oldObj)) o.oldObj.data.unregister(); - if (o.obj && SO.isBehavior(o.obj)) o.obj.data.register(); + if (o.obj && SO.isBehavior(o.obj)) o.obj.data.register(o.ref); } }); }