//// public void VanillaShaderBegin(Texture2D tex, int frameHeight) { Vector4 frame = new Vector4( x: 0, y: frameHeight * this.CurrentFrame, z: tex.Width, w: frameHeight ); float cyclePerc = (Main.GlobalTime % this.ShaderTime) / this.ShaderTime; var mymod = EmittersMod.Instance; ArmorShaderData baseShaderData = mymod.ArmorShaders[this.ShaderType]; EmitterArmorShaderData shaderData = mymod.MyArmorShaders[this.ShaderType]; Effect fx = baseShaderData.Shader; EffectPass effect = fx.CurrentTechnique.Passes[shaderData.PassName]; fx.Parameters["uColor"].SetValue(shaderData.UColor); fx.Parameters["uSaturation"].SetValue(shaderData.USaturation); fx.Parameters["uSecondaryColor"].SetValue(shaderData.USecondaryColor); fx.Parameters["uTime"].SetValue(cyclePerc); fx.Parameters["uOpacity"].SetValue(shaderData.UOpacity); fx.Parameters["uImageSize0"].SetValue(new Vector2(tex.Width, tex.Height)); fx.Parameters["uSourceRect"].SetValue(frame); effect.Apply(); }
private void LoadArmorShaders() { this.ArmorShaders = EmitterArmorShaderData.GetVanillaArmorShaders(); foreach (ArmorShaderData baseShaderData in this.ArmorShaders) { if (baseShaderData == null) { continue; } var passName = EmitterArmorShaderData.GetPassName(baseShaderData); var shaderData = new EmitterArmorShaderData(Main.PixelShaderRef, baseShaderData, passName); this.MyArmorShaders.Add(shaderData); } }