Beispiel #1
0
 public virtual void Apply(Player player, DrawData?drawData = null)
 {
     if (this._shaderDisabled)
     {
         return;
     }
     this.Shader.Parameters["uColor"].SetValue(this._uColor);
     this.Shader.Parameters["uSaturation"].SetValue(this._uSaturation);
     this.Shader.Parameters["uSecondaryColor"].SetValue(this._uSecondaryColor);
     this.Shader.Parameters["uTime"].SetValue(Main.GlobalTimeWrappedHourly);
     this.Shader.Parameters["uOpacity"].SetValue(this._uOpacity);
     this.Shader.Parameters["uTargetPosition"].SetValue(this._uTargetPosition);
     if (drawData.HasValue)
     {
         DrawData drawData1 = drawData.Value;
         this.Shader.Parameters["uSourceRect"].SetValue(new Vector4((float)drawData1.sourceRect.Value.X, (float)drawData1.sourceRect.Value.Y, (float)drawData1.sourceRect.Value.Width, (float)drawData1.sourceRect.Value.Height));
         this.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + drawData1.position);
         this.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)drawData1.texture.Width, (float)drawData1.texture.Height));
     }
     else
     {
         this.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0.0f, 0.0f, 4f, 4f));
     }
     if (this._uImage != null)
     {
         Main.graphics.GraphicsDevice.Textures[1] = (Texture)this._uImage.Value;
         this.Shader.Parameters["uImageSize1"].SetValue(new Vector2((float)this._uImage.Width(), (float)this._uImage.Height()));
     }
     if (player != null)
     {
         this.Shader.Parameters["uDirection"].SetValue((float)player.direction);
     }
     this.Apply();
 }
Beispiel #2
0
 public virtual void Apply(DrawData?drawData = null)
 {
     base.Shader.Parameters["uColor"].SetValue(this._uColor);
     base.Shader.Parameters["uSaturation"].SetValue(this._uSaturation);
     base.Shader.Parameters["uSecondaryColor"].SetValue(this._uSecondaryColor);
     base.Shader.Parameters["uTime"].SetValue(Main.GlobalTime);
     base.Shader.Parameters["uOpacity"].SetValue(this._uOpacity);
     if (drawData.HasValue)
     {
         DrawData  value      = drawData.Value;
         Vector4   zero       = Vector4.Zero;
         Rectangle?sourceRect = drawData.Value.sourceRect;
         if (sourceRect.HasValue)
         {
             zero = new Vector4((float)value.sourceRect.Value.X, (float)value.sourceRect.Value.Y, (float)value.sourceRect.Value.Width, (float)value.sourceRect.Value.Height);
         }
         base.Shader.Parameters["uSourceRect"].SetValue(zero);
         base.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position);
         base.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)value.texture.Width, (float)value.texture.Height));
     }
     else
     {
         base.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0f, 0f, 4f, 4f));
     }
     if (this._uImage != null)
     {
         Main.graphics.GraphicsDevice.Textures[1] = this._uImage.Value;
         base.Shader.Parameters["uImageSize1"].SetValue(new Vector2((float)this._uImage.Value.Width, (float)this._uImage.Value.Height));
     }
     base.Apply();
 }
Beispiel #3
0
        public override void PreApply(Entity e, DrawData?drawData)
        {
            Player player = e as Player;

            if (player == null)
            {
                return;
            }

            //Color darkens to secondary
            Color newColor = default(Color);

            newColor.R = (byte)((float)player.statLife / player.statLifeMax2 * Primary.R);
            newColor.B = (byte)((float)player.statLife / player.statLifeMax2 * Primary.B);
            newColor.G = (byte)((float)player.statLife / player.statLifeMax2 * Primary.G);
            if (newColor.R < Secondary.R)
            {
                newColor.R = Secondary.R;
            }
            if (newColor.B < Secondary.B)
            {
                newColor.B = Secondary.B;
            }
            if (newColor.G < Secondary.G)
            {
                newColor.G = Secondary.G;
            }
            UseColor(newColor);
        }
 public virtual void Apply(Player player, DrawData?drawData = null)
 {
     if (!_shaderDisabled)
     {
         _shader.Parameters["uColor"].SetValue(_uColor);
         _shader.Parameters["uSaturation"].SetValue(_uSaturation);
         _shader.Parameters["uSecondaryColor"].SetValue(_uSecondaryColor);
         _shader.Parameters["uTime"].SetValue(Main.GlobalTime);
         _shader.Parameters["uOpacity"].SetValue(_uOpacity);
         if (drawData.HasValue)
         {
             DrawData value  = drawData.Value;
             Vector4  value2 = new Vector4(value.sourceRect.Value.X, value.sourceRect.Value.Y, value.sourceRect.Value.Width, value.sourceRect.Value.Height);
             _shader.Parameters["uSourceRect"].SetValue(value2);
             _shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position);
             _shader.Parameters["uImageSize0"].SetValue(new Vector2(value.texture.Width, value.texture.Height));
         }
         else
         {
             _shader.Parameters["uSourceRect"].SetValue(new Vector4(0f, 0f, 4f, 4f));
         }
         if (_uImage != null)
         {
             Main.graphics.GraphicsDevice.Textures[1] = _uImage.Value;
             _shader.Parameters["uImageSize1"].SetValue(new Vector2(_uImage.Value.Width, _uImage.Value.Height));
         }
         if (player != null)
         {
             _shader.Parameters["uDirection"].SetValue((float)player.direction);
         }
         Apply();
     }
 }
 public virtual void Apply(Entity entity, DrawData?drawData = null)
 {
     this.Shader.Parameters["uColor"].SetValue(this._uColor);
     this.Shader.Parameters["uSaturation"].SetValue(this._uSaturation);
     this.Shader.Parameters["uSecondaryColor"].SetValue(this._uSecondaryColor);
     this.Shader.Parameters["uTime"].SetValue(Main.GlobalTime);
     this.Shader.Parameters["uOpacity"].SetValue(this._uOpacity);
     if (drawData.HasValue)
     {
         DrawData drawData1 = drawData.Value;
         this.Shader.Parameters["uSourceRect"].SetValue(!drawData1.sourceRect.HasValue ? new Vector4(0.0f, 0.0f, (float)drawData1.texture.Width, (float)drawData1.texture.Height) : new Vector4((float)drawData1.sourceRect.Value.X, (float)drawData1.sourceRect.Value.Y, (float)drawData1.sourceRect.Value.Width, (float)drawData1.sourceRect.Value.Height));
         this.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + drawData1.position);
         this.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)drawData1.texture.Width, (float)drawData1.texture.Height));
         this.Shader.Parameters["uRotation"].SetValue(drawData1.rotation * (drawData1.effect.HasFlag((Enum)SpriteEffects.FlipHorizontally) ? -1f : 1f));
         this.Shader.Parameters["uDirection"].SetValue(drawData1.effect.HasFlag((Enum)SpriteEffects.FlipHorizontally) ? -1 : 1);
     }
     else
     {
         this.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0.0f, 0.0f, 4f, 4f));
         this.Shader.Parameters["uRotation"].SetValue(0.0f);
     }
     if (this._uImage != null)
     {
         Main.graphics.GraphicsDevice.Textures[1] = (Texture)this._uImage.Value;
         this.Shader.Parameters["uImageSize1"].SetValue(new Vector2((float)this._uImage.Value.Width, (float)this._uImage.Value.Height));
     }
     if (entity != null)
     {
         this.Shader.Parameters["uDirection"].SetValue((float)entity.direction);
     }
     this.Apply();
 }
 public virtual void Apply(DrawData?drawData = null)
 {
     this.Shader.Parameters["uColor"].SetValue(this._uColor);
     this.Shader.Parameters["uSaturation"].SetValue(this._uSaturation);
     this.Shader.Parameters["uSecondaryColor"].SetValue(this._uSecondaryColor);
     this.Shader.Parameters["uTime"].SetValue(Main.GlobalTime);
     this.Shader.Parameters["uOpacity"].SetValue(this._uOpacity);
     if (drawData.HasValue)
     {
         DrawData drawData1 = drawData.Value;
         Vector4  vector4   = Vector4.Zero;
         if (drawData.Value.sourceRect.HasValue)
         {
             vector4 = new Vector4((float)drawData1.sourceRect.Value.X, (float)drawData1.sourceRect.Value.Y, (float)drawData1.sourceRect.Value.Width, (float)drawData1.sourceRect.Value.Height);
         }
         this.Shader.Parameters["uSourceRect"].SetValue(vector4);
         this.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + drawData1.position);
         this.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)drawData1.texture.Width, (float)drawData1.texture.Height));
     }
     else
     {
         this.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0.0f, 0.0f, 4f, 4f));
     }
     if (this._uImage != null)
     {
         Main.graphics.GraphicsDevice.Textures[1] = (Texture)this._uImage.Value;
         this.Shader.Parameters["uImageSize1"].SetValue(new Vector2((float)this._uImage.Value.Width, (float)this._uImage.Value.Height));
     }
     this.Apply();
 }
 public virtual void Apply(Entity entity, DrawData?drawData = null)
 {
     _shader.Parameters["uColor"].SetValue(_uColor);
     _shader.Parameters["uSaturation"].SetValue(_uSaturation);
     _shader.Parameters["uSecondaryColor"].SetValue(_uSecondaryColor);
     _shader.Parameters["uTime"].SetValue(Main.GlobalTime);
     _shader.Parameters["uOpacity"].SetValue(_uOpacity);
     if (drawData.HasValue)
     {
         DrawData value  = drawData.Value;
         Vector4  value2 = value.sourceRect.HasValue ? new Vector4(value.sourceRect.Value.X, value.sourceRect.Value.Y, value.sourceRect.Value.Width, value.sourceRect.Value.Height) : new Vector4(0f, 0f, value.texture.Width, value.texture.Height);
         _shader.Parameters["uSourceRect"].SetValue(value2);
         _shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position);
         _shader.Parameters["uImageSize0"].SetValue(new Vector2(value.texture.Width, value.texture.Height));
         _shader.Parameters["uRotation"].SetValue(value.rotation * (value.effect.HasFlag(SpriteEffects.FlipHorizontally) ? (-1f) : 1f));
         _shader.Parameters["uDirection"].SetValue((!value.effect.HasFlag(SpriteEffects.FlipHorizontally)) ? 1 : (-1));
     }
     else
     {
         _shader.Parameters["uSourceRect"].SetValue(new Vector4(0f, 0f, 4f, 4f));
         _shader.Parameters["uRotation"].SetValue(0f);
     }
     if (_uImage != null)
     {
         Main.graphics.GraphicsDevice.Textures[1] = _uImage.Value;
         _shader.Parameters["uImageSize1"].SetValue(new Vector2(_uImage.Value.Width, _uImage.Value.Height));
     }
     if (entity != null)
     {
         _shader.Parameters["uDirection"].SetValue((float)entity.direction);
     }
     Apply();
 }
Beispiel #8
0
 public virtual void Apply(DrawData?drawData = null)
 {
     this.Shader.get_Parameters().get_Item("uColor").SetValue(this._uColor);
     this.Shader.get_Parameters().get_Item("uSaturation").SetValue(this._uSaturation);
     this.Shader.get_Parameters().get_Item("uSecondaryColor").SetValue(this._uSecondaryColor);
     this.Shader.get_Parameters().get_Item("uTime").SetValue(Main.GlobalTime);
     this.Shader.get_Parameters().get_Item("uOpacity").SetValue(this._uOpacity);
     if (drawData.HasValue)
     {
         DrawData drawData1 = drawData.Value;
         Vector4  zero      = Vector4.get_Zero();
         if (drawData.Value.sourceRect.HasValue)
         {
             // ISSUE: explicit reference operation
             ((Vector4)@zero).\u002Ector((float)drawData1.sourceRect.Value.X, (float)drawData1.sourceRect.Value.Y, (float)drawData1.sourceRect.Value.Width, (float)drawData1.sourceRect.Value.Height);
         }
         this.Shader.get_Parameters().get_Item("uSourceRect").SetValue(zero);
         this.Shader.get_Parameters().get_Item("uWorldPosition").SetValue(Vector2.op_Addition(Main.screenPosition, drawData1.position));
         this.Shader.get_Parameters().get_Item("uImageSize0").SetValue(new Vector2((float)drawData1.texture.get_Width(), (float)drawData1.texture.get_Height()));
     }
     else
     {
         this.Shader.get_Parameters().get_Item("uSourceRect").SetValue(new Vector4(0.0f, 0.0f, 4f, 4f));
     }
     if (this._uImage != null)
     {
         Main.graphics.get_GraphicsDevice().get_Textures().set_Item(1, (Texture)this._uImage.Value);
         this.Shader.get_Parameters().get_Item("uImageSize1").SetValue(new Vector2((float)this._uImage.Value.get_Width(), (float)this._uImage.Value.get_Height()));
     }
     this.Apply();
 }
Beispiel #9
0
 public override void Apply(Player player, DrawData?drawData = null)
 {
     if (drawData.HasValue)
     {
         this.UseTargetPosition(Main.screenPosition + drawData.Value.position);
     }
     base.Apply(player, drawData);
 }
 public override void PreApply(Entity e, DrawData?drawData)
 {
     if (isRainbow)
     {
         Vector3 f = new Vector3(((float)Main.DiscoR / 255) + 0.3f, ((float)Main.DiscoG / 255) + 0.3f, ((float)Main.DiscoB / 255) + 0.3f);
         UseColor(f);
     }
 }
Beispiel #11
0
        public override void PreApply(Entity entity, DrawData?drawData)
        {
            if (entity == null)
            {
                return;
            }

            Color   newColor = default(Color);
            float   num      = (float)(Main.worldSurface * 0.45) * 16f;
            float   num2     = (float)(Main.worldSurface + Main.rockLayer) * 8f;
            float   num3     = (float)(Main.rockLayer + Main.maxTilesY) * 8f;
            float   num4     = (Main.maxTilesY - 150) * 16f;
            Vector2 center   = entity.Center;

            if (center.Y < num)
            {
                float num5 = center.Y / num;
                float num6 = 1f - num5;
                newColor.R = ((byte)(116f * num6 + 28f * num5));
                newColor.G = ((byte)(160f * num6 + 216f * num5));
                newColor.B = ((byte)(249f * num6 + 94f * num5));
            }
            else if (center.Y < num2)
            {
                float num7 = num;
                float num8 = (center.Y - num7) / (num2 - num7);
                float num9 = 1f - num8;
                newColor.R = ((byte)(28f * num9 + 151f * num8));
                newColor.G = ((byte)(216f * num9 + 107f * num8));
                newColor.B = ((byte)(94f * num9 + 75f * num8));
            }
            else if (center.Y < num3)
            {
                float num10 = num2;
                float num11 = (center.Y - num10) / (num3 - num10);
                float num12 = 1f - num11;
                newColor.R = ((byte)(151f * num12 + 128f * num11));
                newColor.G = ((byte)(107f * num12 + 128f * num11));
                newColor.B = ((byte)(75f * num12 + 128f * num11));
            }
            else if (center.Y < num4)
            {
                float num13 = num3;
                float num14 = (center.Y - num13) / (num4 - num13);
                float num15 = 1f - num14;
                newColor.R = ((byte)(128f * num15 + 255f * num14));
                newColor.G = ((byte)(128f * num15 + 50f * num14));
                newColor.B = ((byte)(128f * num15 + 15f * num14));
            }
            else
            {
                newColor.R = (255);
                newColor.G = (50);
                newColor.B = (10);
            }
            Primary = newColor;
        }
Beispiel #12
0
 // Token: 0x06000D8A RID: 3466 RVA: 0x003E5584 File Offset: 0x003E3784
 public void ApplySecondary(int shaderId, Entity entity, DrawData?drawData = null)
 {
     if (shaderId != 0 && shaderId <= this._shaderDataCount)
     {
         this._shaderData[shaderId - 1].GetSecondaryShader(entity).Apply(entity, drawData);
         return;
     }
     Main.pixelShader.CurrentTechnique.Passes[0].Apply();
 }
Beispiel #13
0
 // Token: 0x06000D90 RID: 3472 RVA: 0x003E4BF1 File Offset: 0x003E2DF1
 public void Apply(short shaderId, Player player, DrawData?drawData = null)
 {
     if (shaderId != 0 && shaderId <= (short)this._shaderDataCount)
     {
         this._shaderData[(int)(shaderId - 1)].Apply(player, drawData);
         return;
     }
     Main.pixelShader.CurrentTechnique.Passes[0].Apply();
 }
Beispiel #14
0
        public override void PreApply(Entity e, DrawData?drawData)
        {
            Color newColor = default(Color);
            Color color    = Lighting.GetColor((int)(e.position.X + e.width * 0.5) / 16, (int)((e.position.Y + e.height * 0.25) / 16.0));

            newColor.R = ((byte)(color.R + newColor.R >> 1));
            newColor.G = ((byte)(color.G + newColor.G >> 1));
            newColor.B = ((byte)(color.B + newColor.B >> 1));
            Primary    = newColor;
        }
        /// <summary>
        /// Applies a shader for the provided WoMDNPC. Possible results are the Painted, SprayPainted, and PaintedNegative shaders.
        /// </summary>
        /// <param name="globalNpc"></param>
        /// <param name="drawData">This is necessary for the SprayPainted shader to work</param>
        /// <returns></returns>
        public static MiscShaderData applyShader(WoMDNPC globalNpc, PaintData data, DrawData?drawData = null)
        {
            MiscShaderData shader = getShader(globalNpc, data, out bool needsDrawData);

            if (shader != null)
            {
                shader.Apply(needsDrawData ? drawData : null);
            }
            return(shader);
        }
Beispiel #16
0
 public void ApplySecondary(int shaderId, Entity entity, DrawData?drawData = null)
 {
     if (shaderId >= 1 && shaderId <= _shaderDataCount)
     {
         _shaderData[shaderId - 1].GetSecondaryShader(entity).Apply(entity, drawData);
     }
     else
     {
         Main.pixelShader.CurrentTechnique.Passes[0].Apply();
     }
 }
Beispiel #17
0
 public void Apply(short shaderId, Player player, DrawData?drawData = null)
 {
     if (shaderId != (short)0 && (int)shaderId <= (int)this._shaderDataCount)
     {
         this._shaderData[(int)shaderId - 1].Apply(player, drawData);
     }
     else
     {
         Main.pixelShader.CurrentTechnique.Passes[0].Apply();
     }
 }
Beispiel #18
0
 public void Apply(short shaderId, Player player, DrawData?drawData = null)
 {
     if ((int)shaderId != 0 && (int)shaderId <= (int)this._shaderDataCount)
     {
         this._shaderData[(int)shaderId - 1].Apply(player, drawData);
     }
     else
     {
         Main.pixelShader.get_CurrentTechnique().get_Passes().get_Item(0).Apply();
     }
 }
Beispiel #19
0
 public void Apply(int shaderId, Entity entity, DrawData?drawData = null)
 {
     if (shaderId != 0 && shaderId <= this._shaderDataCount)
     {
         this._shaderData[shaderId - 1].Apply(entity, drawData);
     }
     else
     {
         Main.pixelShader.CurrentTechnique.Passes[0].Apply();
     }
 }
Beispiel #20
0
 public void ApplySecondary(int shaderId, Entity entity, DrawData?drawData = null)
 {
     if (shaderId != 0 && shaderId <= this._shaderDataCount)
     {
         this._shaderData[shaderId - 1].GetSecondaryShader(entity).Apply(entity, drawData);
     }
     else
     {
         Main.pixelShader.get_CurrentTechnique().get_Passes().get_Item(0).Apply();
     }
 }
        private void InitGunAnimDrawLayers()
        {
            this.GunAnimDrawLayer = new PlayerLayer("TheMadRanger", "Custom Gun Animation", (plrDrawInfo) => {
                Main.playerDrawData.Add(this.GetGunAnimationDrawData(plrDrawInfo));

                DrawData?drawData = this.GetReloadDrawData(plrDrawInfo);
                if (drawData.HasValue)
                {
                    Main.playerDrawData.Add(drawData.Value);
                }
            });
        }
Beispiel #22
0
        // Token: 0x06000F70 RID: 3952 RVA: 0x003F501C File Offset: 0x003F321C
        public override void Apply(Entity entity, DrawData?drawData)
        {
            Player player = entity as Player;

            if (player == null || player.team == 0)
            {
                TeamArmorShaderData.dustShaderData[0].Apply(player, drawData);
                return;
            }
            base.UseColor(Main.teamColor[player.team]);
            base.Apply(player, drawData);
        }
 public override void Apply(Entity entity, DrawData?drawData)
 {
     if (entity == null)
     {
         this.Shader.Parameters["uLightSource"].SetValue(Vector3.Zero);
     }
     else
     {
         float num1 = 0.0f;
         if (drawData.HasValue)
         {
             num1 = drawData.Value.rotation;
         }
         Vector2 position      = entity.position;
         float   width         = (float)entity.width;
         float   height        = (float)entity.height;
         Vector2 vector2_1     = new Vector2(width, height) * 0.1f;
         Vector2 vector2_2     = position + vector2_1;
         float   x             = width * 0.8f;
         float   y             = height * 0.8f;
         Vector2 vector2_3     = new Vector2(x * 0.5f, 0.0f);
         Vector3 subLight1     = Lighting.GetSubLight(vector2_2 + vector2_3);
         Vector2 vector2_4     = new Vector2(0.0f, y * 0.5f);
         Vector3 subLight2     = Lighting.GetSubLight(vector2_2 + vector2_4);
         Vector2 vector2_5     = new Vector2(x, y * 0.5f);
         Vector3 subLight3     = Lighting.GetSubLight(vector2_2 + vector2_5);
         Vector2 vector2_6     = new Vector2(x * 0.5f, y);
         Vector3 subLight4     = Lighting.GetSubLight(vector2_2 + vector2_6);
         float   num2          = subLight1.X + subLight1.Y + subLight1.Z;
         float   num3          = subLight2.X + subLight2.Y + subLight2.Z;
         float   num4          = subLight3.X + subLight3.Y + subLight3.Z;
         float   num5          = subLight4.X + subLight4.Y + subLight4.Z;
         Vector2 spinningpoint = new Vector2(num4 - num3, num5 - num2);
         if ((double)spinningpoint.Length() > 1.0)
         {
             float num6 = 1f;
             spinningpoint /= num6;
         }
         if (entity.direction == -1)
         {
             spinningpoint.X *= -1f;
         }
         spinningpoint = spinningpoint.RotatedBy(-(double)num1, new Vector2());
         Vector3 vector3 = new Vector3(spinningpoint, (float)(1.0 - ((double)spinningpoint.X * (double)spinningpoint.X + (double)spinningpoint.Y * (double)spinningpoint.Y)));
         vector3.X *= 2f;
         vector3.Y -= 0.15f;
         vector3.Y *= 2f;
         vector3.Normalize();
         vector3.Z *= 0.6f;
         this.Shader.Parameters["uLightSource"].SetValue(vector3);
     }
     base.Apply(entity, drawData);
 }
Beispiel #24
0
 public override void Apply(Entity entity, DrawData?drawData)
 {
     if (!(entity is Player) || ((Player)entity).team == 0) // TODO this is fishy
     {
         TeamArmorShaderData.dustShaderData[0].Apply(entity, drawData);
     }
     else
     {
         this.UseColor(Main.teamColor[((Player)entity).team]);
         base.Apply(entity, drawData);
     }
 }
Beispiel #25
0
        public override void Apply(Entity entity, DrawData?drawData)
        {
            if (entity == null)
            {
                Shader.Parameters["uLightSource"].SetValue(Vector3.Zero);
            }
            else
            {
                var num1 = 0.0f;
                if (drawData.HasValue)
                {
                    num1 = drawData.Value.rotation;
                }
                var position      = entity.position;
                var width         = entity.width;
                var height        = (float)entity.height;
                var vector2       = position + new Vector2(width, height) * 0.1f;
                var x             = width * 0.8f;
                var y             = height * 0.8f;
                var subLight1     = Lighting.GetSubLight(vector2 + new Vector2(x * 0.5f, 0.0f));
                var subLight2     = Lighting.GetSubLight(vector2 + new Vector2(0.0f, y * 0.5f));
                var subLight3     = Lighting.GetSubLight(vector2 + new Vector2(x, y * 0.5f));
                var subLight4     = Lighting.GetSubLight(vector2 + new Vector2(x * 0.5f, y));
                var num2          = subLight1.X + subLight1.Y + subLight1.Z;
                var num3          = subLight2.X + subLight2.Y + subLight2.Z;
                var num4          = subLight3.X + subLight3.Y + subLight3.Z;
                var num5          = subLight4.X + subLight4.Y + subLight4.Z;
                var spinningpoint = new Vector2(num4 - num3, num5 - num2);
                if (spinningpoint.Length() > 1.0)
                {
                    var num6 = 1f;
                    spinningpoint /= num6;
                }

                if (entity.direction == -1)
                {
                    spinningpoint.X *= -1f;
                }
                spinningpoint = spinningpoint.RotatedBy(-(double)num1, new Vector2());
                var vector3 = new Vector3(spinningpoint,
                                          (float)(1.0 - (spinningpoint.X * (double)spinningpoint.X +
                                                         spinningpoint.Y * (double)spinningpoint.Y)));
                vector3.X *= 2f;
                vector3.Y -= 0.15f;
                vector3.Y *= 2f;
                vector3.Normalize();
                vector3.Z *= 0.6f;
                Shader.Parameters["uLightSource"].SetValue(vector3);
            }

            base.Apply(entity, drawData);
        }
        /*
         * public override void Apply(Entity entity, DrawData? drawData)
         * {
         *
         *  Player player = entity as Player;
         *
         *  dustShaderData.UseColor(player.shirtColor).Apply(player, drawData);
         *
         *
         *
         * }
         */
        public override void Apply(Entity entity, DrawData?drawData)
        {
            Player player = entity as Player;

            if (player == null)
            {
                dustShaderData.UseColor(player.shoeColor).UseSaturation(3f).Apply(player, drawData);
                return;
            }
            UseColor(player.shoeColor);
            UseSaturation(3f);
            base.Apply(player, drawData);
        }
Beispiel #27
0
 public override void Apply(Entity entity, DrawData?drawData)
 {
     try{
         base.Apply(entity, drawData);
     }catch (System.Exception e) {
         if (thrown)
         {
             Main.NewTextMultiline(e.Message);
             Artifice.instance.Logger.Warn(e.ToString());
             thrown = true;
         }
     }
 }
Beispiel #28
0
        public override void PreApply(Entity e, DrawData?drawData)
        {
            Color color = default(Color);

            if (Main.waterStyle == 2)
            {
                color = new Color(124, 118, 242);
            }
            else if (Main.waterStyle == 3)
            {
                color = new Color(143, 215, 29);
            }
            else if (Main.waterStyle == 4)
            {
                color = new Color(78, 193, 227);
            }
            else if (Main.waterStyle == 5)
            {
                color = new Color(189, 231, 255);
            }
            else if (Main.waterStyle == 6)
            {
                color = new Color(230, 219, 100);
            }
            else if (Main.waterStyle == 7)
            {
                color = new Color(151, 107, 75);
            }
            else if (Main.waterStyle == 8)
            {
                color = new Color(128, 128, 128);
            }
            else if (Main.waterStyle == 9)
            {
                color = new Color(200, 0, 0);
            }
            else if (Main.waterStyle == 10)
            {
                color = new Color(208, 80, 80);
            }
            else if (Main.waterStyle >= WaterStyleLoader.vanillaWaterCount)
            {
                color = WaterStyleLoader.GetWaterStyle(Main.waterStyle).BiomeHairColor();
            }
            else
            {
                color = new Color(28, 216, 94);
            }

            Primary = color;
        }
Beispiel #29
0
        public override void Apply(Entity entity, DrawData?drawData)
        {
            if (entity == null)
            {
                _shader.Parameters["uLightSource"].SetValue(Vector3.Zero);
            }
            else
            {
                float num1 = 0.0f;
                if (drawData.HasValue)
                {
                    num1 = drawData.Value.rotation;
                }

                Vector2 vector2_1     = entity.position;
                float   x1            = (float)entity.width;
                float   y1            = (float)entity.height;
                Vector2 vector2_2     = vector2_1 + new Vector2(x1, y1) * 0.1f;
                float   x2            = x1 * 0.8f;
                float   y2            = y1 * 0.8f;
                Vector3 subLight1     = Lighting.GetSubLight(vector2_2 + new Vector2(x2 * 0.5f, 0.0f));
                Vector3 subLight2     = Lighting.GetSubLight(vector2_2 + new Vector2(0.0f, y2 * 0.5f));
                Vector3 subLight3     = Lighting.GetSubLight(vector2_2 + new Vector2(x2, y2 * 0.5f));
                Vector3 subLight4     = Lighting.GetSubLight(vector2_2 + new Vector2(x2 * 0.5f, y2));
                float   num2          = subLight1.X + subLight1.Y + subLight1.Z;
                float   num3          = subLight2.X + subLight2.Y + subLight2.Z;
                float   num4          = subLight3.X + subLight3.Y + subLight3.Z;
                float   num5          = subLight4.X + subLight4.Y + subLight4.Z;
                Vector2 spinningpoint = new Vector2(num4 - num3, num5 - num2);
                if ((double)spinningpoint.Length() > 1.0)
                {
                    float num6 = 1f;
                    spinningpoint /= num6;
                }

                if (entity.direction == -1)
                {
                    spinningpoint.X *= -1f;
                }

                spinningpoint = Utils.RotatedBy(spinningpoint, -(double)num1, new Vector2());
                Vector3 vector3 = new Vector3(spinningpoint, (float)(1.0 - ((double)spinningpoint.X * (double)spinningpoint.X + (double)spinningpoint.Y * (double)spinningpoint.Y)));
                vector3.X *= 2f;
                vector3.Y -= 0.15f;
                vector3.Y *= 2f;
                vector3.Normalize();
                vector3.Z *= 0.6f;
                _shader.Parameters["uLightSource"].SetValue(vector3);
            }
            base.Apply(entity, drawData);
        }
Beispiel #30
0
        public override void Apply(Entity entity, DrawData?drawData)
        {
            Player player = entity as Player;

            if (player != null && player.team != 0)
            {
                this.UseColor(Main.teamColor[player.team]);
                base.Apply((Entity)player, drawData);
            }
            else
            {
                TeamArmorShaderData.dustShaderData[0].Apply((Entity)player, drawData);
            }
        }