first commit
This commit is contained in:
50
NitroxModel/DataStructures/GameLogic/Entity.cs
Normal file
50
NitroxModel/DataStructures/GameLogic/Entity.cs
Normal file
@@ -0,0 +1,50 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.Serialization;
|
||||
using BinaryPack.Attributes;
|
||||
using NitroxModel.DataStructures.GameLogic.Entities;
|
||||
using NitroxModel.DataStructures.GameLogic.Entities.Bases;
|
||||
using NitroxModel.DataStructures.GameLogic.Entities.Metadata;
|
||||
using ProtoBufNet;
|
||||
|
||||
namespace NitroxModel.DataStructures.GameLogic
|
||||
{
|
||||
[Serializable]
|
||||
[DataContract]
|
||||
[ProtoInclude(50, typeof(PrefabChildEntity))]
|
||||
[ProtoInclude(51, typeof(InventoryEntity))]
|
||||
[ProtoInclude(52, typeof(InventoryItemEntity))]
|
||||
[ProtoInclude(53, typeof(PathBasedChildEntity))]
|
||||
[ProtoInclude(54, typeof(InstalledBatteryEntity))]
|
||||
[ProtoInclude(55, typeof(InstalledModuleEntity))]
|
||||
[ProtoInclude(56, typeof(WorldEntity))]
|
||||
[ProtoInclude(57, typeof(BaseLeakEntity))]
|
||||
public abstract class Entity
|
||||
{
|
||||
[DataMember(Order = 1)]
|
||||
public NitroxId Id { get; set; }
|
||||
|
||||
[DataMember(Order = 2)]
|
||||
public NitroxTechType TechType { get; set; }
|
||||
|
||||
[DataMember(Order = 3)]
|
||||
public EntityMetadata Metadata { get; set; }
|
||||
|
||||
[DataMember(Order = 4)]
|
||||
public NitroxId ParentId { get; set; }
|
||||
|
||||
[DataMember(Order = 5)]
|
||||
public List<Entity> ChildEntities { get; set; } = [];
|
||||
|
||||
[IgnoreConstructor]
|
||||
protected Entity()
|
||||
{
|
||||
// Constructor for serialization. Has to be "protected" for json serialization.
|
||||
}
|
||||
|
||||
public override string ToString()
|
||||
{
|
||||
return $"[Entity id: {Id} techType: {TechType} Metadata: {Metadata} ParentId: {ParentId} ChildEntities: {string.Join(",\n ", ChildEntities)}]";
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user