using System; using System.Collections.Generic; using NitroxModel.DataStructures; using NitroxModel.DataStructures.GameLogic; using NitroxModel.DataStructures.GameLogic.Bases; namespace NitroxModel.Packets; [Serializable] public sealed class UpdateBase : OrderedBuildPacket { public NitroxId BaseId { get; } public NitroxId FormerGhostId { get; } public BaseData BaseData { get; set; } public Entity BuiltPieceEntity { get; set; } public Dictionary UpdatedChildren { get; set; } public Dictionary UpdatedMoonpools { get; set; } public Dictionary UpdatedMapRooms { get; set; } public (NitroxId, NitroxId) ChildrenTransfer { get; } public UpdateBase(NitroxId baseId, NitroxId formerGhostId, BaseData baseData, Entity builtPieceEntity, Dictionary updatedChildren, Dictionary updatedMoonpools, Dictionary updatedMapRooms, (NitroxId, NitroxId) childrenTransfer, int operationId) : base(operationId) { BaseId = baseId; FormerGhostId = formerGhostId; BaseData = baseData; BuiltPieceEntity = builtPieceEntity; UpdatedChildren = updatedChildren; UpdatedMoonpools = updatedMoonpools; UpdatedMapRooms = updatedMapRooms; ChildrenTransfer = childrenTransfer; } public void Deflate() { BaseData = null; BuiltPieceEntity = null; UpdatedChildren = null; UpdatedMoonpools = null; UpdatedMapRooms = null; } }