public void SetTarget(IWidgetTrackable target, WidgetPlacement labelPlacement = WidgetPlacement.Below) { _target = target; if (_enableTrackingLabel && _trackingLabel == null) { _trackingLabel = InitializeTrackingLabel(); } if (_trackingLabel != null) { if (_trackingLabel.Target != target) { // eliminates PropertyChanged not changed warning _trackingLabel.Target = target; } _trackingLabel.Placement = labelPlacement; } UpdatePosition(); }
private void EnableTrackingLabel(bool toEnable) { if (toEnable) { if (_trackingLabel == null) { float minShowDistance = TempGameValues.MinTrackingLabelShowDistance; _trackingLabel = TrackingWidgetFactory.Instance.MakeUITrackingLabel(this, WidgetPlacement.AboveRight, minShowDistance); _trackingLabel.Set(UnitName); _trackingLabel.Color = Owner.Color; } AssessShowTrackingLabel(); } else { D.AssertNotNull(_trackingLabel); GameUtility.DestroyIfNotNullOrAlreadyDestroyed(_trackingLabel); _trackingLabel = null; } }
protected override void OnTrackingTargetChanged() { base.OnTrackingTargetChanged(); if (enableTrackingLabel && _trackingLabel == null) { _trackingLabel = InitializeTrackingLabel(); } }