Exemplo n.º 1
0
        public void Draw(int tileLeftX, int tileTopY)
        {
            Player dollPlayer = this._dollPlayer;

            for (int index = 0; index < 8; ++index)
            {
                dollPlayer.armor[index] = this._items[index];
                dollPlayer.dye[index]   = this._dyes[index];
            }
            dollPlayer.direction = -1;
            dollPlayer.Male      = true;
            Tile tileSafely = Framing.GetTileSafely(tileLeftX, tileTopY);

            if ((int)tileSafely.frameX % 72 == 36)
            {
                dollPlayer.direction = 1;
            }
            if ((int)tileSafely.frameX / 72 == 1)
            {
                dollPlayer.Male = false;
            }
            dollPlayer.isDisplayDollOrInanimate = true;
            dollPlayer.ResetEffects();
            dollPlayer.ResetVisibleAccessories();
            dollPlayer.UpdateDyes();
            dollPlayer.DisplayDollUpdate();
            dollPlayer.UpdateSocialShadow();
            dollPlayer.PlayerFrame();
            Vector2 vector2 = new Vector2((float)(tileLeftX + 1), (float)(tileTopY + 3)) * 16f + new Vector2((float)(-dollPlayer.width / 2), (float)(-dollPlayer.height - 6));

            dollPlayer.position      = vector2;
            dollPlayer.skinDyePacked = PlayerDrawHelper.PackShader((int)tileSafely.color(), PlayerDrawHelper.ShaderConfiguration.TilePaintID);
            Main.PlayerRenderer.DrawPlayer(Main.Camera, dollPlayer, dollPlayer.position, 0.0f, dollPlayer.fullRotationOrigin, 0.0f, 1f);
        }
Exemplo n.º 2
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();
        }
Exemplo n.º 3
0
        public override void Draw(ref ParticleRendererSettings settings, SpriteBatch spritebatch)
        {
            Color   color     = new Color(120, 120, 120, 60) * Utils.GetLerpValue(1f, this.FadeOutNormalizedTime, this._timeSinceSpawn / this._timeTolive, true);
            Vector2 vector2_1 = settings.AnchorPosition + this.LocalPosition;
            ulong   seed      = Main.TileFrameSeed ^ ((ulong)this.LocalPosition.X << 32 | (ulong)(uint)this.LocalPosition.Y);
            Player  player    = Main.player[this._indexOfPlayerWhoSpawnedThis];

            for (int index = 0; index < 4; ++index)
            {
                Vector2  vector2_2 = new Vector2((float)Utils.RandomInt(ref seed, -2, 3), (float)Utils.RandomInt(ref seed, -2, 3));
                DrawData cdd       = new DrawData(this._texture.Value, vector2_1 + vector2_2 * this.Scale, new Rectangle?(this._frame), color, this.Rotation, this._origin, this.Scale, SpriteEffects.None, 0)
                {
                    shader = this._packedShaderIndex
                };
                PlayerDrawHelper.SetShaderForData(player, 0, ref cdd);
                cdd.Draw(spritebatch);
            }
            Main.pixelShader.CurrentTechnique.Passes[0].Apply();
        }
Exemplo n.º 4
0
        private void RenderDrawData(Player drawPlayer)
        {
            Effect pixelShader = Main.pixelShader;

            Projectile[] projectile  = Main.projectile;
            SpriteBatch  spriteBatch = Main.spriteBatch;

            for (int index = 0; index < this._drawData.Count; ++index)
            {
                DrawData cdd = this._drawData[index];
                if (!cdd.sourceRect.HasValue)
                {
                    cdd.sourceRect = new Rectangle?(cdd.texture.Frame(1, 1, 0, 0, 0, 0));
                }
                PlayerDrawHelper.SetShaderForData(drawPlayer, drawPlayer.cHead, ref cdd);
                if (cdd.texture != null)
                {
                    cdd.Draw(spriteBatch);
                }
            }
            pixelShader.CurrentTechnique.Passes[0].Apply();
        }
Exemplo n.º 5
0
        private void RenderDrawData(Player drawPlayer)
        {
            Effect pixelShader = Main.pixelShader;

            _ = Main.projectile;
            SpriteBatch spriteBatch = Main.spriteBatch;

            for (int i = 0; i < _drawData.Count; i++)
            {
                DrawData cdd = _drawData[i];
                if (!cdd.sourceRect.HasValue)
                {
                    cdd.sourceRect = cdd.texture.Frame();
                }
                PlayerDrawHelper.SetShaderForData(drawPlayer, drawPlayer.cHead, ref cdd);
                if (cdd.texture != null)
                {
                    cdd.Draw(spriteBatch);
                }
            }
            pixelShader.CurrentTechnique.Passes[0].Apply();
        }