コード例 #1
0
ファイル: Manager.cs プロジェクト: sc2ad/CelesteBot
        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);
        }