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

◆ DrawPlayer_36_CTG()

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

Definition at line 3255 of file PlayerDrawLayers.cs.

3256 {
3257 if (drawinfo.shadow != 0f || (byte)drawinfo.drawPlayer.ownedLargeGems <= 0)
3258 {
3259 return;
3260 }
3261 bool flag = false;
3262 BitsByte ownedLargeGems = drawinfo.drawPlayer.ownedLargeGems;
3263 float num = 0f;
3264 for (int i = 0; i < 7; i++)
3265 {
3266 if (ownedLargeGems[i])
3267 {
3268 num += 1f;
3269 }
3270 }
3271 float num2 = 1f - num * 0.06f;
3272 float num3 = (num - 1f) * 4f;
3273 switch ((int)num)
3274 {
3275 case 2:
3276 num3 += 10f;
3277 break;
3278 case 3:
3279 num3 += 8f;
3280 break;
3281 case 4:
3282 num3 += 6f;
3283 break;
3284 case 5:
3285 num3 += 6f;
3286 break;
3287 case 6:
3288 num3 += 2f;
3289 break;
3290 case 7:
3291 num3 += 0f;
3292 break;
3293 }
3294 float num4 = (float)drawinfo.drawPlayer.miscCounter / 300f * ((float)Math.PI * 2f);
3295 if (!(num > 0f))
3296 {
3297 return;
3298 }
3299 float num5 = (float)Math.PI * 2f / num;
3300 float num6 = 0f;
3301 Vector2 vector = new Vector2(1.3f, 0.65f);
3302 if (!flag)
3303 {
3304 vector = Vector2.One;
3305 }
3307 for (int j = 0; j < 7; j++)
3308 {
3309 if (!ownedLargeGems[j])
3310 {
3311 num6 += 1f;
3312 continue;
3313 }
3314 Vector2 vector2 = (num4 + num5 * ((float)j - num6)).ToRotationVector2();
3315 float num7 = num2;
3316 if (flag)
3317 {
3318 num7 = MathHelper.Lerp(num2 * 0.7f, 1f, vector2.Y / 2f + 0.5f);
3319 }
3321 DrawData item = new DrawData(value, new Vector2((int)(drawinfo.Position.X - Main.screenPosition.X + (float)(drawinfo.drawPlayer.width / 2)), (int)(drawinfo.Position.Y - Main.screenPosition.Y + (float)drawinfo.drawPlayer.height - 80f)) + vector2 * vector * num3, null, new Color(250, 250, 250, Main.mouseTextColor / 2), 0f, value.Size() / 2f, ((float)(int)Main.mouseTextColor / 1000f + 0.8f) * num7, SpriteEffects.None);
3322 list.Add(item);
3323 }
3324 if (flag)
3325 {
3326 list.Sort(DelegateMethods.CompareDrawSorterByYScale);
3327 }
3328 drawinfo.DrawDataCache.AddRange(list);
3329 }
static float Lerp(float value1, float value2, float amount)
Definition MathHelper.cs:53
void AddRange(IEnumerable< KeyValuePair< TKey, TValue > > collection)
const double PI
Definition Math.cs:16
static Asset< Texture2D >[] Gem

References System.Collections.Generic.Dictionary< TKey, TValue >.AddRange(), Terraria.DelegateMethods.CompareDrawSorterByYScale(), Terraria.GameContent.TextureAssets.Gem, System.item, Microsoft.Xna.Framework.MathHelper.Lerp(), System.list, Terraria.Main.mouseTextColor, Microsoft.Xna.Framework.Vector2.One, System.Math.PI, Terraria.Main.screenPosition, System.value, and Microsoft.Xna.Framework.Graphics.Vector2.

Referenced by Terraria.Graphics.Renderers.LegacyPlayerRenderer.DrawPlayer_UseNormalLayers().