forked from jzitnik/twodcraft
feat: Implemented durability
This commit is contained in:
parent
5ae7536125
commit
15a6ab2898
@ -253,7 +253,12 @@ public class Game implements Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
inventory.getItemInHand().ifPresent(Item::use);
|
||||
if (inventory.getItemInHand().isPresent()) {
|
||||
boolean broken = inventory.getItemInHand().get().use();
|
||||
if (broken) {
|
||||
inventory.decreaseItemInHand();
|
||||
}
|
||||
}
|
||||
|
||||
gameStates.dependencies.eventHandlerProvider.handleMine(screenRenderer, this, x, y);
|
||||
|
||||
|
@ -8,7 +8,6 @@ import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Optional;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ -22,6 +21,7 @@ public class Item implements Serializable {
|
||||
private MyOptional<Enum> spriteState = MyOptional.empty();
|
||||
private boolean stackable = true;
|
||||
private int durability;
|
||||
private int maxDurability;
|
||||
private double miningDecrease = 0;
|
||||
private int stackAmount = 64;
|
||||
private int addHunger = 0;
|
||||
@ -36,6 +36,7 @@ public class Item implements Serializable {
|
||||
this.sprite = sprite;
|
||||
this.toolVariant = MyOptional.of(toolVariant);
|
||||
this.durability = durability;
|
||||
this.maxDurability = durability;
|
||||
this.stackable = stackable;
|
||||
this.dealDamage = dealDamage;
|
||||
}
|
||||
@ -49,6 +50,7 @@ public class Item implements Serializable {
|
||||
this.toolVariant = MyOptional.of(toolVariant);
|
||||
this.miningDecrease = miningDecrease;
|
||||
this.durability = durability;
|
||||
this.maxDurability = durability;
|
||||
this.stackable = stackable;
|
||||
}
|
||||
|
||||
@ -75,8 +77,13 @@ public class Item implements Serializable {
|
||||
this.addHunger = addHunger;
|
||||
}
|
||||
|
||||
public void use() {
|
||||
public boolean use() {
|
||||
durability--;
|
||||
if (durability == 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -10,5 +10,6 @@ public class ShearsItem extends Item {
|
||||
public ShearsItem() {
|
||||
super("shears", "Shears", ItemType.SHEARS, SpriteLoader.SPRITES.SHEARS);
|
||||
setDurability(238);
|
||||
setMaxDurability(238);
|
||||
}
|
||||
}
|
||||
|
@ -237,9 +237,25 @@ public class Inventory implements Serializable {
|
||||
continue;
|
||||
}
|
||||
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
if (item.getItem().getFirst().getDurability() != 0) {
|
||||
stringBuilder.append(("\033[0m ".repeat(50) + "\n").repeat(21));
|
||||
|
||||
stringBuilder.append("\033[0m ".repeat(4));
|
||||
int width = (int) (((double) item.getItem().getFirst().getDurability() / item.getItem().getFirst().getMaxDurability()) * 42);
|
||||
|
||||
stringBuilder.append("\033[38;5;231;48;5;231m▓".repeat(width));
|
||||
stringBuilder.append("\033[40m ".repeat(42 - width));
|
||||
stringBuilder.append("\033[0m ".repeat(4));
|
||||
stringBuilder.append("\n");
|
||||
|
||||
stringBuilder.append(("\033[0m ".repeat(50) + "\n").repeat(3));
|
||||
}
|
||||
|
||||
String sprite;
|
||||
|
||||
if (i == selectedItem) {
|
||||
sprites.add(
|
||||
SpriteCombiner
|
||||
sprite = SpriteCombiner
|
||||
.combineTwoSprites(getHotbarBackground(),
|
||||
SpriteCombiner.combineTwoSprites(
|
||||
item.getItem().getFirst().getSpriteState().isPresent()
|
||||
@ -248,16 +264,21 @@ public class Inventory implements Serializable {
|
||||
.get())
|
||||
: spriteList.getSprite(item.getItem().getFirst().getSprite())
|
||||
.getSprite(),
|
||||
Numbers.getNumberSprite(item.getAmount()))));
|
||||
continue;
|
||||
}
|
||||
|
||||
sprites.add(SpriteCombiner.combineTwoSprites(
|
||||
Numbers.getNumberSprite(item.getAmount())));
|
||||
} else {
|
||||
sprite = SpriteCombiner.combineTwoSprites(
|
||||
item.getItem().getFirst().getSpriteState().isPresent()
|
||||
? spriteList.getSprite(item.getItem().getFirst().getSprite())
|
||||
.getSprite(item.getItem().getFirst().getSpriteState().get())
|
||||
: spriteList.getSprite(item.getItem().getFirst().getSprite()).getSprite(),
|
||||
Numbers.getNumberSprite(item.getAmount())));
|
||||
Numbers.getNumberSprite(item.getAmount()));
|
||||
}
|
||||
|
||||
if (item.getItem().getFirst().getDurability() == 0) {
|
||||
sprites.add(sprite);
|
||||
} else {
|
||||
sprites.add(SpriteCombiner.combineTwoSprites(sprite, stringBuilder.toString()));
|
||||
}
|
||||
}
|
||||
|
||||
return sprites;
|
||||
|
Loading…
x
Reference in New Issue
Block a user