Create basic scaffolding for stackable items
This commit is contained in:
BIN
data.mv.db
BIN
data.mv.db
Binary file not shown.
Binary file not shown.
@@ -1,5 +1,6 @@
|
||||
package com.bartlomiejpluta.demo.gui;
|
||||
|
||||
import A.fonts;
|
||||
import com.bartlomiejpluta.base.api.context.Context;
|
||||
import com.bartlomiejpluta.base.api.gui.Color;
|
||||
import com.bartlomiejpluta.base.api.gui.Component;
|
||||
@@ -11,6 +12,7 @@ import com.bartlomiejpluta.base.api.input.KeyEvent;
|
||||
import com.bartlomiejpluta.base.api.screen.Screen;
|
||||
import com.bartlomiejpluta.base.lib.gui.IconView;
|
||||
import com.bartlomiejpluta.demo.world.item.Item;
|
||||
import com.bartlomiejpluta.demo.world.item.ItemStack;
|
||||
import lombok.Getter;
|
||||
import lombok.NonNull;
|
||||
import lombok.Setter;
|
||||
@@ -18,11 +20,10 @@ import lombok.Setter;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class ItemIconView extends IconView {
|
||||
private final Color normal;
|
||||
private final Color hover;
|
||||
private final Color textColor;
|
||||
|
||||
@Getter
|
||||
private Item item;
|
||||
@@ -34,9 +35,12 @@ public class ItemIconView extends IconView {
|
||||
super(context, gui, refs);
|
||||
this.normal = gui.createColor();
|
||||
this.hover = gui.createColor();
|
||||
this.textColor = gui.createColor();
|
||||
|
||||
normal.setRGBA(0x444444FF);
|
||||
hover.setRGBA(0x888888FF);
|
||||
textColor.setRGBA(0xFFFFFFFF);
|
||||
|
||||
super.setScale(2f);
|
||||
|
||||
addEventListener(KeyEvent.TYPE, this::handleKeyEvent);
|
||||
@@ -93,5 +97,15 @@ public class ItemIconView extends IconView {
|
||||
gui.closePath();
|
||||
|
||||
super.draw(screen, gui);
|
||||
|
||||
if (item != null && item instanceof ItemStack stack) {
|
||||
gui.beginPath();
|
||||
gui.setFontFace(fonts.roboto_regular.uid);
|
||||
gui.setFontSize(17);
|
||||
gui.putText(x + 15, y + 5, String.valueOf(stack.count()));
|
||||
gui.setFillColor(textColor);
|
||||
gui.fill();
|
||||
gui.closePath();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.bartlomiejpluta.demo.world.item;
|
||||
|
||||
public interface ItemStack extends Item {
|
||||
int count();
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.bartlomiejpluta.demo.world.weapon;
|
||||
|
||||
import com.bartlomiejpluta.base.api.context.ContextHolder;
|
||||
import com.bartlomiejpluta.base.api.icon.Icon;
|
||||
import com.bartlomiejpluta.base.lib.icon.IconDelegate;
|
||||
import com.bartlomiejpluta.demo.world.item.ItemStack;
|
||||
import lombok.Getter;
|
||||
import lombok.NonNull;
|
||||
|
||||
public class Ammunition extends IconDelegate implements ItemStack {
|
||||
private int count;
|
||||
|
||||
@Getter
|
||||
private final String name;
|
||||
|
||||
public Ammunition(@NonNull String id, int count) {
|
||||
this(DB.dao.ammunition.find(id), count);
|
||||
}
|
||||
|
||||
public Ammunition(@NonNull DB.model.AmmunitionModel template, int count) {
|
||||
super(createIcon(template));
|
||||
this.name = template.getName();
|
||||
this.count = count;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int count() {
|
||||
return count;
|
||||
}
|
||||
|
||||
private static Icon createIcon(DB.model.AmmunitionModel template) {
|
||||
var icons = template.getIcon().split(",");
|
||||
return ContextHolder.INSTANCE.getContext().createIcon(A.iconsets.get(icons[0]).uid, Integer.parseInt(icons[1]), Integer.parseInt(icons[2]));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user