feat: use main viewport pos and add last time targeted

This commit is contained in:
Anna 2021-04-06 10:02:51 -04:00
parent c938bceaa7
commit 2ee005b638
3 changed files with 26 additions and 3 deletions

View File

@ -13,7 +13,7 @@
<EmbeddedResource Include="Resources\target.wav"/>
</ItemGroup>
<ItemGroup>
<Reference Include="Dalamud, Version=5.2.4.2, Culture=neutral, PublicKeyToken=null">
<Reference Include="Dalamud, Version=5.2.4.3, Culture=neutral, PublicKeyToken=null">
<HintPath>$(AppData)\XIVLauncher\addon\Hooks\dev\Dalamud.dll</HintPath>
<Private>False</Private>
</Reference>

View File

@ -9,6 +9,7 @@ using System.Numerics;
using Dalamud.Game.Text;
using Dalamud.Game.Text.SeStringHandling;
using Dalamud.Game.Text.SeStringHandling.Payloads;
using Dalamud.Interface;
namespace PeepingTom {
internal class PluginUi : IDisposable {
@ -498,7 +499,27 @@ namespace PeepingTom {
}
private void AddEntry(Targeter targeter, Actor? actor, ref bool anyHovered, ImGuiSelectableFlags flags = ImGuiSelectableFlags.None) {
ImGui.BeginGroup();
ImGui.Selectable(targeter.Name, false, flags);
var time = DateTime.UtcNow - targeter.When >= TimeSpan.FromDays(1)
? targeter.When.ToLocalTime().ToString("dd/MM")
: targeter.When.ToLocalTime().ToString("t");
ImGui.SameLine(ImGui.GetWindowSize().X - ImGui.GetStyle().ItemSpacing.X - ImGui.CalcTextSize(time).X);
if (flags.HasFlag(ImGuiSelectableFlags.Disabled)) {
ImGui.PushStyleColor(ImGuiCol.Text, ImGui.GetStyle().Colors[(int) ImGuiCol.TextDisabled]);
}
ImGui.TextUnformatted(time);
if (flags.HasFlag(ImGuiSelectableFlags.Disabled)) {
ImGui.PopStyleColor();
}
ImGui.EndGroup();
var hover = ImGui.IsItemHovered(ImGuiHoveredFlags.AllowWhenDisabled);
var left = hover && ImGui.IsMouseClicked(ImGuiMouseButton.Left);
var right = hover && ImGui.IsMouseClicked(ImGuiMouseButton.Right);
@ -554,10 +575,10 @@ namespace PeepingTom {
return;
}
ImGui.PushClipRect(new Vector2(0, 0), ImGui.GetIO().DisplaySize, false);
ImGui.PushClipRect(ImGuiHelpers.MainViewport.Pos, ImGuiHelpers.MainViewport.Pos + ImGuiHelpers.MainViewport.Size, false);
ImGui.GetWindowDrawList().AddCircleFilled(
new Vector2(screenPos.X, screenPos.Y),
ImGuiHelpers.MainViewport.Pos + new Vector2(screenPos.X, screenPos.Y),
size,
ImGui.GetColorU32(colour),
100

View File

@ -9,6 +9,7 @@ namespace PeepingTom {
public string Name { get; }
public World HomeWorld { get; }
public int ActorId { get; }
public DateTime When { get; }
public Targeter(PlayerCharacter character) {
if (character == null) {
@ -17,6 +18,7 @@ namespace PeepingTom {
this.Name = character.Name;
this.HomeWorld = character.HomeWorld;
this.ActorId = character.ActorId;
this.When = DateTime.UtcNow;
}
public PlayerCharacter? GetPlayerCharacter(DalamudPluginInterface pi) {