mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-13 12:14:16 +01:00
feat: Add CurrentMinion to Character
This commit is contained in:
parent
56f7da5e0c
commit
35520fab8c
1 changed files with 22 additions and 1 deletions
|
|
@ -98,6 +98,13 @@ public interface ICharacter : IGameObject
|
||||||
/// Gets the current mount for this character. Will be <c>null</c> if the character doesn't have a mount.
|
/// Gets the current mount for this character. Will be <c>null</c> if the character doesn't have a mount.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ExcelResolver<Mount>? CurrentMount { get; }
|
public ExcelResolver<Mount>? CurrentMount { get; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the current minion summoned for this character. Will be <c>null</c> if the character doesn't have a minion.
|
||||||
|
/// This method *will* return information about a spawned (but invisible) minion, e.g. if the character is riding a
|
||||||
|
/// mount.
|
||||||
|
/// </summary>
|
||||||
|
public ExcelResolver<Companion>? CurrentMinion { get; }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -183,13 +190,27 @@ internal unsafe class Character : GameObject, ICharacter
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
if (this.Struct->IsNotMounted()) return null; // safety i guess?
|
if (this.Struct->IsNotMounted()) return null; // just for safety.
|
||||||
|
|
||||||
var mountId = this.Struct->Mount.MountId;
|
var mountId = this.Struct->Mount.MountId;
|
||||||
return mountId == 0 ? null : new ExcelResolver<Mount>(mountId);
|
return mountId == 0 ? null : new ExcelResolver<Mount>(mountId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <inheritdoc />
|
||||||
|
public ExcelResolver<Companion>? CurrentMinion
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
if (this.Struct->CompanionObject != null)
|
||||||
|
return new ExcelResolver<Companion>(this.Struct->CompanionObject->BaseId);
|
||||||
|
|
||||||
|
// this is only present if a minion is summoned but hidden (e.g. the player's on a mount).
|
||||||
|
var hiddenCompanionId = this.Struct->CompanionData.CompanionId;
|
||||||
|
return hiddenCompanionId == 0 ? null : new ExcelResolver<Companion>(hiddenCompanionId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the underlying structure.
|
/// Gets the underlying structure.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue