diff --git a/data.mv.db b/data.mv.db index c8a0751..852d8bc 100644 Binary files a/data.mv.db and b/data.mv.db differ diff --git a/maps/551e1afc-9cda-4d9f-8817-bfd831fc0a75.dat b/maps/551e1afc-9cda-4d9f-8817-bfd831fc0a75.dat index 3cd5383..9047a07 100644 Binary files a/maps/551e1afc-9cda-4d9f-8817-bfd831fc0a75.dat and b/maps/551e1afc-9cda-4d9f-8817-bfd831fc0a75.dat differ diff --git a/src/main/java/com/bartlomiejpluta/demo/gui/ItemIconView.java b/src/main/java/com/bartlomiejpluta/demo/gui/ItemIconView.java index 6d77057..704584c 100644 --- a/src/main/java/com/bartlomiejpluta/demo/gui/ItemIconView.java +++ b/src/main/java/com/bartlomiejpluta/demo/gui/ItemIconView.java @@ -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(); + } } } diff --git a/src/main/java/com/bartlomiejpluta/demo/world/item/ItemStack.java b/src/main/java/com/bartlomiejpluta/demo/world/item/ItemStack.java new file mode 100644 index 0000000..fa8ec6e --- /dev/null +++ b/src/main/java/com/bartlomiejpluta/demo/world/item/ItemStack.java @@ -0,0 +1,5 @@ +package com.bartlomiejpluta.demo.world.item; + +public interface ItemStack extends Item { + int count(); +} diff --git a/src/main/java/com/bartlomiejpluta/demo/world/weapon/Ammunition.java b/src/main/java/com/bartlomiejpluta/demo/world/weapon/Ammunition.java new file mode 100644 index 0000000..171cc1f --- /dev/null +++ b/src/main/java/com/bartlomiejpluta/demo/world/weapon/Ammunition.java @@ -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])); + } +}