public override bool processCommand(IStringPrinter printer, string[] options) { if (options.Length == 1 || options.Length == 2 || options.Length == 3) { int id = 0; int count = 1; int data = 0; try { id = toInt(options[0]); } catch (NumberInvalidException e) { foreach(Item item in Item.ItemList){ if(item != null){ if (equalsIgnoreCase(item.name, e.s)) { id = item.index; break; } } } if(id == 0){ throw new NoSuchItemException(e.s); } } if(options.Length >= 2){ count = toInt(options[1]); } if (options.Length == 3) { try { data = toInt(options[2]); } catch (NumberInvalidException e) { if (id == Item.itemTile.index) { foreach (Tile tile in Tile.TileList) { if (tile != null) { if (equalsIgnoreCase(tile.name, e.s)) { data = tile.index; break; } } } if (data == 0) { throw new NoSuchTileException(e.s); } } else { throw e; } } } if(id != Item.itemEmpty.index){ ItemStack stack = new ItemStack(Item.ItemList[id], count, data); printer.println("Gave you "+stack.getDisplayName(false)); Game.instance.inventory.pickUp(stack); } return true; } else { throw new InvalidNumberOfArgumentsException(options.Length); } }
public override void draw(Game game, GameTime gameTime) { if (game.currentWorld.player == null) { return; } int xx = 0; int yy = 0; int itemIndex = 0; Rectangle r; if (currentItem != null) { Game.drawString(currentItem.getDisplayName(false), new Vector2(8, 4), hotBarColor, Game.RENDER_DEPTH_GUI_TEXT); } for (int i = 0; i < 10; i++) { xx = x + (selectedSlot == i ? (cursorItem.isEmpty() ? 4 : 2) : 0) + inventoryMove + 4; yy = y + (i * gridSize); r = new Rectangle(xx + squareBorderSize, yy + squareBorderSize, itemSize, itemSize); Game.drawRectangle(guiTexture, new Rectangle(xx, yy, squareSize, squareSize), new Rectangle(0, 0, 20, 20), hotBarColor, Game.RENDER_DEPTH_GUI_IMAGE_BG); items[itemIndex].draw(game, r, hotBarColor, Game.RENDER_DEPTH_GUI_IMAGE_FG, Game.RENDER_DEPTH_GUI_TEXT); Game.drawString((i == 9 ? 0 : i + 1) + "", new Vector2(xx + 22, yy + 3), hotBarColor, Game.RENDER_DEPTH_GUI_TEXT); itemIndex++; } if (inventoryFade > 0) { for (int i = 0; i < 10; i++) { for (int j = 0; j < 4; j++) { xx = x + (j * gridSize) + inventoryMove - (gridSize * 4); yy = y + (i * gridSize); r = new Rectangle(xx + squareBorderSize, yy + squareBorderSize, itemSize, itemSize); Game.drawRectangle(guiTexture, new Rectangle(xx, yy, squareSize, squareSize), new Rectangle(0, 0, 20, 20), inventoryColor, Game.RENDER_DEPTH_GUI_IMAGE_BG); items[itemIndex].draw(game, r, inventoryColor, Game.RENDER_DEPTH_GUI_IMAGE_FG, Game.RENDER_DEPTH_GUI_TEXT); itemIndex++; } } float a = inventoryFade * (mouseInCrafting ? 1 : .5f); Color color = new Color(a, a, a, a); Game.drawString(" Crafting", new Vector2(inventoryMove - (gridSize * 4), craftingAreaY - gridSize * .5f), color, Game.RENDER_DEPTH_GUI_TEXT); for (int i = -2; i <= 2; i++) { int j = i + craftingScroll; if (j >= 0 && j < valaidRecipes.Count()) { xx = x + (i * gridSize) + inventoryMove - (gridSize * 2); yy = y + craftingAreaY; r = new Rectangle(xx + squareBorderSize, yy + squareBorderSize, itemSize, itemSize); int abs = Math.Abs(i); a = (inventoryFade * (abs == 3 ? .1f : (abs == 2 ? .2f : (abs == 1 ? .5f : 1)))) * (mouseInCrafting ? 1 : .1f); color = new Color(a, a, a, a); Game.drawRectangle(guiTexture, new Rectangle(xx, yy, squareSize, squareSize), new Rectangle(0, 0, 20, 20), color, Game.RENDER_DEPTH_GUI_IMAGE_BG); valaidRecipes[j].result.draw(game, r, color, Game.RENDER_DEPTH_GUI_IMAGE_FG, Game.RENDER_DEPTH_GUI_TEXT); for (int k = 0; k < valaidRecipes[j].ingredients.Length; k++) { xx = x + (i * gridSize) + inventoryMove - (gridSize * 2); yy = y + 4 + ((k + 1) * gridSize) + craftingAreaY; r = new Rectangle(xx + squareBorderSize, yy + squareBorderSize, itemSize, itemSize); valaidRecipes[j].ingredients[k].draw(game, r, color, Game.RENDER_DEPTH_GUI_IMAGE_FG, Game.RENDER_DEPTH_GUI_TEXT); } } } } MouseState mouseState = Mouse.GetState(); xx = mouseState.X + 10; yy = mouseState.Y + 10; r = new Rectangle(xx + 2, yy + 2, itemSize, itemSize); if (inventoryFade > 0 && !cursorItem.isEmpty()) { cursorItem.draw(game, r, inventoryColor, Game.RENDER_DEPTH_GUI_CURSOR_IMAGE_FG, Game.RENDER_DEPTH_GUI_CURSOR_TEXT); Game.drawString(cursorItem.getDisplayName(true), new Vector2(r.X + 24, r.Y), inventoryColor, Game.RENDER_DEPTH_GUI_CURSOR_TEXT); } else if (inventoryFade > 0 && mouseItemSlot != -1 && !items[mouseItemSlot].isEmpty()) { Game.drawString(items[mouseItemSlot].getDisplayName(true), new Vector2(xx + 2, yy + 2), inventoryColor, Game.RENDER_DEPTH_GUI_CURSOR_TEXT); } else if (inventoryFade > 0 && !items[selectedSlot].isEmpty()) { items[selectedSlot].draw(game, r, (mouseTileDistanceFromPlayer <= items[selectedSlot].getItem().reach) ? Color.White : new Color(.1f, .1f, .1f, .1f), Game.RENDER_DEPTH_GUI_CURSOR_IMAGE_FG, Game.RENDER_DEPTH_GUI_TEXT); } currentItem = cursorItem.isEmpty() ? items[selectedSlot] : cursorItem; if ((mouseTileDistanceFromPlayer <= currentItem.getItem().reach)) { currentItem.getItem().drawHover(game, mouseTileX, mouseTileY, currentItem); } Game.drawRectangle(guiTexture, new Rectangle(mouseState.X, mouseState.Y, 16, 16), new Rectangle(0, 20, 16, 16), Game.cursorColor, Game.RENDER_DEPTH_GUI_CURSOR_IMAGE_BG); }
public override bool processCommand(IStringPrinter printer, string[] options) { if (options.Length == 1 || options.Length == 2 || options.Length == 3) { int id = 0; int count = 1; int data = 0; try { id = toInt(options[0]); } catch (NumberInvalidException e) { foreach (Item item in Item.ItemList) { if (item != null) { if (equalsIgnoreCase(item.name, e.s)) { id = item.index; break; } } } if (id == 0) { throw new NoSuchItemException(e.s); } } if (options.Length >= 2) { count = toInt(options[1]); } if (options.Length == 3) { try { data = toInt(options[2]); } catch (NumberInvalidException e) { if (id == Item.itemTile.index) { foreach (Tile tile in Tile.TileList) { if (tile != null) { if (equalsIgnoreCase(tile.name, e.s)) { data = tile.index; break; } } } if (data == 0) { throw new NoSuchTileException(e.s); } } else { throw e; } } } if (id != Item.itemEmpty.index) { ItemStack stack = new ItemStack(Item.ItemList[id], count, data); printer.println("Gave you " + stack.getDisplayName(false)); Game.instance.inventory.pickUp(stack); } return(true); } else { throw new InvalidNumberOfArgumentsException(options.Length); } }