public static void PutEntitiesToFile() { Level celesteLevel = Celeste.Celeste.Scene as Level; SolidTiles tiles = celesteLevel.SolidTiles; string readableTextures = "Center of all tiles (?): " + tiles.Center + "\n"; try { readableTextures += "Tile(s?) are at Position: " + tiles.Tiles.Position + " with tile (w, h): (" + tiles.Tiles.TileWidth + ", " + tiles.Tiles.TileHeight + ")\n"; System.Collections.Generic.IEnumerator <Component> enummer = tiles.GetEnumerator(); enummer.Reset(); for (int i = 0; i < 100000; i++) { enummer.MoveNext(); readableTextures += "Texture (?) at Position: " + enummer.Current.Entity.Position + " and Center: " + enummer.Current.Entity.Center + " has tag: " + enummer.Current.Entity.Tag + "\n"; } } catch (Exception) { readableTextures += "Enummer has completed!"; } /* * MTexture[,] textures = tiles.Tiles.Tiles.ToArray(); * string readableTextures = ""; * for (int i = 0; i < textures.Length; i++) * { * for (int j = 0; j < textures.Length; j++) * { * try * { * readableTextures += "Texture at: " + textures[i, j].Center + " looks like (as a string): " + textures[i, j].ToString() + "\n"; * } catch (IndexOutOfRangeException e) * { * readableTextures += "Texture at index: (" + i + ", " + j + ") is out of bounds!\n"; * } * } * * } */ string text = tiles.Tiles.ToString() + "\n"; text += tiles.Tiles.Tiles.GetSegment(1, 1).ToString() + "\n"; text += tiles.Tiles.Tiles.ToArray().ToString() + "\n"; MTexture[,] tileArray = tiles.Tiles.Tiles.ToArray(); System.Collections.IEnumerator enummer2 = tiles.Tiles.Tiles.ToArray().GetEnumerator(); enummer2.Reset(); string arrayText = ""; //System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\Celeste\tiles.txt", text); System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\Celeste\readableTextures.txt", readableTextures); //System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\Celeste\textures.txt", arrayText); EntityList entities = Celeste.Celeste.Scene.Entities;/*Tracker.GetEntities<Entity>();*/ Vector2 tileLocationUnderPlayer = GetTileUnderPlayer(); Vector2 tileLocationInFront = GetTileInFrontOfPlayer(); Player player = Celeste.Celeste.Scene.Tracker.GetEntity <Player>(); Vector2 playerPos = player.Position; string toWrite = "Tile under player does not exist! err: " + tileLocationUnderPlayer + " with player pos: " + playerPos; if (IsTile(tileLocationUnderPlayer)) { // This should be the tile X,Y under the player. Save to file. toWrite = "Tile under player has Center: " + GetXYCenterFromTile(tileLocationUnderPlayer) + " and Tile Loc: " + tileLocationUnderPlayer; toWrite += "\nWith Player pos: " + playerPos; } if (IsTile(tileLocationInFront)) { toWrite += "\nTile in front of player has Center: " + GetXYCenterFromTile(tileLocationInFront) + " and Tile Loc: " + tileLocationInFront; toWrite += "\nWith Player facing: " + (player.Facing == (Facings)1 ? "Right" : "Left"); } else { toWrite += "\nTile in front of player does not exist! err: " + tileLocationInFront + " with player pos: " + playerPos + " facing: " + (player.Facing == (Facings)1 ? "Right" : "Left"); } System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\Celeste\info.txt", toWrite); string text2 = ""; string readableText = ""; for (int i = 0; i < entities.Count; i++) { text += entities[i].ToString() + "\n"; readableText += "Entity at Position: " + entities[i].Position + " and Center: " + entities[i].Center + " has tag: " + entities[i].Tag + "\n"; } System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\Celeste\entities.txt", text2); System.IO.File.WriteAllText(@"C:\Program Files (x86)\Steam\steamapps\common\Celeste\readableEntities.txt", readableText); }