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

◆ DrawItemIcon()

static float Terraria.UI.ItemSlot.DrawItemIcon ( Item item,
int context,
SpriteBatch spriteBatch,
Vector2 screenPositionForItemCenter,
float scale,
float sizeLimit,
Color environmentColor )
inlinestatic

Definition at line 2273 of file ItemSlot.cs.

2274 {
2275 int num = item.type;
2276 if ((uint)(num - 5358) <= 3u && context == 31)
2277 {
2278 num = 5437;
2279 }
2280 Main.instance.LoadItem(num);
2281 Texture2D value = TextureAssets.Item[num].Value;
2282 Rectangle frame = ((Main.itemAnimations[num] == null) ? value.Frame() : Main.itemAnimations[num].GetFrame(value));
2283 DrawItem_GetColorAndScale(item, scale, ref environmentColor, sizeLimit, ref frame, out var itemLight, out var finalDrawScale);
2284 SpriteEffects effects = SpriteEffects.None;
2285 Vector2 origin = frame.Size() / 2f;
2286 spriteBatch.Draw(value, screenPositionForItemCenter, frame, item.GetAlpha(itemLight), 0f, origin, finalDrawScale, effects, 0f);
2287 if (item.color != Color.Transparent)
2288 {
2289 Color newColor = environmentColor;
2290 if (context == 13)
2291 {
2292 newColor.A = byte.MaxValue;
2293 }
2294 spriteBatch.Draw(value, screenPositionForItemCenter, frame, item.GetColor(newColor), 0f, origin, finalDrawScale, effects, 0f);
2295 }
2296 switch (num)
2297 {
2298 case 5140:
2299 case 5141:
2300 case 5142:
2301 case 5143:
2302 case 5144:
2303 case 5145:
2304 {
2305 Texture2D value3 = TextureAssets.GlowMask[item.glowMask].Value;
2306 Color white = Color.White;
2307 spriteBatch.Draw(value3, screenPositionForItemCenter, frame, white, 0f, origin, finalDrawScale, effects, 0f);
2308 break;
2309 }
2310 case 5146:
2311 {
2312 Texture2D value2 = TextureAssets.GlowMask[324].Value;
2313 spriteBatch.Draw(color: new Color(Main.DiscoR, Main.DiscoG, Main.DiscoB), texture: value2, position: screenPositionForItemCenter, sourceRectangle: frame, rotation: 0f, origin: origin, scale: finalDrawScale, effects: effects, layerDepth: 0f);
2314 break;
2315 }
2316 }
2317 return finalDrawScale;
2318 }
void Draw(Texture2D texture, Vector2 position, Color color)
static Asset< Texture2D >[] GlowMask
static Asset< Texture2D >[] Item
static void DrawItem_GetColorAndScale(Item item, float scale, ref Color currentWhite, float sizeLimit, ref Rectangle frame, out Color itemLight, out float finalDrawScale)
Definition ItemSlot.cs:2320
static Color Transparent
Definition Color.cs:76

References Microsoft.Xna.Framework.Graphics.Color, Terraria.Main.DiscoB, Terraria.Main.DiscoG, Terraria.Main.DiscoR, Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw(), Terraria.UI.ItemSlot.DrawItem_GetColorAndScale(), Terraria.GameContent.TextureAssets.GlowMask, Terraria.Main.instance, System.item, Terraria.GameContent.TextureAssets.Item, Terraria.Main.itemAnimations, Microsoft.Xna.Framework.Color.Transparent, System.value, and Microsoft.Xna.Framework.Color.White.

Referenced by Terraria.Graphics.Renderers.ItemTransferParticle.Draw(), Terraria.UI.ItemSlot.Draw(), Terraria.GameContent.UI.Elements.UIItemIcon.DrawSelf(), and Terraria.GameContent.Drawing.TileDrawing.DrawSpecialTilesLegacy().