public virtual void RaiseTargetInfoUpdated(TargetInfo targetInfo) { var raised = new TargetInfoEvent(this, targetInfo); EventHandler <TargetInfoEvent> handler = this.TargetInfoUpdated; handler?.Invoke(this, raised); }
private static void OnTargetInfoUpdated(object sender, TargetInfoEvent targetInfoEvent) { // delegate event from target info from ram, not required to subsribe // this includes the full entities for current, previous, mouseover, focus targets (if 0+ are found) // it also includes a list of upto 16 targets that currently have hate on the currently targeted monster // these hate values are realtime and change based on the action used // this updates 10x a second and only sends data when the newly read data is differen than what was previously sent if (sender == null) { return; } TargetInfo targetInfo = targetInfoEvent.TargetInfo; if (ActorItem.CurrentUser != null) { XIVInfoViewModel.Instance.CurrentUser = ActorItem.CurrentUser; } XIVInfoViewModel.Instance.EnmityEntries = new ObservableCollection <EnmityItem>(targetInfo.EnmityItems ?? new List <EnmityItem>()); XIVInfoViewModel.Instance.CurrentTarget = targetInfo.CurrentTarget ?? new ActorItem(); XIVInfoViewModel.Instance.MouseOverTarget = targetInfo.MouseOverTarget ?? new ActorItem(); XIVInfoViewModel.Instance.FocusTarget = targetInfo.FocusTarget ?? new ActorItem(); XIVInfoViewModel.Instance.PreviousTarget = targetInfo.PreviousTarget ?? new ActorItem(); }
// private static void OnNewPlayerEntity(object sender, PlayerEntityEvent playerEntityEvent) // { // // delegate event from player info from ram, not required to subsribe // // this is for YOU and includes all your stats and your agro list with hate values as % // // this updates 10x a second and only sends data when the newly read data is differen than what was previously sent // if (sender == null) // { // return; // } // var playerEntity = playerEntityEvent.PlayerEntity; // } private static void OnTargetInfoUpdated(object sender, TargetInfoEvent targetInfoEvent) { // delegate event from target info from ram, not required to subsribe // this includes the full entities for current, previous, mouseover, focus targets (if 0+ are found) // it also includes a list of upto 16 targets that currently have hate on the currently targeted monster // these hate values are realtime and change based on the action used // this updates 10x a second and only sends data when the newly read data is differen than what was previously sent if (sender == null) { return; } TargetInfo targetInfo = targetInfoEvent.TargetInfo; var emptyEntity = new TargetInfo(); // assign empty entity EnmityWidgetViewModel.Instance.TargetEntity = emptyEntity; FocusTargetWidgetViewModel.Instance.TargetEntity = emptyEntity; CurrentTargetWidgetViewModel.Instance.TargetEntity = emptyEntity; // assign default current/focus target info EnmityWidgetViewModel.Instance.EnmityTargetIsValid = false; EnmityWidgetViewModel.Instance.EnmityTargetHPPercent = 0; EnmityWidgetViewModel.Instance.EnmityTargetDistance = 0; FocusTargetWidgetViewModel.Instance.FocusTargetIsValid = false; FocusTargetWidgetViewModel.Instance.FocusTargetHPPercent = 0; FocusTargetWidgetViewModel.Instance.FocusTargetDistance = 0; CurrentTargetWidgetViewModel.Instance.CurrentTargetIsValid = false; CurrentTargetWidgetViewModel.Instance.CurrentTargetHPPercent = 0; CurrentTargetWidgetViewModel.Instance.CurrentTargetDistance = 0; if (ActorItem.CurrentUser != null) { XIVInfoViewModel.Instance.CurrentUser = ActorItem.CurrentUser; } // if valid assign actual current target info if (targetInfo.CurrentTarget != null && targetInfo.CurrentTarget.IsValid && Settings.Default.ShowEnmityWidgetOnLoad) { EnmityWidgetViewModel.Instance.TargetEntity = targetInfo; EnmityWidgetViewModel.Instance.EnmityTargetIsValid = true; EnmityWidgetViewModel.Instance.EnmityTargetHPPercent = targetInfo.CurrentTarget.HPPercent; try { EnmityWidgetViewModel.Instance.EnmityTargetDistance = XIVInfoViewModel.Instance.CurrentUser.GetDistanceTo(targetInfo.CurrentTarget); } catch (Exception ex) { Logging.Log(Logger, new LogItem(ex, true)); } } // if valid assign actual current target info if (targetInfo.CurrentTarget != null && targetInfo.CurrentTarget.IsValid && Settings.Default.ShowCurrentTargetWidgetOnLoad) { CurrentTargetWidgetViewModel.Instance.TargetEntity = targetInfo; CurrentTargetWidgetViewModel.Instance.CurrentTargetIsValid = true; CurrentTargetWidgetViewModel.Instance.CurrentTargetHPPercent = targetInfo.CurrentTarget.HPPercent; try { CurrentTargetWidgetViewModel.Instance.CurrentTargetDistance = XIVInfoViewModel.Instance.CurrentUser.GetDistanceTo(targetInfo.CurrentTarget); } catch (Exception ex) { Logging.Log(Logger, new LogItem(ex, true)); } } // if valid assign actual focus target info if (targetInfo.FocusTarget != null && targetInfo.FocusTarget.IsValid && Settings.Default.ShowFocusTargetWidgetOnLoad) { FocusTargetWidgetViewModel.Instance.TargetEntity = targetInfo; FocusTargetWidgetViewModel.Instance.FocusTargetIsValid = true; FocusTargetWidgetViewModel.Instance.FocusTargetHPPercent = targetInfo.FocusTarget.HPPercent; try { FocusTargetWidgetViewModel.Instance.FocusTargetDistance = XIVInfoViewModel.Instance.CurrentUser.GetDistanceTo(targetInfo.FocusTarget); } catch (Exception ex) { Logging.Log(Logger, new LogItem(ex, true)); } } }