move handling of player data application to CachedPlayer

This commit is contained in:
Stanley Dimant
2022-06-26 14:34:56 +02:00
parent 71ced4dc88
commit 0df75fe085
6 changed files with 411 additions and 383 deletions

View File

@@ -21,7 +21,7 @@ namespace MareSynchronos.Utils
public bool IsPlayerPresent => _clientState.LocalPlayer != null;
public string PlayerName => _clientState.LocalPlayer!.Name.ToString();
public string PlayerName => _clientState.LocalPlayer?.Name.ToString() ?? "--";
public int PlayerJobId => (int)_clientState.LocalPlayer!.ClassJob.Id;
@@ -49,6 +49,24 @@ namespace MareSynchronos.Utils
return allLocalPlayers;
}
public PlayerCharacter? GetPlayerCharacterFromObjectTableIndex(int index)
{
var objTableObj = _objectTable[index];
if (objTableObj!.ObjectKind != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.Player) return null;
return (PlayerCharacter)objTableObj;
}
public PlayerCharacter? GetPlayerCharacterFromObjectTableByName(string characterName)
{
foreach (var item in _objectTable)
{
if (item.ObjectKind != Dalamud.Game.ClientState.Objects.Enums.ObjectKind.Player) continue;
if (item.Name.ToString() == characterName) return (PlayerCharacter)item;
}
return null;
}
public unsafe void WaitWhileCharacterIsDrawing(IntPtr characterAddress)
{
if (!_clientState.IsLoggedIn) return;