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); }
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(); }
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(); }
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(); }
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(); }