update PlayerUpdate packet process

This commit is contained in:
xuyuwtu 2026-01-28 22:38:24 +08:00
parent 6fe4f7fe85
commit e93af1a3f9
3 changed files with 61 additions and 3 deletions

View file

@ -338,6 +338,7 @@ namespace TShockAPI
/// Velocity of the player. /// Velocity of the player.
/// </summary> /// </summary>
public Vector2 Velocity { get; set; } public Vector2 Velocity { get; set; }
public ushort? MountType { get; set; }
/// <summary> /// <summary>
/// Original position of the player when using Potion of Return. /// Original position of the player when using Potion of Return.
/// </summary> /// </summary>
@ -346,6 +347,7 @@ namespace TShockAPI
/// Home Position of the player for Potion of Return. /// Home Position of the player for Potion of Return.
/// </summary> /// </summary>
public Vector2? HomePos { get; set; } public Vector2? HomePos { get; set; }
public Vector2? NetCameraTarget { get; set; }
} }
/// <summary> /// <summary>
@ -363,8 +365,10 @@ namespace TShockAPI
byte selectedItem, byte selectedItem,
Vector2 position, Vector2 position,
Vector2 velocity, Vector2 velocity,
ushort? mountType,
Vector2? originalPos, Vector2? originalPos,
Vector2? homePos) Vector2? homePos,
Vector2? netCameraTarget)
{ {
if (PlayerUpdate == null) if (PlayerUpdate == null)
return false; return false;
@ -381,8 +385,10 @@ namespace TShockAPI
SelectedItem = selectedItem, SelectedItem = selectedItem,
Position = position, Position = position,
Velocity = velocity, Velocity = velocity,
MountType = mountType,
OriginalPos = originalPos, OriginalPos = originalPos,
HomePos = homePos HomePos = homePos,
NetCameraTarget = netCameraTarget
}; };
PlayerUpdate.Invoke(null, args); PlayerUpdate.Invoke(null, args);
return args.Handled; return args.Handled;
@ -2826,7 +2832,15 @@ namespace TShockAPI
Vector2 velocity = Vector2.Zero; Vector2 velocity = Vector2.Zero;
if (miscData1.HasVelocity) if (miscData1.HasVelocity)
{
velocity = args.Data.ReadVector2(); velocity = args.Data.ReadVector2();
}
ushort? mountType = null;
if (miscData1.IsMountActive)
{
mountType = args.Data.ReadUInt16();
}
Vector2? originalPosition = new Vector2?(); Vector2? originalPosition = new Vector2?();
Vector2? homePosition = Vector2.Zero; Vector2? homePosition = Vector2.Zero;
@ -2837,7 +2851,13 @@ namespace TShockAPI
TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerUpdate home position delta {0}", args.Player.Name)); TShock.Log.ConsoleDebug(GetString("GetDataHandlers / HandlePlayerUpdate home position delta {0}", args.Player.Name));
} }
if (OnPlayerUpdate(args.Player, args.Data, playerID, controls, miscData1, miscData2, miscData3, selectedItem, position, velocity, originalPosition, homePosition)) Vector2? netCameraTarget = null;
if (miscData3.HasNetCameraTarget)
{
netCameraTarget = args.Data.ReadVector2();
}
if (OnPlayerUpdate(args.Player, args.Data, playerID, controls, miscData1, miscData2, miscData3, selectedItem, position, velocity, mountType, originalPosition, homePosition, netCameraTarget))
return true; return true;
return false; return false;

View file

@ -75,6 +75,12 @@ namespace TShockAPI.Models.PlayerUpdate
set => bitsbyte[6] = value; set => bitsbyte[6] = value;
} }
public bool IsMountActive
{
get => bitsbyte[7];
set => bitsbyte[7] = value;
}
/// <summary> /// <summary>
/// Constructs a new instance of MiscDataSet1 with the given backing BitsByte /// Constructs a new instance of MiscDataSet1 with the given backing BitsByte
/// </summary> /// </summary>

View file

@ -23,6 +23,38 @@ namespace TShockAPI.Models.PlayerUpdate
set => bitsbyte[0] = value; set => bitsbyte[0] = value;
} }
public bool AutoReuseAllWeapons
{
get => bitsbyte[1];
set => bitsbyte[1] = value;
}
public bool ControlDownHold
{
get => bitsbyte[2];
set => bitsbyte[2] = value;
}
public bool IsOperatingAnotherEntity
{
get => bitsbyte[3];
set => bitsbyte[3] = value;
}
public bool ControlUseTile
{
get => bitsbyte[4];
set => bitsbyte[4] = value;
}
public bool HasNetCameraTarget
{
get => bitsbyte[5];
set => bitsbyte[5] = value;
}
public bool LastItemUseAttemptSuccess
{
get => bitsbyte[6];
set => bitsbyte[6] = value;
}
/// <summary> /// <summary>
/// Constructs a new instance of MiscDataSet3 with the given backing BitsByte /// Constructs a new instance of MiscDataSet3 with the given backing BitsByte
/// </summary> /// </summary>