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);
|
gameStates.dependencies.eventHandlerProvider.handleMine(screenRenderer, this, x, y);
|
||||||
|
|
||||||
|
@ -8,7 +8,6 @@ import lombok.Getter;
|
|||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
@Setter
|
@Setter
|
||||||
@ -22,6 +21,7 @@ public class Item implements Serializable {
|
|||||||
private MyOptional<Enum> spriteState = MyOptional.empty();
|
private MyOptional<Enum> spriteState = MyOptional.empty();
|
||||||
private boolean stackable = true;
|
private boolean stackable = true;
|
||||||
private int durability;
|
private int durability;
|
||||||
|
private int maxDurability;
|
||||||
private double miningDecrease = 0;
|
private double miningDecrease = 0;
|
||||||
private int stackAmount = 64;
|
private int stackAmount = 64;
|
||||||
private int addHunger = 0;
|
private int addHunger = 0;
|
||||||
@ -36,6 +36,7 @@ public class Item implements Serializable {
|
|||||||
this.sprite = sprite;
|
this.sprite = sprite;
|
||||||
this.toolVariant = MyOptional.of(toolVariant);
|
this.toolVariant = MyOptional.of(toolVariant);
|
||||||
this.durability = durability;
|
this.durability = durability;
|
||||||
|
this.maxDurability = durability;
|
||||||
this.stackable = stackable;
|
this.stackable = stackable;
|
||||||
this.dealDamage = dealDamage;
|
this.dealDamage = dealDamage;
|
||||||
}
|
}
|
||||||
@ -49,6 +50,7 @@ public class Item implements Serializable {
|
|||||||
this.toolVariant = MyOptional.of(toolVariant);
|
this.toolVariant = MyOptional.of(toolVariant);
|
||||||
this.miningDecrease = miningDecrease;
|
this.miningDecrease = miningDecrease;
|
||||||
this.durability = durability;
|
this.durability = durability;
|
||||||
|
this.maxDurability = durability;
|
||||||
this.stackable = stackable;
|
this.stackable = stackable;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -75,8 +77,13 @@ public class Item implements Serializable {
|
|||||||
this.addHunger = addHunger;
|
this.addHunger = addHunger;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void use() {
|
public boolean use() {
|
||||||
durability--;
|
durability--;
|
||||||
|
if (durability == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -10,5 +10,6 @@ public class ShearsItem extends Item {
|
|||||||
public ShearsItem() {
|
public ShearsItem() {
|
||||||
super("shears", "Shears", ItemType.SHEARS, SpriteLoader.SPRITES.SHEARS);
|
super("shears", "Shears", ItemType.SHEARS, SpriteLoader.SPRITES.SHEARS);
|
||||||
setDurability(238);
|
setDurability(238);
|
||||||
|
setMaxDurability(238);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -237,9 +237,25 @@ public class Inventory implements Serializable {
|
|||||||
continue;
|
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) {
|
if (i == selectedItem) {
|
||||||
sprites.add(
|
sprite = SpriteCombiner
|
||||||
SpriteCombiner
|
|
||||||
.combineTwoSprites(getHotbarBackground(),
|
.combineTwoSprites(getHotbarBackground(),
|
||||||
SpriteCombiner.combineTwoSprites(
|
SpriteCombiner.combineTwoSprites(
|
||||||
item.getItem().getFirst().getSpriteState().isPresent()
|
item.getItem().getFirst().getSpriteState().isPresent()
|
||||||
@ -248,16 +264,21 @@ public class Inventory implements Serializable {
|
|||||||
.get())
|
.get())
|
||||||
: spriteList.getSprite(item.getItem().getFirst().getSprite())
|
: spriteList.getSprite(item.getItem().getFirst().getSprite())
|
||||||
.getSprite(),
|
.getSprite(),
|
||||||
Numbers.getNumberSprite(item.getAmount()))));
|
Numbers.getNumberSprite(item.getAmount())));
|
||||||
continue;
|
} else {
|
||||||
}
|
sprite = SpriteCombiner.combineTwoSprites(
|
||||||
|
|
||||||
sprites.add(SpriteCombiner.combineTwoSprites(
|
|
||||||
item.getItem().getFirst().getSpriteState().isPresent()
|
item.getItem().getFirst().getSpriteState().isPresent()
|
||||||
? spriteList.getSprite(item.getItem().getFirst().getSprite())
|
? spriteList.getSprite(item.getItem().getFirst().getSprite())
|
||||||
.getSprite(item.getItem().getFirst().getSpriteState().get())
|
.getSprite(item.getItem().getFirst().getSpriteState().get())
|
||||||
: spriteList.getSprite(item.getItem().getFirst().getSprite()).getSprite(),
|
: 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;
|
return sprites;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user