feat: damage stone on transmutation

This commit is contained in:
Timo Ley 2022-12-11 16:40:20 +01:00
parent a56eba3482
commit 35b99ffa98
3 changed files with 42 additions and 7 deletions

View File

@ -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));

View File

@ -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) {
}
}

View File

@ -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;
}