private void DrawTileMarker(Point16 tile, ColoredMark mark) { Vector2 text = Main.fontMouseText.MeasureString(mark.mark); Vector2 loc = new Vector2(tile.X * 16 - (int)Main.screenPosition.X + 8, tile.Y * 16 - (int)Main.screenPosition.Y + 12) - text / 2; if (Main.LocalPlayer.gravDir == -1) { loc.Y = Main.screenHeight - loc.Y - 16; } Main.spriteBatch.DrawString(Main.fontMouseText, mark.mark, loc, mark.color); }
public static void BuildMarkerCache() { MarkCache.Clear(); if (ShowWireSkip) { foreach (var item in WiringWireSkip) { if (item.Value) { MarkCache[item.Key] = new ColoredMark("X", Color.Red); } } } if (ShowGatesDone) { foreach (var item in WiringGatesDone) { if (item.Value) { MarkCache[item.Key] = new ColoredMark("X", Color.White); } } } if (ShowUpcomingGates) { foreach (var item in WiringGatesCurrent) { MarkCache[item] = new ColoredMark("O", Color.Red); } foreach (var item in WiringGatesNext) { MarkCache[item] = new ColoredMark("O", Color.Red); } } if (ShowTriggeredLamps) { foreach (var item in Wiring._LampsToCheck) { MarkCache[item] = new ColoredMark("?", Color.Orange); } } if (ShowTeleporters) { for (int i = 0; i < 8; i++) { Vector2 v = WiringTeleporters[i]; if (v != null && v.X >= 0 && v.Y >= 0) { while (MarkCache.ContainsKey(v.ToPoint16())) { v.X++; } MarkCache[v.ToPoint16()] = new ColoredMark((i / 2 + 1).ToString(), Color.White); } } } if (ShowPumps) { for (int i = 0; i < Wiring._numInPump; i++) { Point16 point = new Point16(Wiring._inPumpX[i], Wiring._inPumpY[i]); MarkCache[point] = new ColoredMark(i.ToString(), Color.Red); } for (int i = 0; i < Wiring._numOutPump; i++) { Point16 point = new Point16(Wiring._outPumpX[i], Wiring._outPumpY[i]); MarkCache[point] = new ColoredMark(i.ToString(), Color.Green); } } }