initial sync of player hud icon

This commit is contained in:
_nebula 2023-02-12 18:41:40 +00:00
parent b5968feb4c
commit 7ce55b1f75
2 changed files with 11 additions and 4 deletions

View File

@ -15,7 +15,8 @@ public class PlayerBox : MonoBehaviour
private PlayerInfo _player;
private bool _planetIconOverride;
private HUDIcon _planetIcon;
public HUDIcon PlanetIcon { get; private set; }
public void AssignPlayer(PlayerInfo player)
{
@ -51,16 +52,16 @@ public class PlayerBox : MonoBehaviour
public void OnExitShip()
{
_planetIconOverride = false;
InfoImage.sprite = SpriteFromEnum(_planetIcon);
InfoImage.sprite = SpriteFromEnum(PlanetIcon);
}
public void UpdateIcon(HUDIcon icon)
{
_planetIcon = icon;
PlanetIcon = icon;
if (!_planetIconOverride)
{
InfoImage.sprite = SpriteFromEnum(_planetIcon);
InfoImage.sprite = SpriteFromEnum(PlanetIcon);
}
}

View File

@ -1,6 +1,7 @@
using Mirror;
using OWML.Common;
using QSB.ClientServerStateSync;
using QSB.HUD;
using QSB.Messaging;
using QSB.Utility;
@ -19,6 +20,7 @@ public class PlayerInformationMessage : QSBMessage
private ClientState ClientState;
private float FieldOfView;
private bool IsInShip;
private HUDIcon HUDIcon;
public PlayerInformationMessage()
{
@ -34,6 +36,7 @@ public class PlayerInformationMessage : QSBMessage
ClientState = player.State;
FieldOfView = PlayerData.GetGraphicSettings().fieldOfView;
IsInShip = player.IsInShip;
HUDIcon = player.HUDBox.PlanetIcon;
}
public override void Serialize(NetworkWriter writer)
@ -50,6 +53,7 @@ public class PlayerInformationMessage : QSBMessage
writer.Write(ClientState);
writer.Write(FieldOfView);
writer.Write(IsInShip);
writer.Write(HUDIcon);
}
public override void Deserialize(NetworkReader reader)
@ -66,6 +70,7 @@ public class PlayerInformationMessage : QSBMessage
ClientState = reader.Read<ClientState>();
FieldOfView = reader.ReadFloat();
IsInShip = reader.ReadBool();
HUDIcon = reader.Read<HUDIcon>();
}
public override void OnReceiveRemote()
@ -97,6 +102,7 @@ public class PlayerInformationMessage : QSBMessage
if (player.HUDBox != null)
{
player.HUDBox.PlayerName.text = PlayerName.ToUpper();
player.HUDBox.UpdateIcon(HUDIcon);
}
}
else