Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrawMeowcartTrail()

static void Terraria.DataStructures.PlayerDrawLayers.DrawMeowcartTrail ( ref PlayerDrawSet drawinfo)
inlinestatic

Definition at line 2313 of file PlayerDrawLayers.cs.

2314 {
2315 if (drawinfo.drawPlayer.mount.Type == 33 && !(drawinfo.shadow > 0f))
2316 {
2317 int num = Math.Min(drawinfo.drawPlayer.availableAdvancedShadowsCount - 1, 20);
2318 float num2 = 0f;
2319 for (int num3 = num; num3 > 0; num3--)
2320 {
2321 EntityShadowInfo advancedShadow = drawinfo.drawPlayer.GetAdvancedShadow(num3);
2322 EntityShadowInfo advancedShadow2 = drawinfo.drawPlayer.GetAdvancedShadow(num3 - 1);
2323 num2 += Vector2.Distance(advancedShadow.Position, advancedShadow2.Position);
2324 }
2325 float num4 = MathHelper.Clamp(num2 / 160f, 0f, 1f);
2326 Main.instance.LoadProjectile(250);
2328 float x = 1.5f;
2329 Vector2 origin = new Vector2(value.Width / 2, 0f);
2330 Vector2 vector = new Vector2(drawinfo.drawPlayer.width, drawinfo.drawPlayer.height) / 2f;
2331 Vector2 vector2 = new Vector2(-drawinfo.drawPlayer.direction * 10, 15f);
2333 white.A = 127;
2336 Vector2 vector4 = drawinfo.drawPlayer.RotatedRelativePoint(drawinfo.drawPlayer.Center + vector3 + vector2) - drawinfo.drawPlayer.position;
2337 for (int num5 = num; num5 > 0; num5--)
2338 {
2339 EntityShadowInfo advancedShadow3 = drawinfo.drawPlayer.GetAdvancedShadow(num5);
2340 EntityShadowInfo advancedShadow4 = drawinfo.drawPlayer.GetAdvancedShadow(num5 - 1);
2341 Vector2 pos = advancedShadow3.Position + vector3;
2342 Vector2 pos2 = advancedShadow4.Position + vector3;
2343 pos += vector4;
2344 pos2 += vector4;
2345 pos = drawinfo.drawPlayer.RotatedRelativePoint(pos, reverseRotation: true, addGfxOffY: false);
2346 pos2 = drawinfo.drawPlayer.RotatedRelativePoint(pos2, reverseRotation: true, addGfxOffY: false);
2347 float rotation = (pos2 - pos).ToRotation() - (float)Math.PI / 2f;
2348 float num6 = Vector2.Distance(pos, pos2);
2349 Vector2 scale = new Vector2(x, num6 / (float)value.Height);
2350 float num7 = 1f - (float)num5 / (float)num;
2351 num7 *= num7;
2352 Color color = white * num7 * num4;
2353 DrawData item = new DrawData(value, pos - Main.screenPosition, null, color, rotation, origin, scale, drawinfo.playerEffect);
2354 drawinfo.DrawDataCache.Add(item);
2355 }
2356 }
2357 }
static float Clamp(float value, float min, float max)
Definition MathHelper.cs:46
void Add(TKey key, TValue value)
static byte Min(byte val1, byte val2)
Definition Math.cs:912
const double PI
Definition Math.cs:16
static Asset< Texture2D >[] Projectile
static float Distance(Vector2 value1, Vector2 value2)
Definition Vector2.cs:91

References System.Collections.Generic.Dictionary< TKey, TValue >.Add(), Microsoft.Xna.Framework.MathHelper.Clamp(), Microsoft.Xna.Framework.Vector2.Distance(), Terraria.Main.instance, System.item, System.Math.Min(), System.Math.PI, Terraria.GameContent.TextureAssets.Projectile, Terraria.Main.screenPosition, System.value, Microsoft.Xna.Framework.Graphics.Vector2, Microsoft.Xna.Framework.Color.White, and Microsoft.Xna.Framework.Vector2.Zero.

Referenced by Terraria.DataStructures.PlayerDrawLayers.DrawPlayer_02_MountBehindPlayer().