first commit
This commit is contained in:
47
NitroxServer/Serialization/World/PersistedWorldData.cs
Normal file
47
NitroxServer/Serialization/World/PersistedWorldData.cs
Normal file
@@ -0,0 +1,47 @@
|
||||
using System.Runtime.Serialization;
|
||||
using NitroxServer.GameLogic.Bases;
|
||||
using NitroxServer.GameLogic.Entities;
|
||||
using NitroxServer.GameLogic.Players;
|
||||
|
||||
namespace NitroxServer.Serialization.World
|
||||
{
|
||||
[DataContract]
|
||||
public class PersistedWorldData
|
||||
{
|
||||
[DataMember(Order = 1)]
|
||||
public WorldData WorldData { get; set; }
|
||||
|
||||
[DataMember(Order = 2)]
|
||||
public PlayerData PlayerData { get; set; }
|
||||
|
||||
[DataMember(Order = 3)]
|
||||
public GlobalRootData GlobalRootData { get; set; }
|
||||
|
||||
[DataMember(Order = 4)]
|
||||
public EntityData EntityData { get; set; }
|
||||
|
||||
public static PersistedWorldData From(World world)
|
||||
{
|
||||
return new PersistedWorldData
|
||||
{
|
||||
WorldData = new()
|
||||
{
|
||||
ParsedBatchCells = world.BatchEntitySpawner.SerializableParsedBatches,
|
||||
GameData = GameData.From(world.GameData.PDAState, world.GameData.StoryGoals, world.ScheduleKeeper, world.StoryManager, world.TimeKeeper),
|
||||
Seed = world.Seed,
|
||||
},
|
||||
PlayerData = PlayerData.From(world.PlayerManager.GetAllPlayers()),
|
||||
GlobalRootData = GlobalRootData.From(world.WorldEntityManager.GetPersistentGlobalRootEntities()),
|
||||
EntityData = EntityData.From(world.EntityRegistry.GetAllEntities(exceptGlobalRoot: true))
|
||||
};
|
||||
}
|
||||
|
||||
public bool IsValid()
|
||||
{
|
||||
return WorldData.IsValid() &&
|
||||
PlayerData != null &&
|
||||
GlobalRootData != null &&
|
||||
EntityData != null;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user