Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrawXmasTree()

void Terraria.GameContent.Drawing.TileDrawing.DrawXmasTree ( Vector2 screenPosition,
Vector2 screenOffset,
int tileX,
int tileY,
TileDrawInfo drawData )
inlineprivate

Definition at line 2847 of file TileDrawing.cs.

2848 {
2849 if (tileY - drawData.tileFrameY > 0 && drawData.tileFrameY == 7 && Main.tile[tileX, tileY - drawData.tileFrameY] != null)
2850 {
2851 drawData.tileTop -= 16 * drawData.tileFrameY;
2852 drawData.tileFrameX = Main.tile[tileX, tileY - drawData.tileFrameY].frameX;
2853 drawData.tileFrameY = Main.tile[tileX, tileY - drawData.tileFrameY].frameY;
2854 }
2855 if (drawData.tileFrameX < 10)
2856 {
2857 return;
2858 }
2859 int num = 0;
2860 if ((drawData.tileFrameY & 1) == 1)
2861 {
2862 num++;
2863 }
2864 if ((drawData.tileFrameY & 2) == 2)
2865 {
2866 num += 2;
2867 }
2868 if ((drawData.tileFrameY & 4) == 4)
2869 {
2870 num += 4;
2871 }
2872 int num2 = 0;
2873 if ((drawData.tileFrameY & 8) == 8)
2874 {
2875 num2++;
2876 }
2877 if ((drawData.tileFrameY & 0x10) == 16)
2878 {
2879 num2 += 2;
2880 }
2881 if ((drawData.tileFrameY & 0x20) == 32)
2882 {
2883 num2 += 4;
2884 }
2885 int num3 = 0;
2886 if ((drawData.tileFrameY & 0x40) == 64)
2887 {
2888 num3++;
2889 }
2890 if ((drawData.tileFrameY & 0x80) == 128)
2891 {
2892 num3 += 2;
2893 }
2894 if ((drawData.tileFrameY & 0x100) == 256)
2895 {
2896 num3 += 4;
2897 }
2898 if ((drawData.tileFrameY & 0x200) == 512)
2899 {
2900 num3 += 8;
2901 }
2902 int num4 = 0;
2903 if ((drawData.tileFrameY & 0x400) == 1024)
2904 {
2905 num4++;
2906 }
2907 if ((drawData.tileFrameY & 0x800) == 2048)
2908 {
2909 num4 += 2;
2910 }
2911 if ((drawData.tileFrameY & 0x1000) == 4096)
2912 {
2913 num4 += 4;
2914 }
2915 if ((drawData.tileFrameY & 0x2000) == 8192)
2916 {
2917 num4 += 8;
2918 }
2919 Color color = Lighting.GetColor(tileX + 1, tileY - 3);
2920 Main.spriteBatch.Draw(TextureAssets.XmasTree[0].Value, new Vector2((float)(tileX * 16 - (int)screenPosition.X) - ((float)drawData.tileWidth - 16f) / 2f, tileY * 16 - (int)screenPosition.Y + drawData.tileTop) + screenOffset, new Rectangle(0, 0, 64, 128), color, 0f, _zero, 1f, SpriteEffects.None, 0f);
2921 if (num > 0)
2922 {
2923 num--;
2924 Color color2 = color;
2925 if (num != 3)
2926 {
2927 color2 = new Color(255, 255, 255, 255);
2928 }
2929 Main.spriteBatch.Draw(TextureAssets.XmasTree[3].Value, new Vector2((float)(tileX * 16 - (int)screenPosition.X) - ((float)drawData.tileWidth - 16f) / 2f, tileY * 16 - (int)screenPosition.Y + drawData.tileTop) + screenOffset, new Rectangle(66 * num, 0, 64, 128), color2, 0f, _zero, 1f, SpriteEffects.None, 0f);
2930 }
2931 if (num2 > 0)
2932 {
2933 num2--;
2934 Main.spriteBatch.Draw(TextureAssets.XmasTree[1].Value, new Vector2((float)(tileX * 16 - (int)screenPosition.X) - ((float)drawData.tileWidth - 16f) / 2f, tileY * 16 - (int)screenPosition.Y + drawData.tileTop) + screenOffset, new Rectangle(66 * num2, 0, 64, 128), color, 0f, _zero, 1f, SpriteEffects.None, 0f);
2935 }
2936 if (num3 > 0)
2937 {
2938 num3--;
2939 Main.spriteBatch.Draw(TextureAssets.XmasTree[2].Value, new Vector2((float)(tileX * 16 - (int)screenPosition.X) - ((float)drawData.tileWidth - 16f) / 2f, tileY * 16 - (int)screenPosition.Y + drawData.tileTop) + screenOffset, new Rectangle(66 * num3, 0, 64, 128), color, 0f, _zero, 1f, SpriteEffects.None, 0f);
2940 }
2941 if (num4 > 0)
2942 {
2943 num4--;
2944 Main.spriteBatch.Draw(TextureAssets.XmasTree[4].Value, new Vector2((float)(tileX * 16 - (int)screenPosition.X) - ((float)drawData.tileWidth - 16f) / 2f, tileY * 16 - (int)screenPosition.Y + drawData.tileTop) + screenOffset, new Rectangle(66 * num4, 130 * Main.tileFrame[171], 64, 128), new Color(255, 255, 255, 255), 0f, _zero, 1f, SpriteEffects.None, 0f);
2945 }
2946 }

References Terraria.GameContent.Drawing.TileDrawing._zero, Microsoft.Xna.Framework.Graphics.Color, Terraria.Lighting.GetColor(), Terraria.Main.spriteBatch, Terraria.Main.tile, Terraria.Main.tileFrame, Microsoft.Xna.Framework.Vector2.X, Terraria.GameContent.TextureAssets.XmasTree, and Microsoft.Xna.Framework.Vector2.Y.

Referenced by Terraria.GameContent.Drawing.TileDrawing.DrawSingleTile().