public static ConcealedGridsResponse FromBytes(byte[] bytes) { VRage.ByteStream stream = new VRage.ByteStream(bytes, bytes.Length); ConcealedGridsResponse response = new ConcealedGridsResponse(); ConcealableGrid grid; ushort count = stream.getUShort(); for (int i = 0; i < count; i++) { grid = new ConcealableGrid(); grid.RemoveFromByteStream(stream); response.ConcealedGrids.Add(grid); } return response; }
private void SaveBuilders() { String GridBuildersFileName = "build_list_test.txt"; List<MyObjectBuilder_CubeGrid> concealedGridBuilderList; HashSet<IMyEntity> allGrids = new HashSet<IMyEntity>(); MyAPIGateway.Entities.GetEntities(allGrids, (x) => x is IMyCubeGrid); /* concealedGridBuilderList = allGrids.Select(x => x.GetObjectBuilder() as MyObjectBuilder_CubeGrid).ToList(); Log.Trace("Trying to save pulled from world", "Save"); GardenGateway.Files.Overwrite( MyAPIGateway.Utilities. SerializeToXML<List<MyObjectBuilder_CubeGrid>>(concealedGridBuilderList), GridBuildersFileName ); Log.Trace("Finished saving pulled from world!!!", "Save"); */ // Fails //concealedGridBuilderList = // RevealedGrids.Select(kvp => kvp.Value.Builder).ToList(); /* concealedGridBuilderList = allGrids.Select((x) => { var concealable = new ConcealableGrid(); concealable.LoadFromCubeGrid(x) return x.GetObjectBuilder() as MyObjectBuilder_CubeGrid; }).ToList(); */ concealedGridBuilderList = allGrids.Select((x) => { IMyCubeGrid grid = x as IMyCubeGrid; //return x.GetObjectBuilder() as MyObjectBuilder_CubeGrid; //return grid.GetObjectBuilder() as MyObjectBuilder_CubeGrid; var concealable = new ConcealableGrid(); concealable.LoadFromCubeGrid(grid); //return concealable.IngameGrid.GetObjectBuilder() as MyObjectBuilder_CubeGrid; // /\ success return concealable.Builder; // \/ failure //return concealable.Builder; }).ToList(); GardenGateway.Files.Overwrite( MyAPIGateway.Utilities. SerializeToXML<List<MyObjectBuilder_CubeGrid>>(concealedGridBuilderList), "real_" + GridBuildersFileName ); /* List<MyObjectBuilder_EntityBase> concealedGridBuilderList = ConcealedGrids.Values.Select(x => x.Builder).ToList(); BuilderListHelper.Save(concealedGridBuilderList, GridBuildersFileName); * *//* if (!GardenGateway.Files.Exists(GridBuildersFileName)) { Log.Error("Error saving grid builders", "SaveBuilders"); } else { Log.Trace("Saved Builders", "SaveBuilders"); } * */ }
public void AddIngameEntity(IMyEntity entity) { Log.Trace("Adding entity " + entity.EntityId + " of type " + entity.GetType(), "AddIngameEntity"); if (entity.Transparent) { Log.Trace("It's Transparent, skipping", "AddIngameEntity"); return; } // TODO: Store other types of entities if (entity is IMyCubeGrid) { Log.Trace("It's a CubeGrid.", "AddIngameEntity"); IMyCubeGrid grid = entity as IMyCubeGrid; var revealedGrid = new ConcealableGrid(); revealedGrid.LoadFromCubeGrid(grid); RevealedGrids[grid.EntityId] = revealedGrid; } if (entity is IMyCharacter) { Log.Trace("It's a Character", "AddIngameEntity"); } if (entity is IMyCubeBlock) { Log.Trace("It's a CubeBlock", "AddIngameEntity"); } if (entity is IMyCubeBuilder) { Log.Trace("It's a CubeBuilder", "AddIngameEntity"); } }