Ejemplo n.º 1
0
 public void RemoveEntity(IEntity entity)
 {
     EntityInfrastructureManager.RemoveEntity(entity);
 }
Ejemplo n.º 2
0
 public void AddEntity(IEntity entity)
 {
     EntityInfrastructureManager.AddEntity(entity);
 }
Ejemplo n.º 3
0
 public BaseSystem()
 {
     EntityInfrastructureManager.AddSystem(this);
 }
Ejemplo n.º 4
0
 public IEntity GetEntity(Guid id)
 {
     return(EntityInfrastructureManager.GetEntity(id));
 }
Ejemplo n.º 5
0
        public static void LoadGame(String pathToFolder, NamelessGame game)
        {
            {
                Type iStorageInterfaceType = typeof(IStorage <>);
                var  buffer   = File.ReadAllBytes("objectdata.nrs");
                var  saveFile = FlatBufferSerializer.Default.Parse <NamelessRogueSaveFile>(buffer);

                saveFile.ComponentTypeToStorge.Clear();
                saveFile.StoragesDictionary.Clear();
                saveFile.FillInfrastructureCollections();

                List <Entity> entities = new List <Entity>();
                foreach (var entityStorage in saveFile.EntityStorageTable)
                {
                    var entity = new Entity(new Guid(entityStorage.Id));
                    entities.Add(entity);
                }

                foreach (var typePair in saveFile.ComponentTypeToStorge)
                {
                    if (typePair.Key == typeof(Entity) || typePair.Key == typeof(IEntity))
                    {
                        continue;
                    }
                    var enumer = saveFile.StoragesDictionary[typePair.Value].GetEnumerator();

                    while (enumer.MoveNext())
                    {
                        var storage = enumer.Current;

                        Component component = (Component)typePair.Key.GetConstructor(Type.EmptyTypes).Invoke(null);

                        storage.FillTo(component.CastToReflected(typePair.Key));

                        EntityInfrastructureManager.AddComponent(component.ParentEntityId, component);
                    }
                }
            }

            {
                var      buffer   = File.ReadAllBytes("chunksmemory.nrs");
                var      saveFile = FlatBufferSerializer.Default.Parse <TimelineStorage>(buffer);
                TimeLine timeLine = new TimeLine();
                saveFile.FillTo(timeLine);

                timeLine.CurrentTimelineLayer.Chunks.WorldBoard = timeLine.CurrentTimelineLayer;
                //TO DO: serialize properly
                timeLine.CurrentTimelineLayer.Chunks.WorldSettings = game.WorldSettings;

                foreach (var chunk in timeLine.CurrentTimelineLayer.Chunks.Chunks)
                {
                    chunk.Value.ChunkContainer = timeLine.CurrentTimelineLayer.Chunks;
                }

                var entity = new Entity(timeLine.ParentEntityId);
                entity.AddComponent(timeLine);

                game.CameraEntity           = game.GetEntityByComponentClass <ConsoleCamera>();
                game.Commander              = game.GetEntityByComponentClass <Commander>().GetComponentOfType <Commander>();
                game.PlayerEntity           = game.GetEntityByComponentClass <Player>();
                game.TimelineEntity         = entity;
                game.CursorEntity           = game.GetEntityByComponentClass <Cursor>();
                game.FollowedByCameraEntity = game.GetEntityByComponentClass <FollowedByCamera>();
            }
        }