From 35b99ffa98289cd15081ab23224d2a14eb702967 Mon Sep 17 00:00:00 2001 From: Timo Ley Date: Sun, 11 Dec 2022 16:40:20 +0100 Subject: [PATCH] feat: damage stone on transmutation --- .../java/com/pahimar/ee3/init/Recipes.java | 3 +- .../ee3/item/ItemPhilosophersStone.java | 18 +++++++++++- .../TileEntityTransmutationTablet.java | 28 ++++++++++++++++--- 3 files changed, 42 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/pahimar/ee3/init/Recipes.java b/src/main/java/com/pahimar/ee3/init/Recipes.java index 193d6b45..793a52e5 100644 --- a/src/main/java/com/pahimar/ee3/init/Recipes.java +++ b/src/main/java/com/pahimar/ee3/init/Recipes.java @@ -38,7 +38,6 @@ public class Recipes GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModBlocks.researchStation), "ipi", " s ", "sss", 'i', "ingotIron", 's', Blocks.stone, 'p', "slabWood")); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(ModItems.stoneInert), "sis", "igi", "sis", 's', Blocks.stone, 'i', "ingotIron", 'g', "ingotGold")); - } private static void initAludelRecipes() @@ -72,7 +71,7 @@ public class Recipes AludelRecipeManager.getInstance().addRecipe(new ItemStack(ModBlocks.alchemicalChest, 1, 2), new ItemStack(ModBlocks.alchemicalChest, 1, 1), new ItemStack(ModItems.alchemicalDust, 8, 3)); // Minium Stone - AludelRecipeManager.getInstance().addRecipe(new ItemStack(ModItems.stoneMinium), new ItemStack(ModItems.stoneInert), new ItemStack(ModItems.alchemicalDust, 8, 3)); + AludelRecipeManager.getInstance().addRecipe(new ItemStack(ModItems.stoneMinium), new ItemStack(ModItems.stoneInert), new ItemStack(ModItems.shardMinium, 8)); // Alchenomicon AludelRecipeManager.getInstance().addRecipe(new ItemStack(ModItems.alchenomicon), new ItemStack(Items.book), new ItemStack(ModItems.alchemicalDust, 1, 3)); diff --git a/src/main/java/com/pahimar/ee3/item/ItemPhilosophersStone.java b/src/main/java/com/pahimar/ee3/item/ItemPhilosophersStone.java index 8035e865..5872cdb5 100644 --- a/src/main/java/com/pahimar/ee3/item/ItemPhilosophersStone.java +++ b/src/main/java/com/pahimar/ee3/item/ItemPhilosophersStone.java @@ -7,8 +7,9 @@ import com.pahimar.ee3.util.IOverlayItem; import com.pahimar.ee3.util.LogHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.world.World; -public class ItemPhilosophersStone extends ItemEE implements IKeyBound, IOverlayItem +public class ItemPhilosophersStone extends ItemEE implements IKeyBound, IOverlayItem, ITransmutationStone { private int maxChargeLevel; @@ -48,4 +49,19 @@ public class ItemPhilosophersStone extends ItemEE implements IKeyBound, IOverlay { LogHelper.info("{} {} {}", entityPlayer.toString(), itemStack.toString(), key.toString()); } + + @Override + public void openPortableCraftingGUI(EntityPlayer p0, ItemStack p1) { + + } + + @Override + public void openPortableTransmutationGUI(EntityPlayer p0, ItemStack p1) { + + } + + @Override + public void transmuteBlock(ItemStack p0, EntityPlayer p1, World p2, int p3, int p4, int p5, int p6) { + + } } diff --git a/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java b/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java index 3af6de33..de920cdb 100644 --- a/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java +++ b/src/main/java/com/pahimar/ee3/tileentity/TileEntityTransmutationTablet.java @@ -5,9 +5,8 @@ import com.pahimar.ee3.api.exchange.EnergyValue; import com.pahimar.ee3.api.exchange.EnergyValueRegistryProxy; import com.pahimar.ee3.api.exchange.ITransmutationContainer; import com.pahimar.ee3.block.BlockAshInfusedStoneSlab; +import com.pahimar.ee3.item.ITransmutationStone; import com.pahimar.ee3.item.ItemAlchenomicon; -import com.pahimar.ee3.item.ItemMiniumStone; -import com.pahimar.ee3.item.ItemPhilosophersStone; import com.pahimar.ee3.knowledge.PlayerKnowledge; import com.pahimar.ee3.network.PacketHandler; import com.pahimar.ee3.network.message.MessageTileEntityTransmutationTablet; @@ -57,7 +56,7 @@ public class TileEntityTransmutationTablet extends TileEntityEE implements ISide @Override public EnergyValue getAvailableEnergy() { - if (inventory[STONE_INDEX] != null && inventory[STONE_INDEX].getItem() instanceof ItemMiniumStone) { + if (inventory[STONE_INDEX] != null && inventory[STONE_INDEX].getItem() instanceof ITransmutationStone) { return availableEnergy; } else { return new EnergyValue(0); @@ -132,6 +131,27 @@ public class TileEntityTransmutationTablet extends TileEntityEE implements ISide } } + int damageAmount = 1; + + if (outputEnergyValue.getValue() >= 8192) { + damageAmount = 200; + } else if (outputEnergyValue.getValue() >= 2048) { + damageAmount = 50; + } else if (outputEnergyValue.getValue() >= 64) { + damageAmount = 10; + } + + ItemStack stone = this.inventory[STONE_INDEX]; + + if (stone != null && stone.isItemStackDamageable()) { + int newDamage = stone.getItemDamage() + damageAmount; + if (newDamage >= stone.getMaxDamage()) { + this.inventory[STONE_INDEX] = null; + } else { + stone.setItemDamage(newDamage); + } + } + updateEnergyValueFromInventory(); } @@ -332,7 +352,7 @@ public class TileEntityTransmutationTablet extends TileEntityEE implements ISide { return true; } - else if (slotIndex == STONE_INDEX && (itemStack.getItem() instanceof ItemMiniumStone || itemStack.getItem() instanceof ItemPhilosophersStone)) + else if (slotIndex == STONE_INDEX && itemStack.getItem() instanceof ITransmutationStone) { return true; }