public List<DrawData> GetDrawData(ContentManager content)
        {
            Texture2D tex = content.Load<Texture2D>("Graphics/logo");
            DrawData d = new DrawData(tex, new Rectangle(x, y, size, size), angle, 0);

            if(Keyboard.GetState().IsKeyDown(Keys.Right))
            {
                x += 5;
            }
            else if (Keyboard.GetState().IsKeyDown(Keys.Left))
            {
                x -= 5;
            }
            if(Keyboard.GetState().IsKeyDown(Keys.Up))
            {
                size += 16;
                if(size > 512)
                {
                    size = 64;
                }
            }
            else if (Keyboard.GetState().IsKeyDown(Keys.Down))
            {
                angle += 1;
                if(angle >= 360)
                {
                    angle = angle - 360;
                }
            }

            List<DrawData> ret = new List<DrawData>();
            ret.Add(d);

            return ret;
        }
Exemple #2
0
            public override void Draw(ref CreditsRollInfo info)
            {
                if ((double)info.TimeInAnimation > (double)this._targetTime + (double)this.DedicatedTimeNeeded)
                {
                    return;
                }
                this.ResetSpriteAnimation(ref info);
                this.ProcessActions(this._sprite, (float)(info.TimeInAnimation - this._targetTime));
                DrawData currentDrawData = this._sprite.CurrentDrawData;

                currentDrawData.position += info.AnchorPositionOnScreen;
                currentDrawData.color    *= this._sprite.CurrentOpacity;
                currentDrawData.Draw(info.SpriteBatch);
            }
Exemple #3
0
        public override void PostDraw(SpriteBatch spriteBatch, Color drawColor)
        {
            Main.spriteBatch.End();
            Main.spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend, SamplerState.PointWrap, DepthStencilState.Default, RasterizerState.CullNone);

            DrawData drawData = new DrawData(TextureManager.Load("Images/Misc/Perlin"), npc.Center - new Vector2(130, 90), npc.getRect(), Color.White, npc.rotation, new Vector2(300f, 300f), npc.scale, SpriteEffects.None, 0);

            GameShaders.Misc["ForceField"].UseColor(Color.White);
            GameShaders.Misc["ForceField"].Apply(drawData);
            drawData.Draw(Main.spriteBatch);
            Main.spriteBatch.End();
            Main.spriteBatch.Begin();
            return;
        }
Exemple #4
0
    // DRAW COMMANDS

    static void DrawMesh(Mesh mesh, Matrix4x4 matrix, Material material, MaterialPropertyBlock propertyBlock, float duration = 0)
    {
        DrawData drawData = new DrawData();

        drawData.meshModel     = mesh;
        drawData.matrix        = matrix;
        drawData.drawMaterial  = material;
        drawData.propertyBlock = propertyBlock;
        drawData.timeOnScreen  = duration;
        drawData.color         = color;

        meshesToDraw.Add(drawData);
        numTempCommands++;
    }
        public static void DrawilluminantLayer(PlayerDrawInfo drawInfo, bool front)
        {
            Player    drawPlayer = drawInfo.drawPlayer;
            SGAmod    mod        = SGAmod.Instance;
            SGAPlayer modply     = drawPlayer.GetModPlayer <SGAPlayer>();


            int activestacks = modply.activestacks;

            if (activestacks > 0)
            {
                List <Vector4> whichone = new List <Vector4>();
                UnifiedRandom  rando    = new UnifiedRandom(drawPlayer.whoAmI);

                for (int i = 0; i < activestacks; i += 1)
                {
                    float   percent = rando.NextFloat(1f) * MathHelper.TwoPi;
                    Matrix  mxatrix = Matrix.CreateRotationY((Main.GlobalTime * 2f) + percent) * Matrix.CreateRotationZ(((i / (float)activestacks) * MathHelper.TwoPi) + (Main.GlobalTime * (rando.NextFloat(0.4f, 0.6f))));
                    Vector3 vec3    = Vector3.Transform(Vector3.UnitX, mxatrix);
                    float   alpha   = 1f;
                    if (modply.CooldownStacks.Count >= i)
                    {
                        alpha = MathHelper.Clamp((modply.CooldownStacks[i].timeleft / (float)modply.CooldownStacks[i].maxtime) * 3f, 0f, 1f);
                    }

                    whichone.Add(new Vector4(vec3, alpha));
                }
                whichone = whichone.OrderBy((x) => x.Z).ToList();

                if (whichone.Count > 0)
                {
                    for (int a = 0; a < whichone.Count; a += 1)
                    {
                        Vector4 theplace = whichone[a];
                        float   scaler   = 1 + theplace.Z;

                        if ((scaler >= 1f && front) || (scaler < 1f && !front))
                        {
                            Texture2D texture = SGAmod.Instance.GetTexture("Extra_57b");

                            Vector2  drawhere = new Vector2(theplace.X, theplace.Y) * 64f;
                            DrawData data     = new DrawData(texture, drawPlayer.MountedCenter + drawhere - Main.screenPosition, null, Color.Magenta * (theplace.W * 0.75f), (float)Math.Sin(theplace.X), texture.Size() / 2f, 0.5f + (scaler - 1f) * 0.25f, (drawPlayer.gravDir > 0 ? SpriteEffects.None : SpriteEffects.FlipVertically), 0);
                            //data.shader = (int)drawPlayer.dye[2].dye;
                            Main.playerDrawData.Add(data);
                        }
                    }
                }
            }
        }
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            Texture2D hurtbox   = ModContent.Request <Texture2D>("FargowiltasSouls/PlayerDrawLayers/PrecisionHurtboxDrawLayer", ReLogic.Content.AssetRequestMode.ImmediateLoad).Value;
            Rectangle rectangle = hurtbox.Bounds;

            float opacity = Main.mouseTextColor / 255f;

            opacity *= opacity;

            DrawData data = new DrawData(hurtbox, drawPlayer.Center - Main.screenPosition, rectangle, Color.White * opacity, 0f, rectangle.Size() / 2, 1f, SpriteEffects.None, 0);

            drawInfo.DrawDataCache.Add(data);
        }
Exemple #7
0
        /// <summary>
        /// Creates an instance of GeometryManager and loads the geometry data from it.
        /// </summary>
        /// <param name="scene">Source of geometry data</param>
        /// <param name="position">Datatype to use for position data</param>
        /// <param name="normal">Datatype to use for normal data</param>
        /// <param name="uv">Datatype to use for UV data</param>
        /// <param name="color">Datatype to use for color data</param>
        public GeometryManager(Grendgine_Collada scene, DrawData drw1, Matrix4 bindShape, DataTypes position = DataTypes.F32, DataTypes normal = DataTypes.F32,
                               DataTypes uv = DataTypes.F32, ColorDataTypes color = ColorDataTypes.RGBA8)
        {
            if (scene.Library_Geometries == null)
            {
                throw new FormatException("Mesh has no geometry!");
            }

            foreach (Grendgine_Collada_Geometry geom in scene.Library_Geometries.Geometry)
            {
                VertexData = new VertexData(geom.Mesh, bindShape, position, normal, uv, color);
                BatchData  = new BatchData(geom.Mesh, drw1);
                BatchData.SetBoundingBoxes(VertexData.Positions);
            }
        }
Exemple #8
0
        internal static DrawData modDraw_BackWeapon(DrawData data, Player p, float length)
        {
            data.rotation    = (float)((Math.PI * 1.1f + Math.PI * (length * -0.001f)) * p.direction) * p.gravDir; //rotate just over 180 clockwise
            data.position.X -= 8 * p.direction;                                                                    //back
            data.position.Y -= (length * 0.2f - 16) * p.gravDir;                                                   //up

            int playerBodyFrameNum = p.bodyFrame.Y / p.bodyFrame.Height;

            if (playerBodyFrameNum == 7 || playerBodyFrameNum == 8 || playerBodyFrameNum == 9 ||
                playerBodyFrameNum == 14 || playerBodyFrameNum == 15 || playerBodyFrameNum == 16)
            {
                data.position.Y -= 2 * p.gravDir; //up
            }
            return(data);
        }
Exemple #9
0
 protected override void Draw(ref PlayerDrawSet drawInfo)
 {
     //this is for drawing the tail on the menu
     if (Main.gameMenu && drawInfo.drawPlayer.TryGetModPlayer <TailPlayer>(out TailPlayer tailPlayer))
     {
         if (tailPlayer.playerMenuTexture != null)
         {
             //if (drawInfo.drawPlayer.dead) return;//player is never dead on main menu
             Texture2D texture   = ModContent.Request <Texture2D>(tailPlayer.playerMenuTexture).Value;
             int       frameSize = texture.Height / 20;//what??? was left over from my orignal player layer base, breaks if removed
             DrawData  data      = new DrawData(texture, (drawInfo.Center - Main.screenPosition) + (tailPlayer.playerMenuTexOffset * 0.5f), null, Color.White, 0f, new Vector2(texture.Width, frameSize), 1f, SpriteEffects.FlipHorizontally, 0);
             drawInfo.DrawDataCache.Add(data);
         }
     }
 }
Exemple #10
0
        public override bool PreDrawInInventory(SpriteBatch spriteBatch, Vector2 position, Rectangle frame, Color drawColor, Color itemColor, Vector2 origin, float scale)
        {
            spriteBatch.Restart(Main.UIScaleMatrix, worldDraw: false);

            DrawData data = new DrawData
            {
                position   = position - Main.screenPosition,
                scale      = new Vector2(scale, scale),
                sourceRect = frame,
                texture    = Main.itemTexture[item.type]
            };

            GameShaders.Armor.ApplySecondary(GameShaders.Armor.GetShaderIdFromItemId(ModContent.ItemType <GrayscaleFilterItem>()), Main.player[item.owner], data);
            return(true);
        }
Exemple #11
0
        public static PlayerLayer CreateShaderLayer(string name, PlayerLayer parent, Func <PlayerDrawInfo, DrawDataInfo> getDataFunc)
        {
            return(new PlayerLayer("ModLoaderMod", name, parent, (drawInfo) =>
            {
                if (drawInfo.shadow != 0f || drawInfo.drawPlayer.invis)
                {
                    return;
                }

                DrawDataInfo drawDataInfo = getDataFunc.Invoke(drawInfo);
                Player drawPlayer = drawInfo.drawPlayer;
                DeveloperPlayer devPlayer = DeveloperPlayer.GetPlayer(drawPlayer);
                SpriteEffects effects = SpriteEffects.None;
                if (drawPlayer.direction == -1)
                {
                    effects |= SpriteEffects.FlipHorizontally;
                }

                if (drawPlayer.gravDir == -1)
                {
                    effects |= SpriteEffects.FlipVertically;
                }

                DrawData data = new DrawData(
                    drawDataInfo.Texture,
                    drawDataInfo.Position,
                    drawDataInfo.Frame,
                    Color.White * Main.essScale * devPlayer.AndromedonEffect.LayerStrength * devPlayer.AndromedonEffect.ShaderStrength,
                    drawDataInfo.Rotation,
                    drawDataInfo.Origin,
                    1f,
                    effects,
                    0);

                BeginShaderBatch(Main.spriteBatch);
                ShaderId = ShaderId ?? GameShaders.Armor.GetShaderIdFromItemId(ItemID.LivingRainbowDye);
                GameShaders.Armor.Apply(ShaderId.Value, drawPlayer, data);
                var centerPos = data.position;

                for (int i = 0; i < ShaderNumSegments; i++)
                {
                    data.position = centerPos + GetDrawOffset(i);
                    data.Draw(Main.spriteBatch);
                }

                data.position = centerPos;
            }));
        }
Exemple #12
0
        public override void PostDraw(SpriteBatch spriteBatch, Color lightColor)
        {
            //SysDraw.Bitmap lightMap = new SysDraw.Bitmap(10, 10);
            //mod.Logger.Info("setting up variables");
            Texture2D lightMap = new Texture2D(spriteBatch.GraphicsDevice, 10, 10);

            Color[] lightData = new Color[100];
            Vector2 pos       = projectile.position;
            Vector3 col;

            //mod.Logger.Info("set up variables");
            for (int x = 0; x < 10; x++)
            {
                pos.X += 2;
                for (int y = 0; y < 10; y++)
                {
                    pos.Y += 2;
                    col    = Lighting.GetSubLight(pos);
                    lightData[(y * 10) + x] = new Color(((col.X + col.Y + col.Z) / 1.5f - 0.66f) * Min(projectile.timeLeft / 85f, 1), 0, 0);
                    //lightMap.SetPixel(x,y,SysDraw.Color.FromArgb(255,(int)((col.X+col.Y+col.Z)/3),0,0));
                }
                pos.Y -= 20;
            }
            //mod.Logger.Info("setting data");
            lightMap.SetData(lightData);
            //mod.Logger.Info("set data");
            spriteBatch.End();
            spriteBatch.Begin(SpriteSortMode.Immediate, blendState, SamplerState.PointWrap, DepthStencilState.Default, RasterizerState.CullNone, null, Main.GameViewMatrix.ZoomMatrix);
            DrawData data2 = new DrawData(mod.GetTexture("Items/Weapons/Explosives/Crystal_Grenade_Purple"), projectile.Center - Main.screenPosition, new Rectangle(0, 0, 14, 20), new Color(255, 255, 255, 255), projectile.rotation, new Vector2(7, 7), Vector2.One, SpriteEffects.None, 0);

            //Origins.perlinFade0.Shader.Parameters["uOffset"].SetValue(projectile.position);
            //Origins.perlinFade0.Shader.Parameters["uRotation"].SetValue(-projectile.rotation);
            Main.graphics.GraphicsDevice.Textures[1] = lightMap;
            Origins.perlinFade0.Shader.Parameters["uThreshold0"].SetValue(0f);
            Origins.perlinFade0.Shader.Parameters["uThreshold1"].SetValue(0.25f);
            Origins.perlinFade0.Apply(data2);
            DrawData data = new DrawData(mod.GetTexture("Items/Weapons/Explosives/Crystal_Grenade_Pink"), projectile.Center - Main.screenPosition, new Rectangle(0, 0, 14, 20), new Color(255, 255, 255, 255), projectile.rotation, new Vector2(7, 7), Vector2.One, SpriteEffects.None, 0);

            //Origins.perlinFade0.Shader.Parameters["uOffset"].SetValue(projectile.position);
            //Origins.perlinFade0.Shader.Parameters["uRotation"].SetValue(projectile.rotation);
            //Main.graphics.GraphicsDevice.Textures[1] = lightMap;
            Origins.perlinFade0.Shader.Parameters["uThreshold0"].SetValue(0.5f);
            Origins.perlinFade0.Shader.Parameters["uThreshold1"].SetValue(0.75f);
            Origins.perlinFade0.Apply(data);
            data.Draw(spriteBatch);
            spriteBatch.End();
            spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Main.DefaultSamplerState, DepthStencilState.None, Main.instance.Rasterizer, null, Main.Transform);
        }
Exemple #13
0
 public virtual void Apply(DrawData?drawData = null)
 {
     base.Shader.Parameters["uColor"].SetValue(_uColor);
     base.Shader.Parameters["uSaturation"].SetValue(_uSaturation);
     base.Shader.Parameters["uSecondaryColor"].SetValue(_uSecondaryColor);
     base.Shader.Parameters["uTime"].SetValue(Main.GlobalTimeWrappedHourly);
     base.Shader.Parameters["uOpacity"].SetValue(_uOpacity);
     base.Shader.Parameters["uShaderSpecificData"].SetValue(_shaderSpecificData);
     if (drawData.HasValue)
     {
         DrawData value  = drawData.Value;
         Vector4  value2 = Vector4.Zero;
         if (drawData.Value.sourceRect.HasValue)
         {
             value2 = new Vector4(value.sourceRect.Value.X, value.sourceRect.Value.Y, value.sourceRect.Value.Width, value.sourceRect.Value.Height);
         }
         base.Shader.Parameters["uSourceRect"].SetValue(value2);
         base.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position);
         base.Shader.Parameters["uImageSize0"].SetValue(new Vector2(value.texture.Width, value.texture.Height));
     }
     else
     {
         base.Shader.Parameters["uSourceRect"].SetValue(new Vector4(0f, 0f, 4f, 4f));
     }
     if (_uImage0 != null)
     {
         Main.graphics.GraphicsDevice.Textures[0]      = _uImage0.get_Value();
         Main.graphics.GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap;
         base.Shader.Parameters["uImageSize0"].SetValue(new Vector2(_uImage0.Width(), _uImage0.Height()));
     }
     if (_uImage1 != null)
     {
         Main.graphics.GraphicsDevice.Textures[1]      = _uImage1.get_Value();
         Main.graphics.GraphicsDevice.SamplerStates[1] = SamplerState.LinearWrap;
         base.Shader.Parameters["uImageSize1"].SetValue(new Vector2(_uImage1.Width(), _uImage1.Height()));
     }
     if (_uImage2 != null)
     {
         Main.graphics.GraphicsDevice.Textures[2]      = _uImage2.get_Value();
         Main.graphics.GraphicsDevice.SamplerStates[2] = SamplerState.LinearWrap;
         base.Shader.Parameters["uImageSize2"].SetValue(new Vector2(_uImage2.Width(), _uImage2.Height()));
     }
     if (_useProjectionMatrix)
     {
         base.Shader.Parameters["uMatrixTransform0"].SetValue(Main.GameViewMatrix.NormalizedTransformationmatrix);
     }
     base.Apply();
 }
 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((float)(Main._drawInterfaceGameTime.TotalGameTime.TotalSeconds % 3600.0));
     base.Shader.Parameters["uOpacity"].SetValue(this._uOpacity);
     base.Shader.Parameters["uShaderSpecificData"].SetValue(this._shaderSpecificData);
     if (drawData != null)
     {
         DrawData value = drawData.Value;
         Vector4  zero  = Vector4.Zero;
         if (drawData.Value.sourceRect != null)
         {
             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._uImage0 != null)
     {
         Main.graphics.GraphicsDevice.Textures[0]      = this._uImage0;
         Main.graphics.GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap;
         base.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)this._uImage0.Width, (float)this._uImage0.Height));
     }
     if (this._uImage1 != null)
     {
         Main.graphics.GraphicsDevice.Textures[1]      = this._uImage1;
         Main.graphics.GraphicsDevice.SamplerStates[1] = SamplerState.LinearWrap;
         base.Shader.Parameters["uImageSize1"].SetValue(new Vector2((float)this._uImage1.Width, (float)this._uImage1.Height));
     }
     if (this._uImage2 != null)
     {
         Main.graphics.GraphicsDevice.Textures[2]      = this._uImage2;
         Main.graphics.GraphicsDevice.SamplerStates[2] = SamplerState.LinearWrap;
         base.Shader.Parameters["uImageSize2"].SetValue(new Vector2((float)this._uImage2.Width, (float)this._uImage2.Height));
     }
     if (this._useProjectionMatrix)
     {
         base.Shader.Parameters["uMatrixTransform0"].SetValue(EMiscShaderData.GetNormalizedTransformationmatrix(Main.GameViewMatrix));
     }
     base.Apply();
 }
Exemple #15
0
        public static void DrawArmorGlowMask(EquipType type, Texture2D texture, PlayerDrawInfo info)
        {
            switch (type)
            {
            case EquipType.Head:
            {
                //Add if(!drawPlayer.invis) ?
                DrawData drawData = new DrawData(texture, new Vector2((int)(info.position.X - Main.screenPosition.X) + ((info.drawPlayer.width - info.drawPlayer.bodyFrame.Width) / 2), (int)(info.position.Y - Main.screenPosition.Y) + info.drawPlayer.height - info.drawPlayer.bodyFrame.Height + 4) + info.drawPlayer.headPosition + info.headOrigin, info.drawPlayer.bodyFrame, info.headGlowMaskColor, info.drawPlayer.headRotation, info.headOrigin, 1f, info.spriteEffects, 0);
                drawData.shader = info.headArmorShader;
                Main.playerDrawData.Add(drawData);
            }
                return;

            case EquipType.Body:
            {
                int       num2      = 0;                     //Add in backAcc stuff later
                Rectangle bodyFrame = info.drawPlayer.bodyFrame;
                int       num123    = num2;
                bodyFrame.X     += num123;
                bodyFrame.Width -= num123;
                if (info.drawPlayer.direction == -1)
                {
                    num123 = 0;
                }
                if (!info.drawPlayer.invis)
                {
                    DrawData drawData = new DrawData(texture, new Vector2((int)(info.position.X - Main.screenPosition.X - (info.drawPlayer.bodyFrame.Width / 2) + (info.drawPlayer.width / 2) + num123), ((int)(info.position.Y - Main.screenPosition.Y + info.drawPlayer.height - info.drawPlayer.bodyFrame.Height + 4))) + info.drawPlayer.bodyPosition + new Vector2(info.drawPlayer.bodyFrame.Width / 2, info.drawPlayer.bodyFrame.Height / 2), bodyFrame, info.bodyGlowMaskColor, info.drawPlayer.bodyRotation, info.bodyOrigin, 1f, info.spriteEffects, 0);
                    drawData.shader = info.bodyArmorShader;
                    Main.playerDrawData.Add(drawData);
                }
            }
                return;

            case EquipType.Legs:
            {
                if (info.drawPlayer.shoe != 15 || info.drawPlayer.wearsRobe)
                {
                    if (!info.drawPlayer.invis)
                    {
                        DrawData drawData = new DrawData(texture, new Vector2((int)(info.position.X - Main.screenPosition.X - (info.drawPlayer.legFrame.Width / 2) + (info.drawPlayer.width / 2)), (int)(info.position.Y - Main.screenPosition.Y + info.drawPlayer.height - info.drawPlayer.legFrame.Height + 4)) + info.drawPlayer.legPosition + info.legOrigin, info.drawPlayer.legFrame, info.legGlowMaskColor, info.drawPlayer.legRotation, info.legOrigin, 1f, info.spriteEffects, 0);
                        drawData.shader = info.legArmorShader;
                        Main.playerDrawData.Add(drawData);
                    }
                }
            }
                return;
            }
        }
Exemple #16
0
 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.GlobalTimeWrappedHourly);
     this.Shader.Parameters["uOpacity"].SetValue(this._uOpacity);
     this.Shader.Parameters["uShaderSpecificData"].SetValue(this._shaderSpecificData);
     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._uImage0 != null)
     {
         Main.graphics.GraphicsDevice.Textures[0]      = (Texture)this._uImage0.Value;
         Main.graphics.GraphicsDevice.SamplerStates[0] = SamplerState.LinearWrap;
         this.Shader.Parameters["uImageSize0"].SetValue(new Vector2((float)this._uImage0.Width(), (float)this._uImage0.Height()));
     }
     if (this._uImage1 != null)
     {
         Main.graphics.GraphicsDevice.Textures[1]      = (Texture)this._uImage1.Value;
         Main.graphics.GraphicsDevice.SamplerStates[1] = SamplerState.LinearWrap;
         this.Shader.Parameters["uImageSize1"].SetValue(new Vector2((float)this._uImage1.Width(), (float)this._uImage1.Height()));
     }
     if (this._uImage2 != null)
     {
         Main.graphics.GraphicsDevice.Textures[2]      = (Texture)this._uImage2.Value;
         Main.graphics.GraphicsDevice.SamplerStates[2] = SamplerState.LinearWrap;
         this.Shader.Parameters["uImageSize2"].SetValue(new Vector2((float)this._uImage2.Width(), (float)this._uImage2.Height()));
     }
     if (this._useProjectionMatrix)
     {
         this.Shader.Parameters["uMatrixTransform0"].SetValue(Main.GameViewMatrix.NormalizedTransformationmatrix);
     }
     this.Apply();
 }
        protected override void HandleUseReqest(GraphicsDevice device, SpriteBatch spriteBatch)
        {
            Asset <Texture2D> val = TextureAssets.Extra[171];

            PrepareARenderTarget_AndListenToEvents(_target, device, val.Width(), val.Height(), RenderTargetUsage.PreserveContents);
            device.SetRenderTarget(_target);
            device.Clear(Color.Transparent);
            DrawData value = new DrawData(val.Value, Vector2.Zero, Color.White);

            spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
            GameShaders.Misc["HallowBoss"].Apply(value);
            value.Draw(spriteBatch);
            spriteBatch.End();
            device.SetRenderTarget(null);
            _wasPrepared = true;
        }
        protected override void HandleUseReqest(GraphicsDevice device, SpriteBatch spriteBatch)
        {
            Asset <Texture2D> val = TextureAssets.Extra[204];

            _target = new RenderTarget2D(device, val.Width(), val.Height(), mipMap: false, device.PresentationParameters.BackBufferFormat, DepthFormat.None, 0, RenderTargetUsage.PreserveContents);
            device.SetRenderTarget(_target);
            device.Clear(Color.Transparent);
            DrawData value = new DrawData(val.get_Value(), Vector2.Zero, Color.White);

            spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
            GameShaders.Misc["QueenSlime"].Apply(value);
            value.Draw(spriteBatch);
            spriteBatch.End();
            device.SetRenderTarget(null);
            _wasPrepared = true;
        }
Exemple #19
0
        protected override void HandleUseReqest(GraphicsDevice device, SpriteBatch spriteBatch)
        {
            Asset <Texture2D> asset = TextureAssets.Extra[204];

            this.PrepareARenderTarget_AndListenToEvents(ref this._target, device, asset.Width(), asset.Height(), RenderTargetUsage.PreserveContents);
            device.SetRenderTarget(this._target);
            device.Clear(Color.Transparent);
            DrawData drawData = new DrawData(asset.Value, Vector2.Zero, Color.White);

            spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
            GameShaders.Misc["QueenSlime"].Apply(new DrawData?(drawData));
            drawData.Draw(spriteBatch);
            spriteBatch.End();
            device.SetRenderTarget((RenderTarget2D)null);
            this._wasPrepared = true;
        }
Exemple #20
0
        protected override void Draw(ref PlayerDrawSet drawInfo)
        {
            Player drawPlayer = drawInfo.drawPlayer;

            Texture2D texture   = ModContent.Request <Texture2D>("FargowiltasSouls/PlayerDrawLayers/DizzyStars", ReLogic.Content.AssetRequestMode.ImmediateLoad).Value;
            int       num156    = texture.Height / 6;                                      //ypos of lower right corner of sprite to draw
            int       y3        = num156 * (int)(Main.GlobalTimeWrappedHourly % 0.5 * 12); //ypos of upper left corner of sprite to draw
            Rectangle rectangle = new Rectangle(0, y3, texture.Width, num156);

            Vector2 drawPos = (drawPlayer.gravDir > 0 ? drawPlayer.Top : drawPlayer.Bottom) - Main.screenPosition;

            drawPos.Y -= 16 * drawPlayer.gravDir;
            DrawData data = new DrawData(texture, drawPos, rectangle, Color.White, drawPlayer.gravDir < 0 ? MathHelper.Pi : 0f, rectangle.Size() / 2, 1f, SpriteEffects.None, 0);

            drawInfo.DrawDataCache.Add(data);
        }
Exemple #21
0
        public override void PostDraw(SpriteBatch spriteBatch, Color drawColor)
        {
            Texture2D star   = mod.GetTexture("Effects/LifeStar");
            Rectangle rect   = new Rectangle(0, 0, star.Width, star.Height);
            float     scale  = Main.cursorScale + 0.3f;
            Vector2   origin = new Vector2((star.Width / 2) + scale, (star.Height / 2) + scale);

            spriteBatch.Draw(star, npc.Center - Main.screenPosition, new Rectangle?(rect), Color.HotPink, 0, origin, scale, SpriteEffects.None, 0);
            DrawData starDraw = new DrawData(star, npc.Center - Main.screenPosition, new Rectangle?(rect), Color.White, 0, origin, scale, SpriteEffects.None, 0);

            GameShaders.Misc["LCWingShader"].UseColor(Color.Goldenrod).UseSecondaryColor(Color.HotPink);
            GameShaders.Misc["LCWingShader"].Apply(starDraw);
            starDraw.Draw(spriteBatch);

            spriteBatch.End(); spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, Main.DefaultSamplerState, DepthStencilState.None, RasterizerState.CullCounterClockwise, null, Main.GameViewMatrix.ZoomMatrix);
        }
Exemple #22
0
        public static void Initialize()
        {
            if (GlobalContext != null)
            {
                throw new FlowException("Flow has already been initialized!");
            }

            GlobalContext = new FlowContext();
            GlobalContext.Initialize();

            DrawLists = new DrawData[]
            {
                new DrawData(),
                new DrawData(),
            };
        }
Exemple #23
0
        protected override void HandleUseReqest(GraphicsDevice device, SpriteBatch spriteBatch)
        {
            Asset <Texture2D> asset = TextureAssets.Extra[171];

            this._target = new RenderTarget2D(device, asset.Width(), asset.Height(), false, device.PresentationParameters.BackBufferFormat, DepthFormat.None, 0, RenderTargetUsage.PreserveContents);
            device.SetRenderTarget(this._target);
            device.Clear(Color.Transparent);
            DrawData drawData = new DrawData(asset.get_Value(), Vector2.Zero, Color.White);

            spriteBatch.Begin(SpriteSortMode.Immediate, BlendState.AlphaBlend);
            GameShaders.Misc["HallowBoss"].Apply(new DrawData?(drawData));
            drawData.Draw(spriteBatch);
            spriteBatch.End();
            device.SetRenderTarget((RenderTarget2D)null);
            this._wasPrepared = true;
        }
Exemple #24
0
 public override void ModifyDrawHeadLayers(List <PlayerHeadLayer> layers)
 {
     layers.Add(new PlayerHeadLayer(mod.Name, "SSC: Pig", (info) =>
     {
         var drawPlayer = info.drawPlayer;
         if (drawPlayer.GetModPlayer <MPlayer>().Piggify)
         {
             var pigTex = ServerSideCharacter2.ModTexturesTable["Pig"];
             var pos    = new Vector2(drawPlayer.position.X - Main.screenPosition.X - drawPlayer.bodyFrame.Width / 2 + drawPlayer.width / 2,
                                      drawPlayer.position.Y - Main.screenPosition.Y + drawPlayer.height - drawPlayer.bodyFrame.Height + 4f) + drawPlayer.headPosition + info.drawOrigin;
             var dd = new DrawData(pigTex, pos, null, Color.White, 0f, info.drawOrigin, info.scale * 0.5f, SpriteEffects.None, 0);
             dd.Draw(Main.spriteBatch);
         }
     }));
     base.ModifyDrawHeadLayers(layers);
 }
        public static void drawdigistuff(PlayerDrawInfo drawInfo, bool front)
        {
            Player    drawPlayer = drawInfo.drawPlayer;
            SGAmod    mod        = SGAmod.Instance;
            SGAPlayer modply     = drawPlayer.GetModPlayer <SGAPlayer>();


            int bonusattacks = (int)(((float)modply.digiStacks / (float)modply.digiStacksMax) * (float)modply.digiStacksCount);

            if (bonusattacks > 0)
            {
                List <Vector2> whichone = new List <Vector2>();
                for (int i = 0; i < bonusattacks; i += 1)
                {
                    float angle  = MathHelper.ToRadians(modply.timer + ((((float)i - 1) / (float)bonusattacks) * 360f));
                    float scaler = 1f + ((float)Math.Sin(angle) * 0.25f);
                    whichone.Add(new Vector2(scaler, angle));
                    //Vector2 apos = new Vector2((float)Math.Cos(angle) * 64, (float)Math.Sin(angle) * 24);
                }
                whichone = whichone.OrderBy((x) => x.X).ToList();

                if (whichone.Count > 0)
                {
                    for (int a = 0; a < whichone.Count; a += 1)
                    {
                        Vector2 theplace = whichone[a];
                        float   scaler   = theplace.X;

                        if ((scaler >= 1f && front) || (scaler < 1f && !front))
                        {
                            float angle = theplace.Y;

                            Vector2 apos = new Vector2((float)Math.Cos(angle) * 64, (float)Math.Sin(angle) * 12);

                            Texture2D texture = Main.itemTexture[ItemID.ManaCrystal];

                            int      drawX = (int)((drawPlayer.Center.X + apos.X) - Main.screenPosition.X);
                            int      drawY = (int)((drawPlayer.MountedCenter.Y + apos.Y) - Main.screenPosition.Y);                       //gravDir
                            DrawData data  = new DrawData(texture, new Vector2(drawX, drawY), null, Color.White, (float)0, new Vector2(texture.Width / 2, texture.Height / 2), scaler, (drawPlayer.gravDir > 0 ? SpriteEffects.None : SpriteEffects.FlipVertically), 0);
                            //data.shader = (int)drawPlayer.dye[2].dye;
                            Main.playerDrawData.Add(data);
                        }
                    }
                }
            }
        }
Exemple #26
0
        public virtual void Apply(Entity entity, DrawData?drawData = null)
        {
            base.Shader.Parameters["uColor"].SetValue(_uColor);
            base.Shader.Parameters["uSaturation"].SetValue(_uSaturation);
            base.Shader.Parameters["uSecondaryColor"].SetValue(_uSecondaryColor);
            base.Shader.Parameters["uTime"].SetValue(Main.GlobalTimeWrappedHourly);
            base.Shader.Parameters["uOpacity"].SetValue(_uOpacity);
            base.Shader.Parameters["uTargetPosition"].SetValue(_uTargetPosition);
            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);
                base.Shader.Parameters["uSourceRect"].SetValue(value2);
                base.Shader.Parameters["uLegacyArmorSourceRect"].SetValue(value2);
                base.Shader.Parameters["uWorldPosition"].SetValue(Main.screenPosition + value.position);
                base.Shader.Parameters["uImageSize0"].SetValue(new Vector2(value.texture.Width, value.texture.Height));
                base.Shader.Parameters["uLegacyArmorSheetSize"].SetValue(new Vector2(value.texture.Width, value.texture.Height));
                base.Shader.Parameters["uRotation"].SetValue(value.rotation * (value.effect.HasFlag(SpriteEffects.FlipHorizontally) ? (-1f) : 1f));
                base.Shader.Parameters["uDirection"].SetValue((!value.effect.HasFlag(SpriteEffects.FlipHorizontally)) ? 1 : (-1));
            }
            else
            {
                Vector4 value3 = new Vector4(0f, 0f, 4f, 4f);
                base.Shader.Parameters["uSourceRect"].SetValue(value3);
                base.Shader.Parameters["uLegacyArmorSourceRect"].SetValue(value3);
                base.Shader.Parameters["uRotation"].SetValue(0f);
            }
            if (_uImage != null)
            {
                Main.graphics.GraphicsDevice.Textures[1] = _uImage.get_Value();
                base.Shader.Parameters["uImageSize1"].SetValue(new Vector2(_uImage.Width(), _uImage.Height()));
            }
            if (entity != null)
            {
                base.Shader.Parameters["uDirection"].SetValue((float)entity.direction);
            }
            Player player = entity as Player;

            if (player != null)
            {
                Rectangle bodyFrame = player.bodyFrame;
                base.Shader.Parameters["uLegacyArmorSourceRect"].SetValue(new Vector4(bodyFrame.X, bodyFrame.Y, bodyFrame.Width, bodyFrame.Height));
                base.Shader.Parameters["uLegacyArmorSheetSize"].SetValue(new Vector2(40f, 1120f));
            }
            Apply();
        }
        public async Task <IActionResult> Index()
        {
            DrawData draws = await ApiOpapFetch();

            var lastDrawInDatabase = _drawRepository.Draws.LastOrDefault();
            var drawDifference     = draws.drawNo - lastDrawInDatabase.DrawNumber;

            if (drawDifference != 0)
            {
                for (var i = 1; i <= drawDifference; i++)
                {
                    DrawData drawToSave = await ApiOpapFetch(lastDrawInDatabase.DrawNumber + i);
                    await AddToDataBase(drawToSave);
                }
            }
            return(View(draws));
        }
Exemple #28
0
        private void _presenter_AddIslandToCanvas(object sender, Presenters.DisplayAddDrawableDataEventArgs displayAddDrawableDataEventArgs)
        {
            Dispatcher.Invoke(new Action(() =>
            {
                var drawables = displayAddDrawableDataEventArgs.Drawables;

                // we will use _drawData later when displaying textual information
                var indexAddingDrawablesTo = mainCanvas.Children.Count;
                var newDrawData            = new DrawData(displayAddDrawableDataEventArgs.Name, drawables.Count, indexAddingDrawablesTo, drawables);
                _drawDataList.Add(newDrawData);

                foreach (var polygonUIElement in drawables)
                {
                    mainCanvas.Children.Add(polygonUIElement);
                }
            }));
        }
Exemple #29
0
        internal static DrawData modDraw_WaistWeapon(DrawData data, Player p, float length)
        {
            float maxFall = 2f;

            if (!ModConf.toggleWaistRotation)
            {
                maxFall = p.velocity.Y * p.gravDir;
                if (p.velocity.Y == 0)
                {
                    maxFall = p.velocity.X * p.direction;
                }
            }
            data.rotation    = (float)(Math.PI * 1 + Math.PI * (0.1f + maxFall * 0.01f) * p.direction) * p.gravDir; //rotate just over 180 clockwise
            data.position.X -= (length * 0.5f - 20) * p.direction;                                                  //back
            data.position.Y += (14 - maxFall / 2) * p.gravDir;                                                      //down
            return(data);
        }
        public void DrawGlowmask(PlayerDrawInfo info)
        {
            var player = info.drawPlayer;

            if (player.itemAnimation == 0)
            {
                return;
            }

            var tex    = GetTexture(Texture + "Glow");
            var color  = Color.White * (heat / 100f);
            var origin = player.direction == 1 ? new Vector2(0, tex.Height) : new Vector2(tex.Width, tex.Height);

            var data = new DrawData(tex, info.itemLocation - Main.screenPosition, null, color, player.itemRotation, origin, item.scale, player.direction == 1 ? SpriteEffects.None : SpriteEffects.FlipHorizontally, 0);

            Main.playerDrawData.Add(data);
        }
Exemple #31
0
        public override void Draw(ref ParticleRendererSettings settings, SpriteBatch spritebatch)
        {
            Color   color  = new Color(120, 120, 120, 60) * Utils.GetLerpValue(1f, FadeOutNormalizedTime, _timeSinceSpawn / _timeTolive, clamped: true);
            Vector2 value  = settings.AnchorPosition + LocalPosition;
            ulong   seed   = Main.TileFrameSeed ^ (((ulong)LocalPosition.X << 32) | (uint)LocalPosition.Y);
            Player  player = Main.player[_indexOfPlayerWhoSpawnedThis];

            for (int i = 0; i < 4; i++)
            {
                DrawData drawData = new DrawData(position: value + new Vector2(Utils.RandomInt(ref seed, -2, 3), Utils.RandomInt(ref seed, -2, 3)) * Scale, texture: _texture.get_Value(), sourceRect: _frame, color: color, rotation: Rotation, origin: _origin, scale: Scale, effect: SpriteEffects.None, inactiveLayerDepth: 0);
                drawData.shader = _packedShaderIndex;
                DrawData cdd = drawData;
                PlayerDrawHelper.SetShaderForData(player, 0, ref cdd);
                cdd.Draw(spritebatch);
            }
            Main.pixelShader.CurrentTechnique.Passes[0].Apply();
        }
Exemple #32
0
        private void Draw(DrawData[] drawData, Matrix4 viewMatrix)
        {
            for (int i = 0; i < drawData.Length; i++)
            {
                DrawData data = drawData[i];
                Debug.Assert(data.Model != null);
                if (!RenderEnabled)
                {
                    return;
                }

                if (_activeShader.GetUniform("UVMatrix") != -1)
                {
                    Matrix4 UVMatrix = data.Model.TransformUv.GetMatrix();
                    GL.UniformMatrix4(_activeShader.GetUniform("UVMatrix"), false, ref UVMatrix);
                }

                if (data.Model.Texture != null)
                {
                    GL.Uniform1(_activeShader.GetUniform("isTextured"), 1);
                    GL.BindTexture(TextureTarget.Texture2D, data.Model.Texture.GetId());
                }
                else
                {
                    GL.Uniform1(_activeShader.GetUniform("isTextured"), 0);
                    GL.BindTexture(TextureTarget.Texture2D, -1);
                }

                if (data.Model.Wireframe)
                {
                    SetEnable(EnableCap.CullFace, false);
                    GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line);
                }
                if (data.Model.IsTransparent)
                {
                    SetEnable(EnableCap.Blend, true);
                }

                RenderSetTransformMatrix(data.Offset, data.Model, viewMatrix);
                GL.DrawElements(PrimitiveType.Triangles, data.Model.GetIndices().Length, DrawElementsType.UnsignedInt, (IntPtr)(data.Index * sizeof(int)));
                if (data.Model.Wireframe)
                {
                    SetEnable(EnableCap.CullFace, true);
                    GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill);
                }
                if (data.Model.IsTransparent)
                {
                    SetEnable(EnableCap.Blend, false);
                }
            }
        }
 /**
  *  oblicza tekstury, po otrzymaniu wyniku rozmiar jest porównywany z rozmiarem w którym ma się zmieścić wynik, jeśli się nie nieści następuje
  * przeskalowanie i ponowne obliczanie
  */
 private Size PrepareBitmap(float scale)
 {
     float width=0;
     float height = 0;
     drawDataList=new List<DrawData>();
     for(int i=0;i<this.text.Length;i++){
         char c=this.text[i];
         Texture bitmap=null;
         if(bitmapMap!=null){
             Texture tempBitmap=bitmapMap[c];
             if(tempBitmap!=null){
                 bitmap=tempBitmap;
             }
         }
         if(bitmapList.Length>0){
             Texture tempBitmap=bitmapList[int.Parse(c.ToString())];
             if(tempBitmap!=null){
                 bitmap=tempBitmap;
             }
         }
         if(bitmap!=null){
             DrawData data=new DrawData();
             data.bitmap=bitmap;
             if(orientation==Orientation.horizontal){
                 data.position=new Rect(width,0,bitmap.width*scale,bitmap.height*scale);
                 width+=bitmap.width*scale;
                 if(height<bitmap.height*scale)height=bitmap.height*scale;
             }else{
                 data.position=new Rect(0,height,bitmap.width,bitmap.height*scale);
                 height+=bitmap.height*scale;
                 if(width<bitmap.width*scale)width=bitmap.width*scale;
             }
             drawDataList.Add(data);
         }
     }
     return new Size (width,height);
 }