-
Notifications
You must be signed in to change notification settings - Fork 1
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);
}
}
- Li-Sung Ou
- GitHub: @PeterOu8
- Discord: Secret Agent Randy Beans#6754
- Slack: Li-Sung Ou