Skip to content

Item Display Logic

PeterOu8 edited this page Oct 2, 2022 · 6 revisions

This wiki page will explain the implementation of the item equipment which allows the player to equip an item or use a potion. //WIP

public void showItem() {
    float padding = 12.5f;
    InventoryComponent inventory =ServiceLocator.getGameArea().getPlayer().getComponent(InventoryComponent.class);
    items = inventory.getInventory();
    for (int i = 0; i < items.size(); ++i) {
      Entity currentItem = items.get(i);
      Texture itemTexture = currentItem.getComponent(TextureRenderComponent.class).getTexture();
      TextureRegion itemTextureRegion = new TextureRegion(itemTexture);
      TextureRegionDrawable itemTextureDrawable = new TextureRegionDrawable(itemTextureRegion);
      ImageButton item = new ImageButton(itemTextureDrawable);
      item.setSize(53, 53);
      //187.5 and 360 are the magic numbers. DO NOT CHANGE!
      int row = i / 4;
      int column = i % 4;
      float horizontalPosition = (inventoryMenu.getX() + 187.5f) + column * (padding + 53);
      float verticalPosition = (inventoryMenu.getY() + 360) - row * (padding + 53);
      item.setPosition(horizontalPosition, verticalPosition);
      // Triggers an event when the button is pressed.
      String buttonText;
      if (items.get(i).checkEntityType(EntityTypes.WEAPON)
      || items.get(i).checkEntityType(EntityTypes.ARMOUR)) {
        buttonText = "Equip item";
      } else if (items.get(i).checkEntityType(EntityTypes.POTION)){
        buttonText = "Add to quick bar";
      } else {
        buttonText = "Add to crafting menu";
      }
      item.addListener(
              new ChangeListener() {
                @Override
                public void changed(ChangeEvent changeEvent, Actor actor) {
                  TextButton mainMenuBtn = new TextButton(buttonText, skin);
                  mainMenuBtn.setPosition(horizontalPosition, verticalPosition);
                  mainMenuBtn.addListener(
                          new ChangeListener() {
                            @Override
                            public void changed(ChangeEvent event, Actor actor) {
                              switch (buttonText) {
                                case "Equip item":
                                 inventory.equipItem(currentItem);
                                 break;
                                case "Add to quick bar":
                                  inventory.addQuickBarItems(currentItem);
                                  break;
                                case "Add to crafting menu":
                                  //Crafting team use this block to add items in crafting menu
                                  break;
                              }
                            }
                          }
                  );
                  inventoryGroup.addActor(mainMenuBtn);
                }
              });
      inventoryGroup.addActor(item);
    }
  }

Back to Inventory Page

Author

  • Li-Sung Ou
  • GitHub: @PeterOu8
  • Discord: Secret Agent Randy Beans#6754
  • Slack: Li-Sung Ou
Clone this wiki locally