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

◆ Update()

void Terraria.GameContent.Bestiary.UnlockableNPCEntryIcon.Update ( BestiaryUICollectionInfo providedInfo,
Rectangle hitbox,
EntryIconDrawSettings settings )
inline

Implements Terraria.GameContent.Bestiary.IEntryIcon.

Definition at line 43 of file UnlockableNPCEntryIcon.cs.

44 {
45 Vector2 positionOffsetCache = default(Vector2);
46 int? num = null;
47 int? num2 = null;
48 int? num3 = null;
49 bool wet = false;
50 float num4 = 0f;
51 Asset<Texture2D> val = null;
52 if (NPCID.Sets.NPCBestiaryDrawOffset.TryGetValue(_npcNetId, out var value))
53 {
54 _npcCache.rotation = value.Rotation;
55 _npcCache.scale = value.Scale;
56 if (value.PortraitScale.HasValue && settings.IsPortrait)
57 {
58 _npcCache.scale = value.PortraitScale.Value;
59 }
60 positionOffsetCache = value.Position;
61 num = value.Frame;
62 num2 = value.Direction;
63 num3 = value.SpriteDirection;
64 num4 = value.Velocity;
65 wet = value.IsWet;
66 if (value.PortraitPositionXOverride.HasValue && settings.IsPortrait)
67 {
68 positionOffsetCache.X = value.PortraitPositionXOverride.Value;
69 }
70 if (value.PortraitPositionYOverride.HasValue && settings.IsPortrait)
71 {
72 positionOffsetCache.Y = value.PortraitPositionYOverride.Value;
73 }
74 if (value.CustomTexturePath != null)
75 {
76 val = Main.Assets.Request<Texture2D>(value.CustomTexturePath, (AssetRequestMode)1);
77 }
78 if (val != null && val.IsLoaded)
79 {
80 _customTexture = val;
81 }
82 }
83 _positionOffsetCache = positionOffsetCache;
84 UpdatePosition(settings);
86 {
87 for (int i = 0; i < _npcCache.oldPos.Length; i++)
88 {
90 }
91 }
92 _npcCache.direction = (_npcCache.spriteDirection = (num2.HasValue ? num2.Value : (-1)));
93 if (num3.HasValue)
94 {
95 _npcCache.spriteDirection = num3.Value;
96 }
97 _npcCache.wet = wet;
100 if (!num.HasValue && (settings.IsPortrait || settings.IsHovered))
101 {
102 _npcCache.velocity.X = (float)_npcCache.direction * num4;
104 }
105 else if (num.HasValue)
106 {
108 _npcCache.frame.Y = _npcCache.frame.Height * num.Value;
109 }
110 }
Vector2 position
Definition Entity.cs:14
void AdjustSpecialSpawnRulesForVisuals(EntryIconDrawSettings settings)
static Dictionary< int, NPCBestiaryDrawModifiers > NPCBestiaryDrawOffset
Definition NPCID.cs:106
static int[] TrailingMode
Definition NPCID.cs:4162
void FindFrame()
Definition NPC.cs:59052
int type
Definition NPC.cs:445
Vector2[] oldPos
Definition NPC.cs:155

References Terraria.GameContent.Bestiary.UnlockableNPCEntryIcon._customTexture, Terraria.GameContent.Bestiary.UnlockableNPCEntryIcon._npcCache, Terraria.GameContent.Bestiary.UnlockableNPCEntryIcon._npcNetId, Terraria.GameContent.Bestiary.UnlockableNPCEntryIcon._positionOffsetCache, Terraria.GameContent.Bestiary.UnlockableNPCEntryIcon.AdjustSpecialSpawnRulesForVisuals(), Terraria.Main.Assets, Terraria.Entity.direction, Terraria.NPC.FindFrame(), Terraria.GameContent.Bestiary.EntryIconDrawSettings.IsHovered, ReLogic.Content.Asset< T >.IsLoaded, Terraria.GameContent.Bestiary.EntryIconDrawSettings.IsPortrait, Microsoft.Xna.Framework.Vector2.Length(), Terraria.ID.NPCID.Sets.NPCBestiaryDrawOffset, Terraria.NPC.oldPos, Terraria.Entity.position, Terraria.GameContent.Bestiary.UnlockableNPCEntryIcon.SimulateFirstHover(), Terraria.ID.NPCID.Sets.TrailingMode, Terraria.NPC.type, and Terraria.GameContent.Bestiary.UnlockableNPCEntryIcon.UpdatePosition().