Terraria.Lighting.GetColor4Slice C# (CSharp) Method

GetColor4Slice() public static method

public static GetColor4Slice ( int centerX, int centerY, Color &slices ) : void
centerX int
centerY int
slices Color
return void
        public static void GetColor4Slice(int centerX, int centerY, ref Color[] slices)
        {
            int index1 = centerX - Lighting.firstTileX + Lighting.offScreenTiles;
            int index2 = centerY - Lighting.firstTileY + Lighting.offScreenTiles;
            if (index1 <= 0 || index2 <= 0 || (index1 >= Main.screenWidth / 16 + Lighting.offScreenTiles * 2 + 10 - 1 || index2 >= Main.screenHeight / 16 + Lighting.offScreenTiles * 2 - 1))
            {
                for (int index3 = 0; index3 < 4; ++index3)
                    slices[index3] = Color.Black;
            }
            else
            {
                Lighting.LightingState lightingState1 = Lighting.states[index1][index2 - 1];
                Lighting.LightingState lightingState2 = Lighting.states[index1][index2 + 1];
                Lighting.LightingState lightingState3 = Lighting.states[index1 - 1][index2];
                Lighting.LightingState lightingState4 = Lighting.states[index1 + 1][index2];
                float num1 = lightingState1.r + lightingState1.g + lightingState1.b;
                float num2 = lightingState2.r + lightingState2.g + lightingState2.b;
                float num3 = lightingState4.r + lightingState4.g + lightingState4.b;
                float num4 = lightingState3.r + lightingState3.g + lightingState3.b;
                if ((double)num1 >= (double)num4)
                {
                    int num5 = (int)((double)byte.MaxValue * (double)lightingState3.r * (double)Lighting.brightness);
                    int num6 = (int)((double)byte.MaxValue * (double)lightingState3.g * (double)Lighting.brightness);
                    int num7 = (int)((double)byte.MaxValue * (double)lightingState3.b * (double)Lighting.brightness);
                    if (num5 > (int)byte.MaxValue)
                        num5 = (int)byte.MaxValue;
                    if (num6 > (int)byte.MaxValue)
                        num6 = (int)byte.MaxValue;
                    if (num7 > (int)byte.MaxValue)
                        num7 = (int)byte.MaxValue;
                    slices[0] = new Color((int)(byte)num5, (int)(byte)num6, (int)(byte)num7, (int)byte.MaxValue);
                }
                else
                {
                    int num5 = (int)((double)byte.MaxValue * (double)lightingState1.r * (double)Lighting.brightness);
                    int num6 = (int)((double)byte.MaxValue * (double)lightingState1.g * (double)Lighting.brightness);
                    int num7 = (int)((double)byte.MaxValue * (double)lightingState1.b * (double)Lighting.brightness);
                    if (num5 > (int)byte.MaxValue)
                        num5 = (int)byte.MaxValue;
                    if (num6 > (int)byte.MaxValue)
                        num6 = (int)byte.MaxValue;
                    if (num7 > (int)byte.MaxValue)
                        num7 = (int)byte.MaxValue;
                    slices[0] = new Color((int)(byte)num5, (int)(byte)num6, (int)(byte)num7, (int)byte.MaxValue);
                }
                if ((double)num1 >= (double)num3)
                {
                    int num5 = (int)((double)byte.MaxValue * (double)lightingState4.r * (double)Lighting.brightness);
                    int num6 = (int)((double)byte.MaxValue * (double)lightingState4.g * (double)Lighting.brightness);
                    int num7 = (int)((double)byte.MaxValue * (double)lightingState4.b * (double)Lighting.brightness);
                    if (num5 > (int)byte.MaxValue)
                        num5 = (int)byte.MaxValue;
                    if (num6 > (int)byte.MaxValue)
                        num6 = (int)byte.MaxValue;
                    if (num7 > (int)byte.MaxValue)
                        num7 = (int)byte.MaxValue;
                    slices[1] = new Color((int)(byte)num5, (int)(byte)num6, (int)(byte)num7, (int)byte.MaxValue);
                }
                else
                {
                    int num5 = (int)((double)byte.MaxValue * (double)lightingState1.r * (double)Lighting.brightness);
                    int num6 = (int)((double)byte.MaxValue * (double)lightingState1.g * (double)Lighting.brightness);
                    int num7 = (int)((double)byte.MaxValue * (double)lightingState1.b * (double)Lighting.brightness);
                    if (num5 > (int)byte.MaxValue)
                        num5 = (int)byte.MaxValue;
                    if (num6 > (int)byte.MaxValue)
                        num6 = (int)byte.MaxValue;
                    if (num7 > (int)byte.MaxValue)
                        num7 = (int)byte.MaxValue;
                    slices[1] = new Color((int)(byte)num5, (int)(byte)num6, (int)(byte)num7, (int)byte.MaxValue);
                }
                if ((double)num2 >= (double)num4)
                {
                    int num5 = (int)((double)byte.MaxValue * (double)lightingState3.r * (double)Lighting.brightness);
                    int num6 = (int)((double)byte.MaxValue * (double)lightingState3.g * (double)Lighting.brightness);
                    int num7 = (int)((double)byte.MaxValue * (double)lightingState3.b * (double)Lighting.brightness);
                    if (num5 > (int)byte.MaxValue)
                        num5 = (int)byte.MaxValue;
                    if (num6 > (int)byte.MaxValue)
                        num6 = (int)byte.MaxValue;
                    if (num7 > (int)byte.MaxValue)
                        num7 = (int)byte.MaxValue;
                    slices[2] = new Color((int)(byte)num5, (int)(byte)num6, (int)(byte)num7, (int)byte.MaxValue);
                }
                else
                {
                    int num5 = (int)((double)byte.MaxValue * (double)lightingState2.r * (double)Lighting.brightness);
                    int num6 = (int)((double)byte.MaxValue * (double)lightingState2.g * (double)Lighting.brightness);
                    int num7 = (int)((double)byte.MaxValue * (double)lightingState2.b * (double)Lighting.brightness);
                    if (num5 > (int)byte.MaxValue)
                        num5 = (int)byte.MaxValue;
                    if (num6 > (int)byte.MaxValue)
                        num6 = (int)byte.MaxValue;
                    if (num7 > (int)byte.MaxValue)
                        num7 = (int)byte.MaxValue;
                    slices[2] = new Color((int)(byte)num5, (int)(byte)num6, (int)(byte)num7, (int)byte.MaxValue);
                }
                if ((double)num2 >= (double)num3)
                {
                    int num5 = (int)((double)byte.MaxValue * (double)lightingState4.r * (double)Lighting.brightness);
                    int num6 = (int)((double)byte.MaxValue * (double)lightingState4.g * (double)Lighting.brightness);
                    int num7 = (int)((double)byte.MaxValue * (double)lightingState4.b * (double)Lighting.brightness);
                    if (num5 > (int)byte.MaxValue)
                        num5 = (int)byte.MaxValue;
                    if (num6 > (int)byte.MaxValue)
                        num6 = (int)byte.MaxValue;
                    if (num7 > (int)byte.MaxValue)
                        num7 = (int)byte.MaxValue;
                    slices[3] = new Color((int)(byte)num5, (int)(byte)num6, (int)(byte)num7, (int)byte.MaxValue);
                }
                else
                {
                    int num5 = (int)((double)byte.MaxValue * (double)lightingState2.r * (double)Lighting.brightness);
                    int num6 = (int)((double)byte.MaxValue * (double)lightingState2.g * (double)Lighting.brightness);
                    int num7 = (int)((double)byte.MaxValue * (double)lightingState2.b * (double)Lighting.brightness);
                    if (num5 > (int)byte.MaxValue)
                        num5 = (int)byte.MaxValue;
                    if (num6 > (int)byte.MaxValue)
                        num6 = (int)byte.MaxValue;
                    if (num7 > (int)byte.MaxValue)
                        num7 = (int)byte.MaxValue;
                    slices[3] = new Color((int)(byte)num5, (int)(byte)num6, (int)(byte)num7, (int)byte.MaxValue);
                }
            }
        }