public override bool PreDraw(int i, int j, SpriteBatch spriteBatch) { TileEntities.MiningLaser laser = Utility.GetTileEntity <TileEntities.MiningLaser>(i, j); if (laser == null || !Main.tile[i, j].IsTopLeft()) { return(false); } Vector2 position = new Point16(i, j).ToScreenCoordinates(); float angle = 0f; if (laser.CurrentTile != Point16.NegativeOne) { Vector2 minedTile = laser.CurrentTile.ToWorldCoordinates() + (Main.drawToScreen ? Vector2.Zero : new Vector2(Main.offScreenRange)); Vector2 laserOrigin = new Point16(i, j).ToWorldCoordinates(40, 36) + (Main.drawToScreen ? Vector2.Zero : new Vector2(Main.offScreenRange)); Vector2 p = minedTile - laserOrigin; angle = -(float)Math.Atan2(p.X, p.Y); Utils.DrawLine(spriteBatch, laserOrigin + Vector2.Normalize(p) * 32f, minedTile, Color.Red, Color.Red, 2f); } spriteBatch.Draw(HeadTexture, position + new Vector2(40, 36), null, Color.White, angle, new Vector2(40, 10), 1f, SpriteEffects.None, 0f); spriteBatch.Draw(BaseTexture, position, null, Color.White); return(false); }
public override void KillMultiTile(int i, int j, int frameX, int frameY) { TileEntities.MiningLaser laser = Utility.GetTileEntity <TileEntities.MiningLaser>(i, j); PanelUI.Instance.CloseUI(laser); Item.NewItem(i * 16, j * 16, 80, 80, ModContent.ItemType <Items.MiningLaser>()); laser.Kill(i, j); }
public override bool NewRightClick(int i, int j) { TileEntities.MiningLaser laser = Utility.GetTileEntity <TileEntities.MiningLaser>(i, j); if (laser == null) { return(false); } PanelUI.Instance.HandleUI(laser); return(true); }