From e16a39912e94615ea0983aa488d90a39013f21cc Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Thu, 28 Aug 2014 19:59:50 +0100 Subject: [PATCH 1/9] Configurator Overhaul. Modes now more accurately descriptive. Now only configurates in mode 0, mode 1 unchanged, mode 2 only rotates and mode 3 acts as a buildcraft wrench. --- src/main/java/mekanism/api/IMekWrench.java | 8 ++ .../common/block/BlockEnergyCube.java | 105 ++++++++--------- .../mekanism/common/block/BlockGasTank.java | 61 +++++----- .../mekanism/common/block/BlockMachine.java | 72 ++++++------ .../common/item/ItemConfigurator.java | 109 ++++++------------ .../common/multipart/PartSidedPipe.java | 4 +- .../common/multipart/PartTransmitter.java | 2 +- .../tile/TileEntitySalinationController.java | 14 +-- .../mekanism/common/util/MekanismUtils.java | 14 +++ .../common/block/BlockGenerator.java | 17 ++- .../resources/assets/mekanism/lang/en_US.lang | 4 +- 11 files changed, 191 insertions(+), 219 deletions(-) create mode 100644 src/main/java/mekanism/api/IMekWrench.java diff --git a/src/main/java/mekanism/api/IMekWrench.java b/src/main/java/mekanism/api/IMekWrench.java new file mode 100644 index 000000000..6ac4b052e --- /dev/null +++ b/src/main/java/mekanism/api/IMekWrench.java @@ -0,0 +1,8 @@ +package mekanism.api; + +import net.minecraft.entity.player.EntityPlayer; + +public interface IMekWrench +{ + public boolean canUseWrench(EntityPlayer player, int x, int y, int z); +} diff --git a/src/main/java/mekanism/common/block/BlockEnergyCube.java b/src/main/java/mekanism/common/block/BlockEnergyCube.java index ba43cd3e3..33b9a7fa7 100644 --- a/src/main/java/mekanism/common/block/BlockEnergyCube.java +++ b/src/main/java/mekanism/common/block/BlockEnergyCube.java @@ -152,71 +152,68 @@ public class BlockEnergyCube extends BlockContainer implements IPeripheralProvid { return true; } - else { - TileEntityEnergyCube tileEntity = (TileEntityEnergyCube)world.getTileEntity(x, y, z); - int metadata = world.getBlockMetadata(x, y, z); - if(entityplayer.getCurrentEquippedItem() != null) + TileEntityEnergyCube tileEntity = (TileEntityEnergyCube)world.getTileEntity(x, y, z); + + if(entityplayer.getCurrentEquippedItem() != null) + { + Item tool = entityplayer.getCurrentEquippedItem().getItem(); + + if(MekanismUtils.hasUsableWrench(entityplayer, x, y, z)) { - Item tool = entityplayer.getCurrentEquippedItem().getItem(); - - if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench && !tool.getUnlocalizedName().contains("omniwrench")) + if(entityplayer.isSneaking()) { - if(((IToolWrench)tool).canWrench(entityplayer, x, y, z)) - { - if(entityplayer.isSneaking()) - { - dismantleBlock(world, x, y, z, false); - return true; - } - - ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); - - int change = 0; - - switch(tileEntity.facing) - { - case 3: - change = 5; - break; - case 5: - change = 2; - break; - case 2: - change = 4; - break; - case 4: - change = 1; - break; - case 1: - change = 0; - break; - case 0: - change = 3; - break; - } - - tileEntity.setFacing((short)change); - world.notifyBlocksOfNeighborChange(x, y, z, this); - return true; - } - } - } - - if(tileEntity != null) - { - if(!entityplayer.isSneaking()) - { - entityplayer.openGui(Mekanism.instance, 8, world, x, y, z); + dismantleBlock(world, x, y, z, false); return true; } + + if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench) + ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); + + int change = 0; + + switch(tileEntity.facing) + { + case 3: + change = 5; + break; + case 5: + change = 2; + break; + case 2: + change = 4; + break; + case 4: + change = 1; + break; + case 1: + change = 0; + break; + case 0: + change = 3; + break; + } + + tileEntity.setFacing((short)change); + world.notifyBlocksOfNeighborChange(x, y, z, this); + return true; } } + + if(tileEntity != null) + { + if(!entityplayer.isSneaking()) + { + entityplayer.openGui(Mekanism.instance, 8, world, x, y, z); + return true; + } + } + return false; } @Override - public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z))) { diff --git a/src/main/java/mekanism/common/block/BlockGasTank.java b/src/main/java/mekanism/common/block/BlockGasTank.java index 6db0bfba9..510c71429 100644 --- a/src/main/java/mekanism/common/block/BlockGasTank.java +++ b/src/main/java/mekanism/common/block/BlockGasTank.java @@ -8,6 +8,8 @@ import mekanism.common.ItemAttacher; import mekanism.common.Mekanism; import mekanism.common.tile.TileEntityBasicBlock; import mekanism.common.tile.TileEntityGasTank; +import mekanism.common.util.MekanismUtils; + import net.minecraft.block.Block; import net.minecraft.block.BlockContainer; import net.minecraft.block.material.Material; @@ -94,46 +96,43 @@ public class BlockGasTank extends BlockContainer } TileEntityGasTank tileEntity = (TileEntityGasTank)world.getTileEntity(x, y, z); - int metadata = world.getBlockMetadata(x, y, z); if(entityplayer.getCurrentEquippedItem() != null) { Item tool = entityplayer.getCurrentEquippedItem().getItem(); - if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench && !tool.getUnlocalizedName().contains("omniwrench")) + if(MekanismUtils.hasUsableWrench(entityplayer, x, y, z)) { - if(((IToolWrench)tool).canWrench(entityplayer, x, y, z)) + if(entityplayer.isSneaking()) { - if(entityplayer.isSneaking()) - { - dismantleBlock(world, x, y, z, false); - return true; - } - - ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); - - int change = 0; - - switch(tileEntity.facing) - { - case 3: - change = 5; - break; - case 5: - change = 2; - break; - case 2: - change = 4; - break; - case 4: - change = 3; - break; - } - - tileEntity.setFacing((short)change); - world.notifyBlocksOfNeighborChange(x, y, z, this); + dismantleBlock(world, x, y, z, false); return true; } + + if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench) + ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); + + int change = 0; + + switch(tileEntity.facing) + { + case 3: + change = 5; + break; + case 5: + change = 2; + break; + case 2: + change = 4; + break; + case 4: + change = 3; + break; + } + + tileEntity.setFacing((short)change); + world.notifyBlocksOfNeighborChange(x, y, z, this); + return true; } } diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index e33f75ba1..8dfe18b1f 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -660,57 +660,55 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer { Item tool = entityplayer.getCurrentEquippedItem().getItem(); - if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench && !tool.getUnlocalizedName().contains("omniwrench")) + if(MekanismUtils.hasUsableWrench(entityplayer, x, y, z)) { - if(((IToolWrench)tool).canWrench(entityplayer, x, y, z)) + if(entityplayer.isSneaking() && metadata != 13) { - if(entityplayer.isSneaking() && metadata != 13) - { - dismantleBlock(world, x, y, z, false); - return true; - } + dismantleBlock(world, x, y, z, false); + return true; + } + if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench) ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); - int change = 0; + int change = 0; - switch(tileEntity.facing) - { - case 3: - change = 5; - break; - case 5: - change = 2; - break; - case 2: - change = 4; - break; - case 4: - change = 3; - break; - } + switch(tileEntity.facing) + { + case 3: + change = 5; + break; + case 5: + change = 2; + break; + case 2: + change = 4; + break; + case 4: + change = 3; + break; + } - if(tileEntity instanceof TileEntityLogisticalSorter) + if(tileEntity instanceof TileEntityLogisticalSorter) + { + if(!((TileEntityLogisticalSorter)tileEntity).hasInventory()) { - if(!((TileEntityLogisticalSorter)tileEntity).hasInventory()) + for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { - for(ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) - { - TileEntity tile = Coord4D.get(tileEntity).getFromSide(dir).getTileEntity(world); + TileEntity tile = Coord4D.get(tileEntity).getFromSide(dir).getTileEntity(world); - if(tileEntity instanceof IInventory) - { - change = dir.getOpposite().ordinal(); - break; - } + if(tileEntity instanceof IInventory) + { + change = dir.getOpposite().ordinal(); + break; } } } - - tileEntity.setFacing((short)change); - world.notifyBlocksOfNeighborChange(x, y, z, this); - return true; } + + tileEntity.setFacing((short)change); + world.notifyBlocksOfNeighborChange(x, y, z, this); + return true; } } diff --git a/src/main/java/mekanism/common/item/ItemConfigurator.java b/src/main/java/mekanism/common/item/ItemConfigurator.java index ebdd64791..5e9664e24 100644 --- a/src/main/java/mekanism/common/item/ItemConfigurator.java +++ b/src/main/java/mekanism/common/item/ItemConfigurator.java @@ -8,6 +8,7 @@ import java.util.Random; import mekanism.api.Coord4D; import mekanism.api.EnumColor; import mekanism.api.IConfigurable; +import mekanism.api.IMekWrench; import mekanism.api.Range4D; import mekanism.common.IInvConfiguration; import mekanism.common.Mekanism; @@ -31,7 +32,7 @@ import cpw.mods.fml.common.Optional.Interface; import cpw.mods.fml.common.Optional.Method; @Interface(iface = "buildcraft.api.tools.IToolWrench", modid = "BuildCraftAPI|tools") -public class ItemConfigurator extends ItemEnergized implements IToolWrench +public class ItemConfigurator extends ItemEnergized implements IMekWrench, IToolWrench { public final int ENERGY_PER_CONFIGURE = 400; public final int ENERGY_PER_ITEM_DUMP = 8; @@ -48,19 +49,6 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench { super.addInformation(itemstack, entityplayer, list, flag); list.add(EnumColor.PINK + MekanismUtils.localize("gui.state") + ": " + EnumColor.GREY + getStateDisplay(getState(itemstack))); - - if(getState(itemstack) == 3) - { - if(hasLink(itemstack)) - { - Coord4D obj = getLink(itemstack); - - list.add(EnumColor.GREY + MekanismUtils.localize("tooltip.configurator.linkMsg") + " " + EnumColor.INDIGO + MekanismUtils.getCoordDisplay(obj) + EnumColor.GREY + ", " + MekanismUtils.localize("tooltip.configurator.dim") + " " + EnumColor.INDIGO + obj.dimensionId); - } - else { - list.add(EnumColor.GREY + MekanismUtils.localize("tooltip.configurator.noLink")); - } - } } @Override @@ -71,20 +59,7 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench Block block = world.getBlock(x, y, z); TileEntity tile = world.getTileEntity(x, y, z); - if(tile instanceof IConfigurable) - { - IConfigurable config = (IConfigurable)tile; - - if(player.isSneaking()) - { - config.onSneakRightClick(player, side); - } - else { - config.onRightClick(player, side); - } - } - - if(getState(stack) == 0) + if(getState(stack) == 0) //Configurate { if(tile instanceof IInvConfiguration) { @@ -112,12 +87,23 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench } } } + else if(tile instanceof IConfigurable) + { + IConfigurable config = (IConfigurable)tile; + + if(player.isSneaking()) + { + return config.onSneakRightClick(player, side); + } + else { + return config.onRightClick(player, side); + } + } } - else if(getState(stack) == 1) + else if(getState(stack) == 1) //Empty { if(tile instanceof IInventory) { - int itemAmount = 0; IInventory inv = (IInventory)tile; if(!(inv instanceof TileEntityElectricChest) || (((TileEntityElectricChest)inv).canAccess())) @@ -174,7 +160,7 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench } } } - else if(getState(stack) == 2) + else if(getState(stack) == 2) //Rotate { ForgeDirection axis = ForgeDirection.getOrientation(side); List l = Arrays.asList(block.getValidRotations(world, x, y, z)); @@ -189,16 +175,9 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench return true; } - else if(getState(stack) == 3) + else if(getState(stack) == 3) //Wrench { - if(!world.isRemote && player.isSneaking()) - { - Coord4D obj = new Coord4D(x, y, z, world.provider.dimensionId); - player.addChatMessage(new ChatComponentText(EnumColor.DARK_BLUE + "[Mekanism]" + EnumColor.GREY + " " + MekanismUtils.localize("tooltip.configurator.setLink") + " " + EnumColor.INDIGO + MekanismUtils.getCoordDisplay(obj) + EnumColor.GREY + ", " + MekanismUtils.localize("tooltip.configurator.dim") + " " + EnumColor.INDIGO + obj.dimensionId)); - setLink(stack, obj); - - return true; - } + return false; } } @@ -210,13 +189,13 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench switch(state) { case 0: - return MekanismUtils.localize("tooltip.configurator.modify"); + return MekanismUtils.localize("tooltip.configurator.configurate"); case 1: return MekanismUtils.localize("tooltip.configurator.empty"); case 2: - return MekanismUtils.localize("tooltip.configurator.wrench"); + return MekanismUtils.localize("tooltip.configurator.rotate"); case 3: - return MekanismUtils.localize("tooltip.configurator.link"); + return MekanismUtils.localize("tooltip.configurator.wrench"); } return "unknown"; @@ -266,36 +245,6 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench return state; } - public boolean hasLink(ItemStack itemStack) - { - return getLink(itemStack) != null; - } - - public Coord4D getLink(ItemStack itemStack) - { - if(itemStack.stackTagCompound == null || !itemStack.getTagCompound().hasKey("position")) - { - return null; - } - - return Coord4D.read(itemStack.getTagCompound().getCompoundTag("position")); - } - - public void setLink(ItemStack itemStack, Coord4D obj) - { - if(itemStack.getTagCompound() == null) - { - itemStack.setTagCompound(new NBTTagCompound()); - } - - itemStack.getTagCompound().setTag("position", obj.write(new NBTTagCompound())); - } - - public void clearLink(ItemStack itemStack) - { - itemStack.getTagCompound().removeTag("position"); - } - @Override public boolean canSend(ItemStack itemStack) { @@ -306,10 +255,22 @@ public class ItemConfigurator extends ItemEnergized implements IToolWrench @Method(modid = "BuildCraftAPI|tools") public boolean canWrench(EntityPlayer player, int x, int y, int z) { - return !(player.worldObj.getTileEntity(x, y, z) instanceof TileEntityBasicBlock); + return canUseWrench(player, x, y, z); } @Override @Method(modid = "BuildCraftAPI|tools") public void wrenchUsed(EntityPlayer player, int x, int y, int z) {} + + @Override + public boolean canUseWrench(EntityPlayer player, int x, int y, int z) + { + return getState(player.getCurrentEquippedItem()) == 3; + } + + @Override + public boolean doesSneakBypassUse(World world, int x, int y, int z, EntityPlayer player) + { + return getState(player.getCurrentEquippedItem()) == 3; + } } diff --git a/src/main/java/mekanism/common/multipart/PartSidedPipe.java b/src/main/java/mekanism/common/multipart/PartSidedPipe.java index 838396aba..d4dc9ef6a 100644 --- a/src/main/java/mekanism/common/multipart/PartSidedPipe.java +++ b/src/main/java/mekanism/common/multipart/PartSidedPipe.java @@ -21,6 +21,8 @@ import mekanism.common.Mekanism; import mekanism.common.Tier; import mekanism.common.item.ItemConfigurator; import mekanism.common.multipart.TransmitterType.Size; +import mekanism.common.util.MekanismUtils; + import net.minecraft.client.particle.EffectRenderer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; @@ -424,7 +426,7 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart, return false; } - if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && item.getItem() instanceof IToolWrench && !(item.getItem() instanceof ItemConfigurator) && player.isSneaking()) + if(MekanismUtils.hasUsableWrench(player, x(), y(), z()) && player.isSneaking()) { if(!world().isRemote) { diff --git a/src/main/java/mekanism/common/multipart/PartTransmitter.java b/src/main/java/mekanism/common/multipart/PartTransmitter.java index 01301374d..68000cf7a 100644 --- a/src/main/java/mekanism/common/multipart/PartTransmitter.java +++ b/src/main/java/mekanism/common/multipart/PartTransmitter.java @@ -18,7 +18,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.util.ForgeDirection; import codechicken.multipart.TileMultipart; -public abstract class PartTransmitter> extends PartSidedPipe implements IGridTransmitter, IConfigurable +public abstract class PartTransmitter> extends PartSidedPipe implements IGridTransmitter { public N theNetwork; diff --git a/src/main/java/mekanism/common/tile/TileEntitySalinationController.java b/src/main/java/mekanism/common/tile/TileEntitySalinationController.java index 85d2ee778..0657569ea 100644 --- a/src/main/java/mekanism/common/tile/TileEntitySalinationController.java +++ b/src/main/java/mekanism/common/tile/TileEntitySalinationController.java @@ -28,7 +28,7 @@ import net.minecraftforge.fluids.FluidTank; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; -public class TileEntitySalinationController extends TileEntitySalinationTank implements IConfigurable +public class TileEntitySalinationController extends TileEntitySalinationTank { public static final int MAX_BRINE = 10000; public static final int MAX_SOLARS = 4; @@ -626,18 +626,6 @@ public class TileEntitySalinationController extends TileEntitySalinationTank imp return startPoint; } - @Override - public boolean onSneakRightClick(EntityPlayer player, int side) - { - return false; - } - - @Override - public boolean onRightClick(EntityPlayer player, int side) - { - return false; - } - @Override public void handlePacketData(ByteBuf dataStream) { diff --git a/src/main/java/mekanism/common/util/MekanismUtils.java b/src/main/java/mekanism/common/util/MekanismUtils.java index ee8f2aef1..a21b5b956 100644 --- a/src/main/java/mekanism/common/util/MekanismUtils.java +++ b/src/main/java/mekanism/common/util/MekanismUtils.java @@ -15,6 +15,7 @@ import java.util.List; import mekanism.api.Chunk3D; import mekanism.api.Coord4D; import mekanism.api.EnumColor; +import mekanism.api.IMekWrench; import mekanism.api.gas.Gas; import mekanism.api.gas.GasStack; import mekanism.common.EnergyDisplay; @@ -70,9 +71,12 @@ import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.IFluidBlock; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; +import cpw.mods.fml.common.ModAPIManager; import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.registry.GameData; +import buildcraft.api.tools.IToolWrench; + /** * Utilities used by Mekanism. All miscellaneous methods are located here. * @author AidanBrady @@ -1345,6 +1349,16 @@ public final class MekanismUtils return Item.getIdFromItem(itemStack.getItem()); } + public static boolean hasUsableWrench(EntityPlayer player, int x, int y, int z) + { + ItemStack tool = player.getCurrentEquippedItem(); + if(tool.getItem() instanceof IMekWrench && ((IMekWrench)tool.getItem()).canUseWrench(player, x, y, z)) + return true; + if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool.getItem() instanceof IToolWrench && ((IToolWrench)tool.getItem()).canWrench(player, x, y, z)) + return true; + return false; + } + public static enum ResourceType { GUI("gui"), diff --git a/src/main/java/mekanism/generators/common/block/BlockGenerator.java b/src/main/java/mekanism/generators/common/block/BlockGenerator.java index d2f6af17d..9789e0089 100644 --- a/src/main/java/mekanism/generators/common/block/BlockGenerator.java +++ b/src/main/java/mekanism/generators/common/block/BlockGenerator.java @@ -3,6 +3,7 @@ package mekanism.generators.common.block; import java.util.List; import java.util.Random; +import mekanism.api.IMekWrench; import mekanism.api.energy.IEnergizedItem; import mekanism.common.IActiveState; import mekanism.common.IBoundingBlock; @@ -12,6 +13,7 @@ import mekanism.common.ISustainedInventory; import mekanism.common.ISustainedTank; import mekanism.common.ItemAttacher; import mekanism.common.Mekanism; +import mekanism.common.integration.MekanismHooks; import mekanism.common.tile.TileEntityBasicBlock; import mekanism.common.tile.TileEntityElectricBlock; import mekanism.common.util.MekanismUtils; @@ -310,7 +312,9 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP if(entityplayer.getCurrentEquippedItem() != null) { - if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && entityplayer.getCurrentEquippedItem().getItem() instanceof IToolWrench && !entityplayer.getCurrentEquippedItem().getUnlocalizedName().contains("omniwrench")) + Item tool = entityplayer.getCurrentEquippedItem().getItem(); + + if(MekanismUtils.hasUsableWrench(entityplayer, x, y, z)) { if(entityplayer.isSneaking()) { @@ -318,7 +322,8 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP return true; } - ((IToolWrench)entityplayer.getCurrentEquippedItem().getItem()).wrenchUsed(entityplayer, x, y, z); + if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench) + ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); int change = 0; @@ -430,12 +435,10 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP } @Override - public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z))) { - TileEntityElectricBlock tileEntity = (TileEntityElectricBlock)world.getTileEntity(x, y, z); - float motion = 0.7F; double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D; double motionY = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D; @@ -464,7 +467,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP electricItem.setEnergy(itemStack, tileEntity.electricityStored); ISustainedInventory inventory = (ISustainedInventory)itemStack.getItem(); - inventory.setInventory(((ISustainedInventory)tileEntity).getInventory(), itemStack); + inventory.setInventory(tileEntity.getInventory(), itemStack); if(tileEntity instanceof ISustainedData) { @@ -615,6 +618,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP return true; } + @Override public ForgeDirection[] getValidRotations(World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); @@ -633,6 +637,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP return valid; } + @Override public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis) { TileEntity tile = world.getTileEntity(x, y, z); diff --git a/src/main/resources/assets/mekanism/lang/en_US.lang b/src/main/resources/assets/mekanism/lang/en_US.lang index 2adc3bbfe..40571741e 100644 --- a/src/main/resources/assets/mekanism/lang/en_US.lang +++ b/src/main/resources/assets/mekanism/lang/en_US.lang @@ -440,10 +440,10 @@ gui.digitalMiner.inverse=Inverse mode recipe.mekanismShaped=Shaped //Item and block tooltip text -tooltip.configurator.modify=Modify +tooltip.configurator.configurate=Configurate tooltip.configurator.empty=Empty +tooltip.configurator.rotate=Rotate tooltip.configurator.wrench=Wrench -tooltip.configurator.link=Link tooltip.configurator.pumpReset=Reset Electric Pump calculation tooltip.configurator.toggleDiverter=Diverter mode changed to tooltip.configurator.toggleColor=Color bumped to From e3fc6945325eaa22543b9731548da81b45301de2 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Thu, 28 Aug 2014 20:00:56 +0100 Subject: [PATCH 2/9] Fix Gas Generator item gas tank restoration. --- src/main/java/mekanism/api/gas/GasStack.java | 2 +- .../mekanism/generators/common/tile/TileEntityGasGenerator.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/mekanism/api/gas/GasStack.java b/src/main/java/mekanism/api/gas/GasStack.java index 0f3f40bfb..8002139f6 100644 --- a/src/main/java/mekanism/api/gas/GasStack.java +++ b/src/main/java/mekanism/api/gas/GasStack.java @@ -84,7 +84,7 @@ public class GasStack GasStack stack = new GasStack(); stack.read(nbtTags); - if(stack.getGas() == null) + if(stack.getGas() == null || stack.amount <= 0) { return null; } diff --git a/src/main/java/mekanism/generators/common/tile/TileEntityGasGenerator.java b/src/main/java/mekanism/generators/common/tile/TileEntityGasGenerator.java index 61c38c3d4..881318d3e 100644 --- a/src/main/java/mekanism/generators/common/tile/TileEntityGasGenerator.java +++ b/src/main/java/mekanism/generators/common/tile/TileEntityGasGenerator.java @@ -290,6 +290,6 @@ public class TileEntityGasGenerator extends TileEntityGenerator implements IGasH @Override public void readSustainedData(ItemStack itemStack) { - fuelTank.setGas(GasStack.readFromNBT(itemStack.stackTagCompound.getCompoundTag("fuelTank"))); + fuelTank.read(itemStack.stackTagCompound.getCompoundTag("fuelTank")); } } From 9294719ab2c5ba194158e7804b371a64e0856e79 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Thu, 28 Aug 2014 20:07:51 +0100 Subject: [PATCH 3/9] Cleanup Remove unused vars, add @Overrides, update deprecated methods. --- src/main/java/mekanism/common/block/BlockBasic.java | 5 +++-- src/main/java/mekanism/common/block/BlockCardboardBox.java | 2 +- src/main/java/mekanism/common/block/BlockEnergyCube.java | 2 ++ src/main/java/mekanism/common/block/BlockGasTank.java | 4 +++- src/main/java/mekanism/common/block/BlockMachine.java | 4 +++- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/main/java/mekanism/common/block/BlockBasic.java b/src/main/java/mekanism/common/block/BlockBasic.java index 50109498c..4b53b05c0 100644 --- a/src/main/java/mekanism/common/block/BlockBasic.java +++ b/src/main/java/mekanism/common/block/BlockBasic.java @@ -750,11 +750,10 @@ public class BlockBasic extends Block } @Override - public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z))) { - TileEntityBasicBlock tileEntity = (TileEntityBasicBlock)world.getTileEntity(x, y, z); float motion = 0.7F; double motionX = (world.rand.nextFloat() * motion) + (1.0F - motion) * 0.5D; @@ -803,6 +802,7 @@ public class BlockBasic extends Block } } + @Override public ForgeDirection[] getValidRotations(World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); @@ -821,6 +821,7 @@ public class BlockBasic extends Block return valid; } + @Override public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis) { TileEntity tile = world.getTileEntity(x, y, z); diff --git a/src/main/java/mekanism/common/block/BlockCardboardBox.java b/src/main/java/mekanism/common/block/BlockCardboardBox.java index d42695edb..e49ee4e0d 100644 --- a/src/main/java/mekanism/common/block/BlockCardboardBox.java +++ b/src/main/java/mekanism/common/block/BlockCardboardBox.java @@ -165,7 +165,7 @@ public class BlockCardboardBox extends BlockContainer } @Override - public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z))) { diff --git a/src/main/java/mekanism/common/block/BlockEnergyCube.java b/src/main/java/mekanism/common/block/BlockEnergyCube.java index 33b9a7fa7..80c924a58 100644 --- a/src/main/java/mekanism/common/block/BlockEnergyCube.java +++ b/src/main/java/mekanism/common/block/BlockEnergyCube.java @@ -324,6 +324,7 @@ public class BlockEnergyCube extends BlockContainer implements IPeripheralProvid return true; } + @Override public ForgeDirection[] getValidRotations(World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); @@ -342,6 +343,7 @@ public class BlockEnergyCube extends BlockContainer implements IPeripheralProvid return valid; } + @Override public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis) { TileEntity tile = world.getTileEntity(x, y, z); diff --git a/src/main/java/mekanism/common/block/BlockGasTank.java b/src/main/java/mekanism/common/block/BlockGasTank.java index 510c71429..faa15ca04 100644 --- a/src/main/java/mekanism/common/block/BlockGasTank.java +++ b/src/main/java/mekanism/common/block/BlockGasTank.java @@ -148,7 +148,7 @@ public class BlockGasTank extends BlockContainer } @Override - public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z))) { @@ -237,6 +237,7 @@ public class BlockGasTank extends BlockContainer return itemStack; } + @Override public ForgeDirection[] getValidRotations(World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); @@ -255,6 +256,7 @@ public class BlockGasTank extends BlockContainer return valid; } + @Override public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis) { TileEntity tile = world.getTileEntity(x, y, z); diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index 8dfe18b1f..7ea012e69 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -827,7 +827,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer } @Override - public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z) + public boolean removedByPlayer(World world, EntityPlayer player, int x, int y, int z, boolean willHarvest) { if(!player.capabilities.isCreativeMode && !world.isRemote && canHarvestBlock(player, world.getBlockMetadata(x, y, z))) { @@ -1278,6 +1278,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer return null; } + @Override public ForgeDirection[] getValidRotations(World world, int x, int y, int z) { TileEntity tile = world.getTileEntity(x, y, z); @@ -1296,6 +1297,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer return valid; } + @Override public boolean rotateBlock(World world, int x, int y, int z, ForgeDirection axis) { TileEntity tile = world.getTileEntity(x, y, z); From c71c5d9fe723b9b789019e2d25788b95e025dac4 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Fri, 29 Aug 2014 03:14:00 +0100 Subject: [PATCH 4/9] Fix integer conversion --- src/main/java/mekanism/common/util/MekanismUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/mekanism/common/util/MekanismUtils.java b/src/main/java/mekanism/common/util/MekanismUtils.java index a21b5b956..c24e13bc0 100644 --- a/src/main/java/mekanism/common/util/MekanismUtils.java +++ b/src/main/java/mekanism/common/util/MekanismUtils.java @@ -632,7 +632,7 @@ public final class MekanismUtils */ public static int getSecondaryEnergyPerTick(IUpgradeManagement mgmt, int def) { - return def * (int)Math.pow(Mekanism.maxUpgradeMultiplier, mgmt.getSpeedMultiplier()/8.0); + return (int)(def * Math.pow(Mekanism.maxUpgradeMultiplier, mgmt.getSpeedMultiplier()/8.0)); } /** From a8d04828ea7db308658d69d904bd21472965d077 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Thu, 28 Aug 2014 20:59:22 +0100 Subject: [PATCH 5/9] Clean up some stuff using ForgeDirection's rotation matrix. --- .../common/block/BlockEnergyCube.java | 26 ++----------------- .../mekanism/common/block/BlockGasTank.java | 22 ++-------------- .../mekanism/common/block/BlockMachine.java | 20 ++------------ .../common/block/BlockGenerator.java | 22 +++------------- 4 files changed, 9 insertions(+), 81 deletions(-) diff --git a/src/main/java/mekanism/common/block/BlockEnergyCube.java b/src/main/java/mekanism/common/block/BlockEnergyCube.java index 80c924a58..c1b6a9c6c 100644 --- a/src/main/java/mekanism/common/block/BlockEnergyCube.java +++ b/src/main/java/mekanism/common/block/BlockEnergyCube.java @@ -141,7 +141,7 @@ public class BlockEnergyCube extends BlockContainer implements IPeripheralProvid } @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int i1, float f1, float f2, float f3) + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float f1, float f2, float f3) { if(ItemAttacher.canAttach(entityplayer.getCurrentEquippedItem())) { @@ -170,29 +170,7 @@ public class BlockEnergyCube extends BlockContainer implements IPeripheralProvid if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench) ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); - int change = 0; - - switch(tileEntity.facing) - { - case 3: - change = 5; - break; - case 5: - change = 2; - break; - case 2: - change = 4; - break; - case 4: - change = 1; - break; - case 1: - change = 0; - break; - case 0: - change = 3; - break; - } + int change = ForgeDirection.ROTATION_MATRIX[side][tileEntity.facing]; tileEntity.setFacing((short)change); world.notifyBlocksOfNeighborChange(x, y, z, this); diff --git a/src/main/java/mekanism/common/block/BlockGasTank.java b/src/main/java/mekanism/common/block/BlockGasTank.java index faa15ca04..a98018019 100644 --- a/src/main/java/mekanism/common/block/BlockGasTank.java +++ b/src/main/java/mekanism/common/block/BlockGasTank.java @@ -33,8 +33,6 @@ import cpw.mods.fml.relauncher.SideOnly; public class BlockGasTank extends BlockContainer { - public Random machineRand = new Random(); - public BlockGasTank() { super(Material.iron); @@ -83,7 +81,7 @@ public class BlockGasTank extends BlockContainer } @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int facing, float playerX, float playerY, float playerZ) + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float playerX, float playerY, float playerZ) { if(ItemAttacher.canAttach(entityplayer.getCurrentEquippedItem())) { @@ -112,23 +110,7 @@ public class BlockGasTank extends BlockContainer if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench) ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); - int change = 0; - - switch(tileEntity.facing) - { - case 3: - change = 5; - break; - case 5: - change = 2; - break; - case 2: - change = 4; - break; - case 4: - change = 3; - break; - } + int change = ForgeDirection.ROTATION_MATRIX[ForgeDirection.UP.ordinal()][tileEntity.facing]; tileEntity.setFacing((short)change); world.notifyBlocksOfNeighborChange(x, y, z, this); diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index 7ea012e69..89a77169d 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -641,7 +641,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer } @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int facing, float posX, float posY, float posZ) + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float posX, float posY, float posZ) { if(ItemAttacher.canAttach(entityplayer.getCurrentEquippedItem())) { @@ -671,23 +671,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench) ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); - int change = 0; - - switch(tileEntity.facing) - { - case 3: - change = 5; - break; - case 5: - change = 2; - break; - case 2: - change = 4; - break; - case 4: - change = 3; - break; - } + int change = ForgeDirection.ROTATION_MATRIX[ForgeDirection.UP.ordinal()][tileEntity.facing]; if(tileEntity instanceof TileEntityLogisticalSorter) { diff --git a/src/main/java/mekanism/generators/common/block/BlockGenerator.java b/src/main/java/mekanism/generators/common/block/BlockGenerator.java index 9789e0089..0a6f9f2ac 100644 --- a/src/main/java/mekanism/generators/common/block/BlockGenerator.java +++ b/src/main/java/mekanism/generators/common/block/BlockGenerator.java @@ -295,7 +295,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP } @Override - public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int facing, float playerX, float playerY, float playerZ) + public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer entityplayer, int side, float playerX, float playerY, float playerZ) { if(ItemAttacher.canAttach(entityplayer.getCurrentEquippedItem())) { @@ -325,23 +325,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP if(ModAPIManager.INSTANCE.hasAPI("BuildCraftAPI|tools") && tool instanceof IToolWrench) ((IToolWrench)tool).wrenchUsed(entityplayer, x, y, z); - int change = 0; - - switch(tileEntity.facing) - { - case 3: - change = 5; - break; - case 5: - change = 2; - break; - case 2: - change = 4; - break; - case 4: - change = 3; - break; - } + int change = ForgeDirection.ROTATION_MATRIX[ForgeDirection.UP.ordinal()][tileEntity.facing]; tileEntity.setFacing((short)change); world.notifyBlocksOfNeighborChange(x, y, z, this); @@ -351,7 +335,7 @@ public class BlockGenerator extends BlockContainer implements ISpecialBounds, IP if(metadata == 3 && entityplayer.getCurrentEquippedItem() != null && entityplayer.getCurrentEquippedItem().isItemEqual(new ItemStack(MekanismGenerators.Generator, 1, 2))) { - if(((TileEntityBasicBlock)world.getTileEntity(x, y, z)).facing != facing) + if(((TileEntityBasicBlock)world.getTileEntity(x, y, z)).facing != side) { return false; } From 87a692a32595ce1863a6971e84a6e0e2b99b07cc Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Thu, 28 Aug 2014 20:59:36 +0100 Subject: [PATCH 6/9] Fix Sorter facing calculation. --- src/main/java/mekanism/common/block/BlockMachine.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/mekanism/common/block/BlockMachine.java b/src/main/java/mekanism/common/block/BlockMachine.java index 89a77169d..59c649489 100644 --- a/src/main/java/mekanism/common/block/BlockMachine.java +++ b/src/main/java/mekanism/common/block/BlockMachine.java @@ -681,7 +681,7 @@ public class BlockMachine extends BlockContainer implements ISpecialBounds, IPer { TileEntity tile = Coord4D.get(tileEntity).getFromSide(dir).getTileEntity(world); - if(tileEntity instanceof IInventory) + if(tile instanceof IInventory) { change = dir.getOpposite().ordinal(); break; From 3462126f3b1013df1d5ad52a8d78587e58bbf8d8 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Sat, 30 Aug 2014 03:55:00 +0100 Subject: [PATCH 7/9] Oops. Missed a loop with direct emission to BC. --- src/main/java/mekanism/common/util/CableUtils.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/mekanism/common/util/CableUtils.java b/src/main/java/mekanism/common/util/CableUtils.java index fd1d76871..31ed1a67b 100644 --- a/src/main/java/mekanism/common/util/CableUtils.java +++ b/src/main/java/mekanism/common/util/CableUtils.java @@ -237,17 +237,15 @@ public final class CableUtils { double sent = 0; boolean tryAgain = false; + int i = 0; do { - tryAgain = false; - double prev = sent; sent += emit_do(emitter, outputtingSides, energyToSend-sent, tryAgain); - if(energyToSend-sent > 0 && sent-prev > 0) - { - tryAgain = true; - } + tryAgain = energyToSend-sent > 0 && sent-prev > 0 && i < 100; + + i++; } while(tryAgain); emitter.setEnergy(emitter.getEnergy() - sent); From 7aa2617a9643d76c0a0b5e639422b6b2dc4c7fb7 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Mon, 1 Sep 2014 20:17:55 +0100 Subject: [PATCH 8/9] Continue the attempting to be killing the bug with the fire... --- src/main/java/mekanism/common/FluidNetwork.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/mekanism/common/FluidNetwork.java b/src/main/java/mekanism/common/FluidNetwork.java index 7635d9ef7..982efc17b 100644 --- a/src/main/java/mekanism/common/FluidNetwork.java +++ b/src/main/java/mekanism/common/FluidNetwork.java @@ -179,7 +179,10 @@ public class FluidNetwork extends DynamicNetwork remaining--; } - fluidSent += acceptor.fill(acceptorDirections.get(acceptor).getOpposite(), new FluidStack(fluidToSend.fluidID, currentSending), doTransfer); + if(acceptorDirections.get(acceptor) != null && fluidToSend != null) + { + fluidSent += acceptor.fill(acceptorDirections.get(acceptor).getOpposite(), new FluidStack(fluidToSend.fluidID, currentSending), doTransfer); + } } } } From cb1a40a13784f1ef6ad94e74cee0238ac09d4001 Mon Sep 17 00:00:00 2001 From: Ben Spiers Date: Wed, 3 Sep 2014 19:25:29 +0100 Subject: [PATCH 9/9] Try and fix the mouse binding issue. --- src/main/java/mekanism/common/item/ItemBlockMachine.java | 3 ++- .../mekanism/generators/common/item/ItemBlockGenerator.java | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/mekanism/common/item/ItemBlockMachine.java b/src/main/java/mekanism/common/item/ItemBlockMachine.java index 3c7e15a30..6b769a1a3 100644 --- a/src/main/java/mekanism/common/item/ItemBlockMachine.java +++ b/src/main/java/mekanism/common/item/ItemBlockMachine.java @@ -48,6 +48,7 @@ import mekanism.common.util.MekanismUtils; import mekanism.common.util.TransporterUtils; import net.minecraft.block.Block; import net.minecraft.block.material.Material; +import net.minecraft.client.settings.GameSettings; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -152,7 +153,7 @@ public class ItemBlockMachine extends ItemBlock implements IEnergizedItem, ISpec if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { list.add(MekanismUtils.localize("tooltip.hold") + " " + EnumColor.INDIGO + "shift" + EnumColor.GREY + " " + MekanismUtils.localize("tooltip.forDetails") + "."); - list.add(MekanismUtils.localize("tooltip.hold") + " " + EnumColor.AQUA + "shift" + EnumColor.GREY + " and " + EnumColor.AQUA + Keyboard.getKeyName(MekanismKeyHandler.modeSwitchKey.getKeyCode()) + EnumColor.GREY + " " + MekanismUtils.localize("tooltip.forDesc") + "."); + list.add(MekanismUtils.localize("tooltip.hold") + " " + EnumColor.AQUA + "shift" + EnumColor.GREY + " and " + EnumColor.AQUA + GameSettings.getKeyDisplayString(MekanismKeyHandler.modeSwitchKey.getKeyCode()) + EnumColor.GREY + " " + MekanismUtils.localize("tooltip.forDesc") + "."); } else if(!Keyboard.isKeyDown(MekanismKeyHandler.modeSwitchKey.getKeyCode())) { diff --git a/src/main/java/mekanism/generators/common/item/ItemBlockGenerator.java b/src/main/java/mekanism/generators/common/item/ItemBlockGenerator.java index 83b05f678..fa8bf78cd 100644 --- a/src/main/java/mekanism/generators/common/item/ItemBlockGenerator.java +++ b/src/main/java/mekanism/generators/common/item/ItemBlockGenerator.java @@ -18,6 +18,7 @@ import mekanism.common.util.LangUtils; import mekanism.common.util.MekanismUtils; import mekanism.generators.common.block.BlockGenerator.GeneratorType; import net.minecraft.block.Block; +import net.minecraft.client.settings.GameSettings; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; @@ -98,7 +99,7 @@ public class ItemBlockGenerator extends ItemBlock implements IEnergizedItem, ISp if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { list.add(MekanismUtils.localize("tooltip.hold") + " " + EnumColor.INDIGO + "shift" + EnumColor.GREY + " " + MekanismUtils.localize("tooltip.forDetails") + "."); - list.add(MekanismUtils.localize("tooltip.hold") + " " + EnumColor.AQUA + "shift" + EnumColor.GREY + " and " + EnumColor.AQUA + Keyboard.getKeyName(MekanismKeyHandler.modeSwitchKey.getKeyCode()) + EnumColor.GREY + " " + MekanismUtils.localize("tooltip.forDesc") + "."); + list.add(MekanismUtils.localize("tooltip.hold") + " " + EnumColor.AQUA + "shift" + EnumColor.GREY + " and " + EnumColor.AQUA + GameSettings.getKeyDisplayString(MekanismKeyHandler.modeSwitchKey.getKeyCode()) + EnumColor.GREY + " " + MekanismUtils.localize("tooltip.forDesc") + "."); } else if(!Keyboard.isKeyDown(MekanismKeyHandler.modeSwitchKey.getKeyCode())) {