public static void drawDummyGhosts()
{
if (!showDummyGhosts)
return;
foreach (TileEntity tentity in TETrainingDummy.ByID.Values) //All the dummies.
{
TETrainingDummy dummy = null;
try
{
if (tentity is TETrainingDummy)
dummy = (TETrainingDummy)tentity;
else
continue;
}
catch { }
if (dummy != null)
{
try
{
if (Main.npc[dummy.npc].active)
{
Vector2 offset = new Vector2(0, 0);
SpriteEffects flip;
if (Main.tile[dummy.Position.X, dummy.Position.Y].frameX == 0)
{
flip = SpriteEffects.None;
}
else
{
flip = SpriteEffects.FlipHorizontally;
}
Vector2 flooredPos = Main.npc[dummy.npc].position.Floor();
Rectangle sourceRect = new Rectangle(0, 0, 36, 72); //frameX
sourceRect.X += (Main.dummyAnimationCounter / Main.dummyAnimationTime) * 38;
sourceRect.Y += Main.npc[dummy.npc].frame.Y * 74/50;
/*get light color of npc pos*/
Color dummyColor = Main.buffColor( (Main.dummyGhostBright ? Color.White : Lighting.GetColor((int)flooredPos.X / 16, (int)flooredPos.Y / 16)) , Main.dummyGhostBrightness, Main.dummyGhostBrightness, Main.dummyGhostBrightness, Main.dummyGhostBrightness);
/*draw ghost texture*/
Main.spriteBatch.Draw(Main.dummyGhostTexture, (flooredPos - Main.screenPosition - new Vector2(8, 8)) + offset, sourceRect, dummyColor, 0f, default(Vector2), 1f, flip, 0f);
/*draw outline*/
if(Main.dummyGhostOutline)
{
Rectangle sourceRect2 = new Rectangle(304, 0, 35, 50);
Main.spriteBatch.Draw(Main.dummyGhostTexture, flooredPos - Main.screenPosition - offset - new Vector2(5, 5), sourceRect2, Color.White);
}
/*draw ID*/
if (showDummyID)
{
Vector2 position = flooredPos - Main.screenPosition - new Vector2(8, 8);
string id = (dummy.npc - 100).ToString();
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(-1, 0), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(1, 0), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(0, -1), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(0, 1), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position, dummyColor);
}
/*else
{
Vector2 position = flooredPos - Main.screenPosition - new Vector2(8, 8);
string id = Main.tile[dummy.Position.X, dummy.Position.Y].frameX.ToString() + "," + Main.tile[dummy.Position.X, dummy.Position.Y].frameY.ToString() + "\n" + Main.npc[dummy.npc].frame.ToString();
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(-1, 0), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(1, 0), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(0, -1), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(0, 1), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position, dummyColor);
}*/
/*tile pos*/
Rectangle rect = new Rectangle(dummy.Position.X*16, dummy.Position.Y*16, 0, 0);
rect.Inflate(128, 128);
/* if the npc is 4 tiles away*/
if (!Main.npc[dummy.npc].getRect().Intersects(rect)) //!intersects?
{
/*draw ID on tile loc*/
Vector2 position = new Vector2(dummy.Position.X, dummy.Position.Y) * 16 - Main.screenPosition;
string id = (dummy.npc - 100).ToString();
Color lightTile = Main.buffColor((Main.dummyGhostBright ? Color.White : Lighting.GetColor((int)dummy.Position.X, (int)dummy.Position.Y)), Main.dummyGhostBrightness, Main.dummyGhostBrightness, Main.dummyGhostBrightness, Main.dummyGhostBrightness);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(-1, 0), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(1, 0), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(0, -1), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position + new Vector2(0, 1), Color.Black);
Main.spriteBatch.DrawString(Main.fontItemStack, id, position, lightTile);
}
}
}
catch { }
}
}
foreach (SpritebatchQueue gonnaDraw in SpritebatchQueue.queue)
{
if (gonnaDraw.type == "texture")
{
Main.spriteBatch.Draw(gonnaDraw.t, gonnaDraw.v, gonnaDraw.c);
}
else if (gonnaDraw.type == "string")
{
Main.spriteBatch.DrawString(gonnaDraw.s, gonnaDraw.x, gonnaDraw.v, gonnaDraw.c);
}
}
SpritebatchQueue.queue.Clear();
//YES. DONE.
}