예제 #1
0
 public void Draw(SpriteBatch spriteBatch, Coord offset, Dictionary <string, Texture2D> textureDict, MapDataPack dataPack)
 {
     if (isVisible)
     {
         if (isVertical)
         {
             Coord     ScreenPos  = offset + position;
             Rectangle rectangleA = new Rectangle((ScreenPos - new Coord(8, gap - 8)).ToPoint(), new Point(16, 64 - gap));
             Rectangle rectangle1 = new Rectangle(0, 0, 32, 64 - gap);
             int       doorText1  = SpruceContentManager.newTexture2D(textureDict[textureKey].Crop(rectangle1));
             Rectangle rectangleB = new Rectangle((ScreenPos - new Coord(8, 8 - gap)).ToPoint(), new Point(16, 64 - gap));
             Rectangle rectangle2 = new Rectangle(0, 0, 32, 64 - gap);
             int       doorText2  = SpruceContentManager.newTexture2D(textureDict[textureKey].Crop(rectangle2));
             spriteBatch.Draw(SpruceContentManager.get(doorText1), rectangleA, null, Color.White, MathHelper.Pi, new Coord(32, 0).ToVector2(), SpriteEffects.None, 0);
             spriteBatch.Draw(SpruceContentManager.get(doorText2), rectangleB, null, Color.White, 0, Vector2.Zero, SpriteEffects.None, 0);
         }
         else
         {
             Coord     ScreenPos  = offset + position;
             Rectangle rectangleA = new Rectangle((ScreenPos - new Coord(8 - gap, 8)).ToPoint(), new Point(16, 64 - gap));
             Rectangle rectangle1 = new Rectangle(0, 0, 32, 64 - gap);
             int       doorText1  = SpruceContentManager.newTexture2D(textureDict[textureKey].Crop(rectangle1));
             Rectangle rectangleB = new Rectangle((ScreenPos - new Coord(gap - 8, 8)).ToPoint(), new Point(16, 64 - gap));
             Rectangle rectangle2 = new Rectangle(0, 0, 32, 64 - gap);
             int       doorText2  = SpruceContentManager.newTexture2D(textureDict[textureKey].Crop(rectangle2));;
             spriteBatch.Draw(SpruceContentManager.get(doorText1), rectangleA, null, Color.White, MathHelper.Pi + MathHelper.PiOver2, new Coord(32, 0).ToVector2(), SpriteEffects.None, 0);
             spriteBatch.Draw(SpruceContentManager.get(doorText2), rectangleB, null, Color.White, MathHelper.PiOver2, Vector2.Zero, SpriteEffects.None, 0);
         }
     }
 }
예제 #2
0
 public void Draw(SpriteBatch spriteBatch, Coord position, GraphicsDevice graphicsDevice, Dictionary <string, Texture2D> textureDict, MapDataPack dataPack)
 {
     if (isVisible)
     {
         for (int y = 0; y < height; y++)
         {
             for (int x = 0; x < width; x++)
             {
                 tiles[x, y].Draw(spriteBatch, position + new Coord(x * 32, y * 32), dataPack.textureDict);//MB: Draws each tile, one by one
             }
         }
         foreach (Container container in containers)
         {
             container.Draw(spriteBatch, position, graphicsDevice, dataPack.textureDict);//MB: Draws each container in this room
         }
     }
 }