Advertisement
PainKillerREX

Untitled

Feb 22nd, 2016
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.99 KB | None | 0 0
  1.         protected override void Update()
  2.         {
  3.             if(tileChunk == null)
  4.             {
  5.                 tileChunk = cutTile(tileSet, false);
  6.                 tileIsland = tileChunk[0];
  7.                 tileQuad = new Texture2D[5,4];
  8.                 for(int k = 1; k < tileChunk.Length; k++)
  9.                 {
  10.                     for (int l = 0; l < (tileChunk[k].Width + tileChunk[k].Height) / 16; l++)
  11.                     {
  12.                         tileQuad[k-1, l] = cutTile(tileChunk[k],true)[l];
  13.                     }
  14.                 }
  15.             }
  16.         }
  17.  
  18.         Color[] getImageData(Color[] colorData, int width, Rectangle rectangle)
  19.         {
  20.             var color = new Color[rectangle.Width * rectangle.Height];
  21.             for (int x = 0; x < rectangle.Width; x++)
  22.                 for (int y = 0; y < rectangle.Height; y++)
  23.                     color[x + y * rectangle.Width] = colorData[x + rectangle.X + (y + rectangle.Y) * width];
  24.             return color;
  25.         }
  26.  
  27.  
  28.         public Texture2D[] cutTile(Texture2D Tex, bool sizeIs16 = true)
  29.         {
  30.             int size;
  31.             if (sizeIs16) { size = 16; } else { size = 32; }
  32.             Texture2D[] _temp_texture = new Texture2D[(Tex.Width/size) * (Tex.Height/size)];
  33.  
  34.             Color[] imageData = new Color[Tex.Width * Tex.Height];
  35.             Tex.GetData<Color>(imageData);
  36.  
  37.             var k = 0;
  38.  
  39.             for (int i = 0; i < (Tex.Height / size); i++)
  40.             {
  41.                 for (int j = 0; j < (Tex.Width / size); j++)
  42.                 {
  43.                     var startRect = new Rectangle(j * size, i * size, size, size);
  44.                     var colorPiece = getImageData(imageData, Tex.Width, startRect);
  45.                     var subTexture = new Texture2D(GraphicsDevice, size, size);
  46.                     subTexture.SetData<Color>(colorPiece);
  47.  
  48.                     _temp_texture[k] = subTexture;
  49.                     k++;
  50.                 }
  51.             }
  52.             return _temp_texture;
  53.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement