diff --git a/common/src/main/java/net/threetag/palladium/item/EnergyItem.java b/common/src/main/java/net/threetag/palladium/item/EnergyItem.java index 8239a6d4..7447471d 100644 --- a/common/src/main/java/net/threetag/palladium/item/EnergyItem.java +++ b/common/src/main/java/net/threetag/palladium/item/EnergyItem.java @@ -1,7 +1,9 @@ package net.threetag.palladium.item; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; public abstract class EnergyItem extends Item { @@ -26,4 +28,10 @@ public int getEnergyMaxOutput(ItemStack stack) { return maxOutput; } + @Override + public void onCraftedBy(ItemStack stack, Level level, Player player) { + if (!stack.hasTag() || !stack.getOrCreateTag().contains("energy")) { + stack.getOrCreateTag().putInt("energy", 0); + } + } } diff --git a/common/src/main/java/net/threetag/palladium/item/FluxCapacitorItem.java b/common/src/main/java/net/threetag/palladium/item/FluxCapacitorItem.java index a305825c..c1bb0b40 100644 --- a/common/src/main/java/net/threetag/palladium/item/FluxCapacitorItem.java +++ b/common/src/main/java/net/threetag/palladium/item/FluxCapacitorItem.java @@ -95,6 +95,12 @@ public RenderLayerContainer getRenderLayerContainer() { return this.renderLayerContainer; } + public ItemStack getEmptyInstance() { + var filled = this.getDefaultInstance(); + filled.getOrCreateTag().putInt("energy", 0); + return filled; + } + public ItemStack getFullyChargedInstance() { var filled = this.getDefaultInstance(); filled.getOrCreateTag().putInt("energy", this.getEnergyCapacity(filled)); diff --git a/common/src/main/java/net/threetag/palladium/item/PalladiumItems.java b/common/src/main/java/net/threetag/palladium/item/PalladiumItems.java index 6abd456b..bd1c0c92 100644 --- a/common/src/main/java/net/threetag/palladium/item/PalladiumItems.java +++ b/common/src/main/java/net/threetag/palladium/item/PalladiumItems.java @@ -98,12 +98,14 @@ public static void init() { SUIT_STAND.get(), LEAD_CIRCUIT.get(), QUARTZ_CIRCUIT.get(), - VIBRANIUM_CIRCUIT.get(), - LEAD_FLUX_CAPACITOR.get(), - LEAD_BLOCK.get(), - QUARTZ_FLUX_CAPACITOR.get(), - VIBRANIUM_FLUX_CAPACITOR.get(), - VIBRANIUM_WEAVE_BOOTS.get() + VIBRANIUM_CIRCUIT.get() + ); + + entries.add( + LEAD_FLUX_CAPACITOR.get().getEmptyInstance(), + QUARTZ_FLUX_CAPACITOR.get().getEmptyInstance(), + VIBRANIUM_FLUX_CAPACITOR.get().getEmptyInstance(), + VIBRANIUM_WEAVE_BOOTS.get().getDefaultInstance() ); }); @@ -111,11 +113,11 @@ public static void init() { entries.add(LEAD_CIRCUIT.get()); entries.add(QUARTZ_CIRCUIT.get()); entries.add(VIBRANIUM_CIRCUIT.get()); - entries.add(LEAD_FLUX_CAPACITOR.get()); + entries.add(LEAD_FLUX_CAPACITOR.get().getEmptyInstance()); entries.add(LEAD_FLUX_CAPACITOR.get().getFullyChargedInstance()); - entries.add(QUARTZ_FLUX_CAPACITOR.get()); + entries.add(QUARTZ_FLUX_CAPACITOR.get().getEmptyInstance()); entries.add(QUARTZ_FLUX_CAPACITOR.get().getFullyChargedInstance()); - entries.add(VIBRANIUM_FLUX_CAPACITOR.get()); + entries.add(VIBRANIUM_FLUX_CAPACITOR.get().getEmptyInstance()); entries.add(VIBRANIUM_FLUX_CAPACITOR.get().getFullyChargedInstance()); });