public static void HandleBreakPlace() { int xm = 0; int ym = 0; bool act = false; switch (LastInput) { case ConsoleKey.D1: ActiveItemSlot = 0; DrawInventorySlots(); break; case ConsoleKey.D2: ActiveItemSlot = 1; DrawInventorySlots(); break; case ConsoleKey.D3: ActiveItemSlot = 2; DrawInventorySlots(); break; case ConsoleKey.D4: ActiveItemSlot = 3; DrawInventorySlots(); break; case ConsoleKey.D5: ActiveItemSlot = 4; DrawInventorySlots(); break; case ConsoleKey.UpArrow: ym = -1; act = true; break; case ConsoleKey.DownArrow: ym = 1; act = true; break; case ConsoleKey.LeftArrow: xm = -1; act = true; break; case ConsoleKey.RightArrow: xm = 1; act = true; break; } if (act) { if (Renderer.PlayerScreenPosition.X + xm >= 0 && Renderer.PlayerScreenPosition.X + xm < Renderer.MapSecWidth && Renderer.PlayerScreenPosition.Y + ym >= 0 && Renderer.PlayerScreenPosition.Y + ym < Renderer.MapSecHeight) { Console.SetCursorPosition(22, Renderer.MapSecHeight + 1); Console.Write(Item.GlyphToName(Renderer.Screen[Renderer.PlayerScreenPosition.Y + ym][Renderer.PlayerScreenPosition.X + xm])); Console.SetCursorPosition(Renderer.PlayerScreenPosition.X + xm, Renderer.PlayerScreenPosition.Y + ym); char block = Renderer.Screen[Renderer.PlayerScreenPosition.Y + ym][Renderer.PlayerScreenPosition.X + xm]; if (block == '◰') { Crafting(CraftingRecipes, "Workbench"); return; } else if (block == '◘') { Crafting(FurnaceRecipes, "Furnace"); return; } Console.Write("*"); ConsoleKey brk = Console.ReadKey(true).Key; if (brk == ConsoleKey.X) { if (block != '.') { Item i; if (HandSlots[ActiveItemSlot] == -1) { i = Item.HandleBreak(block, '.'); } else { i = Item.HandleBreak(block, Inventory[HandSlots[ActiveItemSlot]].Glyph); } if (i.Glyph != '.') { Renderer.Screen[Renderer.PlayerScreenPosition.Y + ym][Renderer.PlayerScreenPosition.X + xm] = '.'; Map[PlayerPosition.Y + ym][PlayerPosition.X + xm] = '.'; Console.SetCursorPosition(Renderer.PlayerScreenPosition.X + xm, Renderer.PlayerScreenPosition.Y + ym); Console.Write("."); AddItem(i); Inventory[HandSlots[ActiveItemSlot]].Durability -= 1; if (Inventory[HandSlots[ActiveItemSlot]].Durability == 0) { Inventory.Remove(HandSlots[ActiveItemSlot]); HandSlots[ActiveItemSlot] = -1; } } } Console.SetCursorPosition(22, Renderer.MapSecHeight + 1); string spc = ""; for (int i = 0; i < Renderer.MapSecWidth - 25; i++) { spc += " "; } Console.Write(spc); Renderer.RenderMap(); } else if (brk == ConsoleKey.E && Renderer.Screen[Renderer.PlayerScreenPosition.Y + ym][Renderer.PlayerScreenPosition.X + xm] == '.' && HandSlots[ActiveItemSlot] != -1) { Renderer.Screen[Renderer.PlayerScreenPosition.Y + ym][Renderer.PlayerScreenPosition.X + xm] = Inventory[HandSlots[ActiveItemSlot]].Glyph; Map[PlayerPosition.Y + ym][PlayerPosition.X + xm] = Inventory[HandSlots[ActiveItemSlot]].Glyph; Inventory[HandSlots[ActiveItemSlot]].Count--; Renderer.RenderMap(); if (Inventory[HandSlots[ActiveItemSlot]].Count == 0) { Inventory.Remove(HandSlots[ActiveItemSlot]); HandSlots[ActiveItemSlot] = -1; } DrawInventorySlots(); } else { Console.SetCursorPosition(Renderer.PlayerScreenPosition.X + xm, Renderer.PlayerScreenPosition.Y + ym); Console.Write(Renderer.Screen[Renderer.PlayerScreenPosition.Y + ym][Renderer.PlayerScreenPosition.X + xm]); Console.SetCursorPosition(22, Renderer.MapSecHeight + 1); string spc = ""; for (int i = 0; i < Renderer.MapSecWidth - 25; i++) { spc += " "; } Console.Write(spc); } } } }