/// <inheritdoc/> public virtual void OnKASLinkedState(IKasLinkEvent info, bool isLinked) { var peer = info.source.part == part ? info.source as ILinkPeer : info.target as ILinkPeer; if (!ReferenceEquals(peer, this) && (peer.cfgAttachNodeName == attachNodeName || !cfgDependentNodeNames.Contains(peer.cfgAttachNodeName))) { isLocked = isLinked; } }
/// <inheritdoc/> public virtual void OnKASLinkedState(IKasLinkEvent info, bool isLinked) { var peer = info.source.part == part ? info.source as ILinkPeer : info.target as ILinkPeer; if (!ReferenceEquals(peer, this) && (peer.cfgAttachNodeName == attachNodeName || cfgDependentNodeNames.Contains(peer.cfgAttachNodeName))) { // Only act when it's about (un)locking. Don't affect the state in all other cases. if (isLinked && linkState != LinkState.NodeIsBlocked) { SetLinkState(LinkState.Locked); } else if (!isLinked && linkState == LinkState.Locked) { SetLinkState(LinkState.Available); } } }
void LinkBroken(IKasLinkEvent ev) { DebugEx.Info("Link broken: {0} <=> {1}", ev.source, ev.target); }
void LinkCreated(IKasLinkEvent ev) { DebugEx.Info("Link created: {0} <=> {1}", ev.source, ev.target); }