diff --git a/README.md b/README.md index b31f6cc..1ba81c4 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Submit any bug reports / suggestions via [issue tracker](https://github.com/Jack ## Contact Me - Twitter - [@JackyyTV](https://twitter.com/JackyyTV) -- Discord - Jacky#3044 +- Discord - Jacky#1234 - Twitch - [Jackyy](https://www.twitch.tv/jackyy) - Reddit - [Jacky1356400](https://www.reddit.com/message/compose/?to=Jacky1356400) diff --git a/gradle.properties b/gradle.properties index 8dd4963..a389fa7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,6 +2,6 @@ # This is required to provide enough memory for the Minecraft decompilation process. org.gradle.jvmargs=-Xmx4G mc_version=1.12.2 -forge_version=1.12.2-14.23.3.2678 -mod_version=2.7.2 -mappings_version=snapshot_20180503 +forge_version=1.12.2-14.23.4.2729 +mod_version=2.7.3 +mappings_version=snapshot_20180704 diff --git a/src/main/java/jackyy/exchangers/Exchangers.java b/src/main/java/jackyy/exchangers/Exchangers.java index c2dd91a..fd9be48 100644 --- a/src/main/java/jackyy/exchangers/Exchangers.java +++ b/src/main/java/jackyy/exchangers/Exchangers.java @@ -19,7 +19,7 @@ @Mod(modid = Exchangers.MODID, version = Exchangers.VERSION, name = Exchangers.MODNAME, dependencies = Exchangers.DEPENDS, certificateFingerprint = "@FINGERPRINT@", acceptedMinecraftVersions = Exchangers.MCVERSION, useMetadata = true) public class Exchangers { - public static final String VERSION = "1.12.2-2.7.2"; + public static final String VERSION = "1.12.2-2.7.3"; public static final String MCVERSION = "[1.12,1.13)"; public static final String MODID = "exchangers"; public static final String MODNAME = "Exchangers"; diff --git a/src/main/java/jackyy/exchangers/handler/ClientEventsHandler.java b/src/main/java/jackyy/exchangers/handler/ClientEventsHandler.java index 4eb7887..38a8c56 100644 --- a/src/main/java/jackyy/exchangers/handler/ClientEventsHandler.java +++ b/src/main/java/jackyy/exchangers/handler/ClientEventsHandler.java @@ -22,6 +22,7 @@ import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTUtil; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.AxisAlignedBB; import net.minecraft.util.math.BlockPos; @@ -132,11 +133,10 @@ public void renderWorldLastEvent(RenderWorldLastEvent event) { IBlockState state = world.getBlockState(mouseOver.getBlockPos()); Block block = state.getBlock(); if (block.getMaterial(state) != Material.AIR) { - int meta = block.getMetaFromState(state); ItemStack stack = player.getHeldItemMainhand(); float partialTicks = event.getPartialTicks(); if (!stack.isEmpty() && stack.getItem() instanceof ItemExchangerBase && stack.getTagCompound() != null && mouseOver.sideHit != null) { - Set coordinates = ExchangerHandler.findSuitableBlocks(stack, player.getEntityWorld(), mouseOver.sideHit, mouseOver.getBlockPos(), block, meta); + Set coordinates = ExchangerHandler.findSuitableBlocks(stack, player.getEntityWorld(), mouseOver.sideHit, mouseOver.getBlockPos(), block, block.getMetaFromState(state)); double offsetX = player.prevPosX + (player.posX - player.prevPosX) * (double) partialTicks; double offsetY = player.prevPosY + (player.posY - player.prevPosY) * (double) partialTicks; double offsetZ = player.prevPosZ + (player.posZ - player.prevPosZ) * (double) partialTicks; @@ -153,10 +153,10 @@ public void renderWorldLastEvent(RenderWorldLastEvent event) { for (BlockPos coordinate : coordinates) { String exId = ExchangerHandler.getTagCompound(stack).getString("block"); + IBlockState exState = NBTUtil.readBlockState(ExchangerHandler.getTagCompound(stack).getCompoundTag("blockstate")); Block exBlock = Block.getBlockFromName(exId); - int exMeta = ExchangerHandler.getTagCompound(stack).getInteger("meta"); float blockHardness = block.getBlockHardness(state, world, coordinate); - if (world.isAirBlock(coordinate) || (exBlock == block && exMeta == meta)) { + if (world.isAirBlock(coordinate) || (exBlock == block && exState == state)) { continue; } double renderX = coordinate.getX() - offsetX; diff --git a/src/main/java/jackyy/exchangers/handler/ExchangerHandler.java b/src/main/java/jackyy/exchangers/handler/ExchangerHandler.java index 3f053a7..4de4764 100644 --- a/src/main/java/jackyy/exchangers/handler/ExchangerHandler.java +++ b/src/main/java/jackyy/exchangers/handler/ExchangerHandler.java @@ -1,13 +1,10 @@ package jackyy.exchangers.handler; -import jackyy.exchangers.client.Keys; import jackyy.exchangers.helper.ChatHelper; -import jackyy.exchangers.helper.StringHelper; +import jackyy.exchangers.item.ItemExchangerBase; import jackyy.exchangers.registry.ModConfig; -import jackyy.exchangers.util.IExchanger; -import net.minecraft.block.*; +import net.minecraft.block.Block; import net.minecraft.block.state.IBlockState; -import net.minecraft.client.util.ITooltipFlag; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; @@ -19,10 +16,12 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.*; +import net.minecraft.nbt.NBTUtil; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.ResourceLocation; +import net.minecraft.util.SoundCategory; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.util.BlockSnapshot; @@ -32,21 +31,7 @@ import java.util.*; -public class ExchangerHandler extends Item implements IExchanger { - - public static final int MODE_1X1 = 0; - public static final int MODE_3X3 = 1; - public static final int MODE_5X5 = 2; - public static final int MODE_7X7 = 3; - public static final int MODE_9X9 = 4; - public static final int MODE_11X11 = 5; - public static final int MODE_13X13 = 6; - public static final int MODE_15X15 = 7; - public static final int MODE_17X17 = 8; - public static final int MODE_19X19 = 9; - public static final int MODE_21X21 = 10; - public static final int MODE_23X23 = 11; - public static final int MODE_25X25 = 12; +public class ExchangerHandler { public static final String[] modeSwitchList = new String[] { "1x1", "3x3", "5x5", "7x7", "9x9", @@ -57,74 +42,56 @@ public static void setDefaultTagCompound(ItemStack stack) { if (stack.getTagCompound() == null) { NBTTagCompound compound = new NBTTagCompound(); compound.setString("block", "minecraft:air"); - compound.setInteger("meta", 0); + compound.setTag("blockstate", new NBTTagCompound()); compound.setInteger("mode", 0); compound.setBoolean("forceDropItems", false); stack.setTagCompound(compound); } else { if (!stack.getTagCompound().hasKey("block")) { stack.getTagCompound().setString("block", "minecraft:air"); - } else if (!stack.getTagCompound().hasKey("meta")) { - stack.getTagCompound().setInteger("meta", 0); + } else if (!stack.getTagCompound().hasKey("blockstate")) { + stack.getTagCompound().setTag("blockstate", new NBTTagCompound()); } else if (!stack.getTagCompound().hasKey("mode")) { stack.getTagCompound().setInteger("mode", 0); } else if (!stack.getTagCompound().hasKey("forceDropItems")) { stack.getTagCompound().setBoolean("forceDropItems", false); + } else if (stack.getTagCompound().hasKey("meta")) { + stack.getTagCompound().removeTag("meta"); } } } - @Override - public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag flag) { - super.addInformation(stack, world, tooltip, flag); - if (!StringHelper.isShiftKeyDown()) { - tooltip.add(StringHelper.getShiftText()); - } - - setDefaultTagCompound(stack); - - NBTTagCompound compound = stack.getTagCompound(); - String id = compound.getString("block"); - - if (StringHelper.isShiftKeyDown()) { - if (id.equals("minecraft:air")) { - tooltip.add(StringHelper.localize("tooltip.no_selected_block")); - } else { - Block block = Block.getBlockFromName(id); - int meta = compound.getInteger("meta"); - tooltip.add(StringHelper.localize("tooltip.selected_block") + " " + getBlockName(block, meta)); - } - tooltip.add(StringHelper.localize("tooltip.current_range") + " " + modeSwitchList[compound.getInteger("mode")]); - tooltip.add(StringHelper.localize("tooltip.max_range") + " " + modeSwitchList[getMaxRange()]); - tooltip.add(StringHelper.localize("tooltip.max_harvest_level") + " " + StringHelper.formatHarvestLevel(getHarvestLevel())); - if (ModConfig.misc.doExchangersSilkTouch) { - tooltip.add(StringHelper.localize("tooltip.silk_touch.on")); - } else { - tooltip.add(StringHelper.localize("tooltip.silk_touch.off")); - } - if (compound.getBoolean("forceDropItems")) { - tooltip.add(StringHelper.localize("tooltip.force_drop_items.on") + " " + TextFormatting.GRAY + "(" + TextFormatting.GREEN + Keys.FORCE_DROP_ITEMS_KEY.getDisplayName() + TextFormatting.GRAY + ")"); - } else { - tooltip.add(StringHelper.localize("tooltip.force_drop_items.off") + " " + TextFormatting.GRAY + "(" + TextFormatting.GREEN + Keys.FORCE_DROP_ITEMS_KEY.getDisplayName() + TextFormatting.GRAY + ")"); - } - tooltip.add(StringHelper.localize("tooltip.shift1")); - tooltip.add(StringHelper.localize("tooltip.shift2")); - tooltip.add(StringHelper.localize("tooltip.shift3") + " " + "(" + TextFormatting.GREEN + Keys.MODE_KEY.getDisplayName() + TextFormatting.GRAY + ")"); - tooltip.add(StringHelper.getTierText(getTier())); - } + private static int getExPerBlockUse(ItemStack stack) { + return ((ItemExchangerBase) stack.getItem()).getPerBlockUse(); } - private int getPerBlockEnergy(ItemStack stack) { + private static int getPerBlockEnergy(ItemStack stack) { if (ModConfig.misc.unbreakingPoweredExchangers) { int level = MathHelper.clamp(EnchantmentHelper.getEnchantmentLevel(Enchantments.UNBREAKING, stack), 0, 10); if (new Random().nextInt(2 + level) >= 2) { return 0; } } - return this.getPerBlockUse(); + return getExPerBlockUse(stack); + } + + private static int getExHarvestLevel(ItemStack stack) { + return ((ItemExchangerBase) stack.getItem()).getHarvestLevel(); + } + + private static int getExRange(ItemStack stack) { + return ((ItemExchangerBase) stack.getItem()).getMaxRange(); + } + + private static boolean getExIsCreative(ItemStack stack) { + return ((ItemExchangerBase) stack.getItem()).isCreative(); + } + + private static boolean getExIsPowered(ItemStack stack) { + return ((ItemExchangerBase) stack.getItem()).isPowered(); } - public void switchMode(EntityPlayer player, ItemStack stack) { + public static void switchMode(EntityPlayer player, ItemStack stack) { setDefaultTagCompound(stack); int modeSwitch = stack.getTagCompound().getInteger("mode"); if (player.isSneaking()) { @@ -134,16 +101,16 @@ public void switchMode(EntityPlayer player, ItemStack stack) { } ItemStack heldItem = player.getHeldItemMainhand(); if (!heldItem.isEmpty()) { - if (modeSwitch > getMaxRange()) { - modeSwitch = MODE_1X1; - } else if (modeSwitch < MODE_1X1) { - modeSwitch = getMaxRange(); + if (modeSwitch > getExRange(stack)) { + modeSwitch = 0; + } else if (modeSwitch < 0) { + modeSwitch = getExRange(stack); } } stack.getTagCompound().setInteger("mode", modeSwitch); } - public void toggleForceDropItems(EntityPlayer player, ItemStack stack) { + public static void toggleForceDropItems(EntityPlayer player, ItemStack stack) { setDefaultTagCompound(stack); boolean toggle = stack.getTagCompound().getBoolean("forceDropItems"); ItemStack heldItem = player.getHeldItemMainhand(); @@ -154,25 +121,13 @@ public void toggleForceDropItems(EntityPlayer player, ItemStack stack) { ChatHelper.msgPlayer(player, toggle ? "msg.force_drop_items.on" : "msg.force_drop_items.off"); } - @Override - public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { - if (!world.isRemote) { - if (player.isSneaking()) { - selectBlock(player.getHeldItemMainhand(), player, world, pos); - } else { - placeBlock(player.getHeldItemMainhand(), player, world, pos, side); - } - } - return EnumActionResult.SUCCESS; - } - public static boolean isWhitelisted(World world, BlockPos pos) { for (String block : ModConfig.misc.blocksWhitelist) { if (world.getBlockState(pos).getBlock().getRegistryName().equals(new ResourceLocation(block))) { return true; } } - return world.getBlockState(pos).getBlock().getRegistryName().getResourceDomain().equals("tconstruct"); + return world.getBlockState(pos).getBlock().getRegistryName().equals("tconstruct:seared"); } public static boolean isBlacklisted(World world, BlockPos pos) { @@ -184,34 +139,20 @@ public static boolean isBlacklisted(World world, BlockPos pos) { return false; } - private boolean isSpecial(Block block) { - return block instanceof BlockLog - || block instanceof BlockTrapDoor - || block instanceof BlockDoor - || block instanceof BlockFenceGate; - } - - private boolean isMoreSpecial(Block block) { - return block instanceof BlockTorch; - } - @SuppressWarnings("deprecation") - private void placeBlock(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side) { + public static void placeBlock(ItemStack stack, EntityPlayer player, World world, BlockPos pos, EnumFacing side) { NBTTagCompound tagCompound = stack.getTagCompound(); - Block block; - int meta; String id = tagCompound.getString("block"); - block = Block.getBlockFromName(id); - meta = tagCompound.getInteger("meta"); - + Block block = Block.getBlockFromName(id); + IBlockState state = NBTUtil.readBlockState(tagCompound.getCompoundTag("blockstate")); IBlockState oldState = world.getBlockState(pos); Block oldblock = oldState.getBlock(); - int oldmeta = oldblock.getMetaFromState(oldState); float blockHardness = oldblock.getBlockHardness(oldState, world, pos); + if (id.equals("minecraft:air")) { return; - } else if ((block == oldblock) && (meta == oldmeta)) { + } else if ((block == oldblock) && (state == oldState)) { return; } else if (world.getTileEntity(pos) != null && !isWhitelisted(world, pos)) { ChatHelper.msgPlayer(player, "error.invalid_block.te"); @@ -219,25 +160,27 @@ private void placeBlock(ItemStack stack, EntityPlayer player, World world, Block } else if (isBlacklisted(world, pos)) { ChatHelper.msgPlayer(player, "error.blacklisted"); return; - } else if (!isCreative() && blockHardness < -0.1F) { + } else if (!getExIsCreative(stack) && blockHardness < -0.1F) { ChatHelper.msgPlayer(player, "error.invalid_block.unbreakable"); return; - } else if (!isCreative() && isPowered() && stack.getTagCompound().getInteger("Energy") < getPerBlockEnergy(stack)) { + } else if (!getExIsCreative(stack) && getExIsPowered(stack) && stack.getTagCompound().getInteger("Energy") < getPerBlockEnergy(stack)) { ChatHelper.msgPlayer(player, "error.out_of_power"); return; - } else if (!isCreative() && getHarvestLevel() < oldblock.getHarvestLevel(oldState)) { + } else if (!getExIsCreative(stack) && getExHarvestLevel(stack) < oldblock.getHarvestLevel(oldState)) { ChatHelper.msgPlayer(player, "error.low_harvest_level"); return; } + Set coordinates = findSuitableBlocks(stack, world, side, pos, oldblock, oldmeta); boolean notEnough = false; world.captureBlockSnapshots = false; + for (BlockPos coordinate : coordinates) { BlockEvent.PlaceEvent event = new BlockEvent.PlaceEvent(BlockSnapshot.getBlockSnapshot(world, coordinate, 3), Blocks.AIR.getDefaultState(), player, player.getActiveHand()); - world.setBlockState(coordinate, block.getStateFromMeta(meta), 3); + world.setBlockState(coordinate, state, 3); if (!MinecraftForge.EVENT_BUS.post(event)) { - if (consumeItemInInventory(Item.getItemFromBlock(block), meta, player.inventory, player)) { - if (!player.capabilities.isCreativeMode && !isCreative()) { + if (consumeItemInInventory(Item.getItemFromBlock(block), state.getBlock().getItem(world, pos, state).getMetadata(), player.inventory, player)) { + if (!player.capabilities.isCreativeMode && !getExIsCreative(stack)) { if (ModConfig.misc.doExchangersSilkTouch || EnchantmentHelper.getEnchantmentLevel(Enchantments.SILK_TOUCH, stack) > 0) { ItemStack oldblockItem = oldblock.getItem(world, pos, oldState); giveItem(world, player, oldblockItem); @@ -248,7 +191,7 @@ private void placeBlock(ItemStack stack, EntityPlayer player, World world, Block giveItem(world, player, oldblockItem); } } - if (!isPowered()) { + if (!getExIsPowered(stack)) { stack.damageItem(1, player); } else if (stack.getTagCompound().getInteger("Energy") >= getPerBlockEnergy(stack)) { stack.getTagCompound().setInteger("Energy", stack.getTagCompound().getInteger("Energy") - getPerBlockEnergy(stack)); @@ -277,40 +220,28 @@ private void placeBlock(ItemStack stack, EntityPlayer player, World world, Block } @SuppressWarnings("deprecation") - private void selectBlock(ItemStack stack, EntityPlayer player, World world, BlockPos pos) { + public static void selectBlock(ItemStack stack, EntityPlayer player, World world, BlockPos pos) { setDefaultTagCompound(stack); IBlockState state = world.getBlockState(pos); Block block = state.getBlock(); - int meta; - if (isSpecial(block)) { - meta = block.getDefaultState().getBlock().getMetaFromState(block.getDefaultState()); - } else if (isMoreSpecial(block)) { - meta = 0; - } else { - meta = block.getMetaFromState(state); - } NBTTagCompound tagCompound = getTagCompound(stack); - String name = getBlockName(block, meta); float blockHardness = block.getBlockHardness(state, world, pos); - if (name == null) { - ChatHelper.msgPlayer(player, "error.invalid_block.null"); - return; - } else if (world.getTileEntity(pos) != null && !isWhitelisted(world, pos)) { + if (world.getTileEntity(pos) != null && !isWhitelisted(world, pos)) { ChatHelper.msgPlayer(player, "error.invalid_block.te"); return; } else if (isBlacklisted(world, pos)) { ChatHelper.msgPlayer(player, "error.blacklisted"); return; - } else if (!isCreative() && blockHardness < -0.1F) { + } else if (!getExIsCreative(stack) && blockHardness < -0.1F) { ChatHelper.msgPlayer(player, "error.invalid_block.unbreakable"); return; } String id = Block.REGISTRY.getNameForObject(block).toString(); tagCompound.setString("block", id); - tagCompound.setInteger("meta", meta); + NBTUtil.writeBlockState(tagCompound.getCompoundTag("blockstate"), state); } - protected static Set findSuitableBlocks(ItemStack stack, World world, EnumFacing sideHit, BlockPos pos, Block centerBlock, int centerMeta) { + public static Set findSuitableBlocks(ItemStack stack, World world, EnumFacing sideHit, BlockPos pos, Block centerBlock, int centerMeta) { Set coordinates = new HashSet<>(); int mode = stack.getTagCompound().getInteger("mode"); @@ -402,8 +333,8 @@ private static boolean isLocationContained(List possibleLocs, BlockPos return false; } - private boolean consumeItemInInventory(Item item, int meta, InventoryPlayer playerInv, EntityPlayer player) { - if (player.capabilities.isCreativeMode || isCreative()) { + private static boolean consumeItemInInventory(Item item, int meta, InventoryPlayer playerInv, EntityPlayer player) { + if (player.capabilities.isCreativeMode || getExIsCreative(player.getHeldItemMainhand())) { return true; } int i = findItem(item, meta, playerInv); @@ -463,7 +394,7 @@ private static void giveItem(World world, EntityPlayer player, ItemStack oldStac } } - protected static NBTTagCompound getTagCompound(ItemStack stack) { + public static NBTTagCompound getTagCompound(ItemStack stack) { NBTTagCompound tagCompound = stack.getTagCompound(); if (tagCompound == null) { tagCompound = new NBTTagCompound(); @@ -472,9 +403,16 @@ protected static NBTTagCompound getTagCompound(ItemStack stack) { return tagCompound; } - private static String getBlockName(Block block, int meta) { + public static String getBlockName(Block block, int meta) { ItemStack stack = new ItemStack(block, 1, meta); - return stack.getDisplayName(); + String name; + try { + name = stack.getDisplayName(); + return name; + } catch (NullPointerException e) { + e.printStackTrace(); + } + return "Unable to fetch block name."; } } diff --git a/src/main/java/jackyy/exchangers/handler/network/PacketToggleForceDropItemsMode.java b/src/main/java/jackyy/exchangers/handler/network/PacketToggleForceDropItemsMode.java index d98e799..ba3f9bc 100644 --- a/src/main/java/jackyy/exchangers/handler/network/PacketToggleForceDropItemsMode.java +++ b/src/main/java/jackyy/exchangers/handler/network/PacketToggleForceDropItemsMode.java @@ -1,6 +1,7 @@ package jackyy.exchangers.handler.network; import io.netty.buffer.ByteBuf; +import jackyy.exchangers.handler.ExchangerHandler; import jackyy.exchangers.item.ItemExchangerBase; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; @@ -23,8 +24,7 @@ public IMessage onMessage(PacketToggleForceDropItemsMode message, MessageContext EntityPlayerMP playerMP = context.getServerHandler().player; ItemStack heldItem = playerMP.getHeldItemMainhand(); if (!heldItem.isEmpty() && heldItem.getItem() instanceof ItemExchangerBase) { - ItemExchangerBase exchanger = (ItemExchangerBase) (heldItem.getItem()); - exchanger.toggleForceDropItems(playerMP, heldItem); + ExchangerHandler.toggleForceDropItems(playerMP, heldItem); } return null; } diff --git a/src/main/java/jackyy/exchangers/handler/network/PacketToggleMode.java b/src/main/java/jackyy/exchangers/handler/network/PacketToggleMode.java index 471d0b4..bc08b22 100644 --- a/src/main/java/jackyy/exchangers/handler/network/PacketToggleMode.java +++ b/src/main/java/jackyy/exchangers/handler/network/PacketToggleMode.java @@ -1,6 +1,7 @@ package jackyy.exchangers.handler.network; import io.netty.buffer.ByteBuf; +import jackyy.exchangers.handler.ExchangerHandler; import jackyy.exchangers.item.ItemExchangerBase; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.ItemStack; @@ -23,8 +24,7 @@ public IMessage onMessage(PacketToggleMode message, MessageContext context) { EntityPlayerMP playerMP = context.getServerHandler().player; ItemStack heldItem = playerMP.getHeldItemMainhand(); if (!heldItem.isEmpty() && heldItem.getItem() instanceof ItemExchangerBase) { - ItemExchangerBase exchanger = (ItemExchangerBase) (heldItem.getItem()); - exchanger.switchMode(playerMP, heldItem); + ExchangerHandler.switchMode(playerMP, heldItem); } return null; } diff --git a/src/main/java/jackyy/exchangers/helper/NBTHelper.java b/src/main/java/jackyy/exchangers/helper/NBTHelper.java index bb37afd..817cd28 100644 --- a/src/main/java/jackyy/exchangers/helper/NBTHelper.java +++ b/src/main/java/jackyy/exchangers/helper/NBTHelper.java @@ -6,7 +6,7 @@ public class NBTHelper { public static NBTTagCompound getTag(ItemStack stack) { - if(!stack.hasTagCompound()) + if (!stack.hasTagCompound()) stack.setTagCompound(new NBTTagCompound()); return stack.getTagCompound(); } @@ -25,7 +25,7 @@ public static int getInt(ItemStack stack, String key) { public static int receiveEnergy(ItemStack container, int energy, int maxEnergy, boolean simulate) { int stored = getEnergyStored(container); - int accepted = Math.min(energy, maxEnergy-stored); + int accepted = Math.min(energy, maxEnergy - stored); if (!simulate) { stored += accepted; setInt(container, "Energy", stored); diff --git a/src/main/java/jackyy/exchangers/item/ItemExchangerBase.java b/src/main/java/jackyy/exchangers/item/ItemExchangerBase.java index a3809ef..f7b3221 100644 --- a/src/main/java/jackyy/exchangers/item/ItemExchangerBase.java +++ b/src/main/java/jackyy/exchangers/item/ItemExchangerBase.java @@ -1,21 +1,35 @@ package jackyy.exchangers.item; import jackyy.exchangers.Exchangers; +import jackyy.exchangers.client.Keys; import jackyy.exchangers.handler.ExchangerHandler; import jackyy.exchangers.helper.StringHelper; +import jackyy.exchangers.registry.ModConfig; +import jackyy.exchangers.util.IExchanger; +import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.client.util.ITooltipFlag; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.enchantment.Enchantment; +import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Enchantments; +import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.nbt.NBTUtil; +import net.minecraft.util.EnumActionResult; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.EnumHand; import net.minecraft.util.NonNullList; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.text.TextFormatting; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import java.util.List; -public class ItemExchangerBase extends ExchangerHandler { +public class ItemExchangerBase extends Item implements IExchanger { public ItemExchangerBase() { setMaxStackSize(1); @@ -32,15 +46,60 @@ public boolean isPowered() { return false; } - @Override - public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag flag) { - super.addInformation(stack, world, tooltip, flag); + @Override + public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { + if (!world.isRemote) { + if (player.isSneaking()) { + ExchangerHandler.selectBlock(player.getHeldItemMainhand(), player, world, pos); + } else { + ExchangerHandler.placeBlock(player.getHeldItemMainhand(), player, world, pos, side); + } + } + return EnumActionResult.SUCCESS; + } + + @Override + public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag flag) { + super.addInformation(stack, world, tooltip, flag); + if (!StringHelper.isShiftKeyDown()) { + tooltip.add(StringHelper.getShiftText()); + } + + ExchangerHandler.setDefaultTagCompound(stack); + + NBTTagCompound compound = stack.getTagCompound(); + String id = compound.getString("block"); + IBlockState state = NBTUtil.readBlockState(compound.getCompoundTag("blockstate")); + if (StringHelper.isShiftKeyDown()) { + if (id.equals("minecraft:air")) { + tooltip.add(StringHelper.localize("tooltip.no_selected_block")); + } else { + Block block = Block.getBlockFromName(id); + tooltip.add(StringHelper.localize("tooltip.selected_block") + " " + ExchangerHandler.getBlockName(block, state.getBlock().getMetaFromState(state))); + } + tooltip.add(StringHelper.localize("tooltip.current_range") + " " + ExchangerHandler.modeSwitchList[compound.getInteger("mode")]); + tooltip.add(StringHelper.localize("tooltip.max_range") + " " + ExchangerHandler.modeSwitchList[getMaxRange()]); + tooltip.add(StringHelper.localize("tooltip.max_harvest_level") + " " + StringHelper.formatHarvestLevel(getHarvestLevel())); + if (ModConfig.misc.doExchangersSilkTouch) { + tooltip.add(StringHelper.localize("tooltip.silk_touch.on")); + } else { + tooltip.add(StringHelper.localize("tooltip.silk_touch.off")); + } + if (compound.getBoolean("forceDropItems")) { + tooltip.add(StringHelper.localize("tooltip.force_drop_items.on") + " " + TextFormatting.GRAY + "(" + TextFormatting.GREEN + Keys.FORCE_DROP_ITEMS_KEY.getDisplayName() + TextFormatting.GRAY + ")"); + } else { + tooltip.add(StringHelper.localize("tooltip.force_drop_items.off") + " " + TextFormatting.GRAY + "(" + TextFormatting.GREEN + Keys.FORCE_DROP_ITEMS_KEY.getDisplayName() + TextFormatting.GRAY + ")"); + } + tooltip.add(StringHelper.localize("tooltip.shift1")); + tooltip.add(StringHelper.localize("tooltip.shift2")); + tooltip.add(StringHelper.localize("tooltip.shift3") + " " + "(" + TextFormatting.GREEN + Keys.MODE_KEY.getDisplayName() + TextFormatting.GRAY + ")"); + tooltip.add(StringHelper.getTierText(getTier())); if (!isPowered()) { tooltip.add(StringHelper.formatNumber(stack.getMaxDamage() - stack.getItemDamage()) + " / " + StringHelper.formatNumber(stack.getMaxDamage()) + " " + StringHelper.localize("tooltip.durability")); } } - } + } @Override @SideOnly(Side.CLIENT) public void getSubItems(CreativeTabs tab, NonNullList list) { diff --git a/src/main/java/jackyy/exchangers/item/ItemExchangerBasePowered.java b/src/main/java/jackyy/exchangers/item/ItemExchangerBasePowered.java index 49cbdb3..eb77df8 100644 --- a/src/main/java/jackyy/exchangers/item/ItemExchangerBasePowered.java +++ b/src/main/java/jackyy/exchangers/item/ItemExchangerBasePowered.java @@ -79,6 +79,9 @@ public double getDurabilityForDisplay(ItemStack stack) { @Override public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag flag) { super.addInformation(stack, world, tooltip, flag); + if (!Loader.isModLoaded("redstoneflux")) { + tooltip.add(StringHelper.localize("tooltip.redstone_flux_warning")); + } if (StringHelper.isShiftKeyDown()) { tooltip.add(StringHelper.formatNumber(getEnergyStored(stack)) + " / " + StringHelper.formatNumber(getMaxEnergyStored(stack)) + " RF"); } diff --git a/src/main/java/jackyy/exchangers/item/enderio/ItemConductiveIronExchanger.java b/src/main/java/jackyy/exchangers/item/enderio/ItemConductiveIronExchanger.java index 0b338fb..e124707 100644 --- a/src/main/java/jackyy/exchangers/item/enderio/ItemConductiveIronExchanger.java +++ b/src/main/java/jackyy/exchangers/item/enderio/ItemConductiveIronExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_3X3; + return ModConfig.enderIOTweaks.conductiveMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/enderio/ItemDarkSteelExchanger.java b/src/main/java/jackyy/exchangers/item/enderio/ItemDarkSteelExchanger.java index 0ef316a..29d0b27 100644 --- a/src/main/java/jackyy/exchangers/item/enderio/ItemDarkSteelExchanger.java +++ b/src/main/java/jackyy/exchangers/item/enderio/ItemDarkSteelExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_13X13; + return ModConfig.enderIOTweaks.darkSteelMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/enderio/ItemElectricalSteelExchanger.java b/src/main/java/jackyy/exchangers/item/enderio/ItemElectricalSteelExchanger.java index 1c2ab86..8579fe2 100644 --- a/src/main/java/jackyy/exchangers/item/enderio/ItemElectricalSteelExchanger.java +++ b/src/main/java/jackyy/exchangers/item/enderio/ItemElectricalSteelExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_9X9; + return ModConfig.enderIOTweaks.electricalSteelMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/enderio/ItemEnergeticExchanger.java b/src/main/java/jackyy/exchangers/item/enderio/ItemEnergeticExchanger.java index 914b419..edc8b6e 100644 --- a/src/main/java/jackyy/exchangers/item/enderio/ItemEnergeticExchanger.java +++ b/src/main/java/jackyy/exchangers/item/enderio/ItemEnergeticExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_11X11; + return ModConfig.enderIOTweaks.energeticMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/enderio/ItemPulsatingIronExchanger.java b/src/main/java/jackyy/exchangers/item/enderio/ItemPulsatingIronExchanger.java index 3c2083c..1b783f1 100644 --- a/src/main/java/jackyy/exchangers/item/enderio/ItemPulsatingIronExchanger.java +++ b/src/main/java/jackyy/exchangers/item/enderio/ItemPulsatingIronExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_5X5; + return ModConfig.enderIOTweaks.pulsatingMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/enderio/ItemVibrantExchanger.java b/src/main/java/jackyy/exchangers/item/enderio/ItemVibrantExchanger.java index 8d36c8f..0c1166b 100644 --- a/src/main/java/jackyy/exchangers/item/enderio/ItemVibrantExchanger.java +++ b/src/main/java/jackyy/exchangers/item/enderio/ItemVibrantExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_15X15; + return ModConfig.enderIOTweaks.vibrantMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemHVExchanger.java b/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemHVExchanger.java index c650631..92336c0 100644 --- a/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemHVExchanger.java +++ b/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemHVExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_15X15; + return ModConfig.immersiveEngineeringTweaks.hvMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemLVExchanger.java b/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemLVExchanger.java index cfac041..15bdfab 100644 --- a/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemLVExchanger.java +++ b/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemLVExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_5X5; + return ModConfig.immersiveEngineeringTweaks.lvMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemMVExchanger.java b/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemMVExchanger.java index 0cbcbed..d8eb6ed 100644 --- a/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemMVExchanger.java +++ b/src/main/java/jackyy/exchangers/item/immersiveengineering/ItemMVExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_11X11; + return ModConfig.immersiveEngineeringTweaks.mvMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/mekanism/ItemAdvancedExchanger.java b/src/main/java/jackyy/exchangers/item/mekanism/ItemAdvancedExchanger.java index a4a08b4..a6928b5 100644 --- a/src/main/java/jackyy/exchangers/item/mekanism/ItemAdvancedExchanger.java +++ b/src/main/java/jackyy/exchangers/item/mekanism/ItemAdvancedExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_11X11; + return ModConfig.mekanismTweaks.advancedMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/mekanism/ItemBasicExchanger.java b/src/main/java/jackyy/exchangers/item/mekanism/ItemBasicExchanger.java index 96e8721..1b9273d 100644 --- a/src/main/java/jackyy/exchangers/item/mekanism/ItemBasicExchanger.java +++ b/src/main/java/jackyy/exchangers/item/mekanism/ItemBasicExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_7X7; + return ModConfig.mekanismTweaks.basicMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/mekanism/ItemEliteExchanger.java b/src/main/java/jackyy/exchangers/item/mekanism/ItemEliteExchanger.java index 9e2453d..3005ece 100644 --- a/src/main/java/jackyy/exchangers/item/mekanism/ItemEliteExchanger.java +++ b/src/main/java/jackyy/exchangers/item/mekanism/ItemEliteExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_13X13; + return ModConfig.mekanismTweaks.eliteMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/mekanism/ItemUltimateExchanger.java b/src/main/java/jackyy/exchangers/item/mekanism/ItemUltimateExchanger.java index 1896373..58cdd59 100644 --- a/src/main/java/jackyy/exchangers/item/mekanism/ItemUltimateExchanger.java +++ b/src/main/java/jackyy/exchangers/item/mekanism/ItemUltimateExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_15X15; + return ModConfig.mekanismTweaks.ultimateMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/special/ItemCreativeExchanger.java b/src/main/java/jackyy/exchangers/item/special/ItemCreativeExchanger.java index be26216..2f4bb61 100644 --- a/src/main/java/jackyy/exchangers/item/special/ItemCreativeExchanger.java +++ b/src/main/java/jackyy/exchangers/item/special/ItemCreativeExchanger.java @@ -30,7 +30,7 @@ public int getTier() { @Override public int getHarvestLevel() { - return 9001; + return Integer.MAX_VALUE; } @Override @@ -40,7 +40,7 @@ public boolean isCreative() { @Override public int getMaxRange() { - return MODE_25X25; + return 12; } @Override diff --git a/src/main/java/jackyy/exchangers/item/special/ItemTuberousExchanger.java b/src/main/java/jackyy/exchangers/item/special/ItemTuberousExchanger.java index 7c20572..ecc9afa 100644 --- a/src/main/java/jackyy/exchangers/item/special/ItemTuberousExchanger.java +++ b/src/main/java/jackyy/exchangers/item/special/ItemTuberousExchanger.java @@ -46,7 +46,7 @@ public void addInformation(ItemStack stack, World world, List tooltip, I @Override public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { if (player != null) { - player.getHeldItemMainhand().setCount(0); + player.getHeldItem(hand).setCount(0); player.attackEntityFrom(new EntityDamageSource("tuberous_exchanger", player), 100000.0F); player.world.createExplosion(player, player.posX, player.posY, player.posZ, 1.0F, false); return EnumActionResult.SUCCESS; diff --git a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemHardenedExchanger.java b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemHardenedExchanger.java index ba4d924..007b19a 100644 --- a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemHardenedExchanger.java +++ b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemHardenedExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_7X7; + return ModConfig.thermalExpansionTweaks.hardenedMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemLeadstoneExchanger.java b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemLeadstoneExchanger.java index 66fbce6..97b146f 100644 --- a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemLeadstoneExchanger.java +++ b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemLeadstoneExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_3X3; + return ModConfig.thermalExpansionTweaks.leadstoneMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemReinforcedExchanger.java b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemReinforcedExchanger.java index 20b478e..543cf5b 100644 --- a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemReinforcedExchanger.java +++ b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemReinforcedExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_11X11; + return ModConfig.thermalExpansionTweaks.reinforcedMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemResonantExchanger.java b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemResonantExchanger.java index 2a6cfbe..ba85a38 100644 --- a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemResonantExchanger.java +++ b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemResonantExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_15X15; + return ModConfig.thermalExpansionTweaks.resonantMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemSignalumExchanger.java b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemSignalumExchanger.java index 4c067e6..71daf76 100644 --- a/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemSignalumExchanger.java +++ b/src/main/java/jackyy/exchangers/item/thermalexpansion/ItemSignalumExchanger.java @@ -50,7 +50,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_13X13; + return ModConfig.thermalExpansionTweaks.signalumMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemDiamondExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemDiamondExchanger.java index 96b8a2e..4e263b2 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemDiamondExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemDiamondExchanger.java @@ -36,7 +36,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_9X9; + return ModConfig.vanillaTweaks.diamondMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemEmeraldExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemEmeraldExchanger.java index d6fab70..d0fee90 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemEmeraldExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemEmeraldExchanger.java @@ -38,7 +38,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_11X11; + return ModConfig.vanillaTweaks.emeraldMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemGoldenExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemGoldenExchanger.java index 54ee597..c62d9b7 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemGoldenExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemGoldenExchanger.java @@ -36,7 +36,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_5X5; + return ModConfig.vanillaTweaks.goldenMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemIronExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemIronExchanger.java index 356666b..2c69e6f 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemIronExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemIronExchanger.java @@ -36,7 +36,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_7X7; + return ModConfig.vanillaTweaks.ironMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemObsidianExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemObsidianExchanger.java index 8371f1e..829e1eb 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemObsidianExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemObsidianExchanger.java @@ -36,7 +36,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_15X15; + return ModConfig.vanillaTweaks.obsidianMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemStoneExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemStoneExchanger.java index 5665eb1..7439a0e 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemStoneExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemStoneExchanger.java @@ -36,7 +36,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_3X3; + return ModConfig.vanillaTweaks.stoneMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/item/vanilla/ItemWoodenExchanger.java b/src/main/java/jackyy/exchangers/item/vanilla/ItemWoodenExchanger.java index 17a098a..0f55c2d 100644 --- a/src/main/java/jackyy/exchangers/item/vanilla/ItemWoodenExchanger.java +++ b/src/main/java/jackyy/exchangers/item/vanilla/ItemWoodenExchanger.java @@ -35,7 +35,7 @@ public int getHarvestLevel() { @Override public int getMaxRange() { - return MODE_1X1; + return ModConfig.vanillaTweaks.woodenMaxRange; } @Override diff --git a/src/main/java/jackyy/exchangers/registry/ModConfig.java b/src/main/java/jackyy/exchangers/registry/ModConfig.java index b899189..6c13d44 100644 --- a/src/main/java/jackyy/exchangers/registry/ModConfig.java +++ b/src/main/java/jackyy/exchangers/registry/ModConfig.java @@ -41,42 +41,63 @@ public static class VanillaTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Wooden Exchanger") public int woodenMaxHarvestLevel = 0; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Wooden Exchanger") + public int woodenMaxRange = 0; @Config.RangeInt(min = 1) @Config.Comment("Set the durability for Stone Exchanger") public int stoneMaxDmg = 384; @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Stone Exchanger") public int stoneMaxHarvestLevel = 1; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Stone Exchanger") + public int stoneMaxRange = 1; @Config.RangeInt(min = 1) @Config.Comment("Set the durability for Golden Exchanger") public int goldenMaxDmg = 512; @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Golden Exchanger") public int goldenMaxHarvestLevel = 1; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Golden Exchanger") + public int goldenMaxRange = 2; @Config.RangeInt(min = 1) @Config.Comment("Set the durability for Iron Exchanger") public int ironMaxDmg = 1024; @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Iron Exchanger") public int ironMaxHarvestLevel = 2; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Iron Exchanger") + public int ironMaxRange = 3; @Config.RangeInt(min = 1) @Config.Comment("Set the durability for Diamond Exchanger") public int diamondMaxDmg = 4096; @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Diamond Exchanger") public int diamondMaxHarvestLevel = 3; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Diamond Exchanger") + public int diamondMaxRange = 4; @Config.RangeInt(min = 1) @Config.Comment("Set the durability for Emerald Exchanger") public int emeraldMaxDmg = 8192; @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Emerald Exchanger") public int emeraldMaxHarvestLevel = 4; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Emerald Exchanger") + public int emeraldMaxRange = 5; @Config.RangeInt(min = 1) @Config.Comment("Set the durability for Obsidian Exchanger") public int obsidianMaxDmg = 16384; @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Obsidian Exchanger") public int obsidianMaxHarvestLevel = 4; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Obsidian Exchanger") + public int obsidianMaxRange = 7; } public static class EnderIOTweaks { @@ -89,6 +110,9 @@ public static class EnderIOTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Conductive Iron Exchanger") public int conductiveMaxHarvestLevel = 1; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Conductive Iron Exchanger") + public int conductiveMaxRange = 1; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Pulsating Iron Exchanger") public int pulsatingMaxEnergy = 400000; @@ -98,6 +122,9 @@ public static class EnderIOTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Pulsating Iron Exchanger") public int pulsatingMaxHarvestLevel = 2; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Pulsating Iron Exchanger") + public int pulsatingMaxRange = 2; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Electrical Steel Exchanger") public int electricalSteelMaxEnergy = 800000; @@ -107,6 +134,9 @@ public static class EnderIOTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Electrical Steel Exchanger") public int electricalSteelMaxHarvestLevel = 3; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Electrical Steel Exchanger") + public int electricalSteelMaxRange = 4; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Energetic Exchanger") public int energeticMaxEnergy = 5000000; @@ -116,6 +146,9 @@ public static class EnderIOTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Energetic Exchanger") public int energeticMaxHarvestLevel = 3; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Energetic Exchanger") + public int energeticMaxRange = 5; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Dark Steel Exchanger") public int darkSteelMaxEnergy = 10000000; @@ -125,6 +158,9 @@ public static class EnderIOTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Dark Steel Exchanger") public int darkSteelMaxHarvestLevel = 4; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Dark Steel Exchanger") + public int darkSteelMaxRange = 6; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Vibrant Exchanger") public int vibrantMaxEnergy = 20000000; @@ -134,6 +170,9 @@ public static class EnderIOTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Vibrant Exchanger") public int vibrantMaxHarvestLevel = 4; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Vibrant Exchanger") + public int vibrantMaxRange = 7; } public static class ThermalExpansionTweaks { @@ -146,6 +185,9 @@ public static class ThermalExpansionTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Leadstone Exchanger") public int leadstoneMaxHarvestLevel = 1; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Leadstone Exchanger") + public int leadstoneMaxRange = 1; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Hardened Exchanger") public int hardenedMaxEnergy = 500000; @@ -155,6 +197,9 @@ public static class ThermalExpansionTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Hardened Exchanger") public int hardenedMaxHarvestLevel = 2; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Hardened Exchanger") + public int hardenedMaxRange = 3; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Reinforced Exchanger") public int reinforcedMaxEnergy = 1000000; @@ -164,6 +209,9 @@ public static class ThermalExpansionTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Reinforced Exchanger") public int reinforcedMaxHarvestLevel = 3; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Reinforced Exchanger") + public int reinforcedMaxRange = 5; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Signalum Exchanger") public int signalumMaxEnergy = 10000000; @@ -173,6 +221,9 @@ public static class ThermalExpansionTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Signalum Exchanger") public int signalumMaxHarvestLevel = 4; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Signalum Exchanger") + public int signalumMaxRange = 6; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Resonant Exchanger") public int resonantMaxEnergy = 20000000; @@ -182,6 +233,9 @@ public static class ThermalExpansionTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Resonant Exchanger") public int resonantMaxHarvestLevel = 4; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Resonant Exchanger") + public int resonantMaxRange = 7; } public static class MekanismTweaks { @@ -194,6 +248,9 @@ public static class MekanismTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Basic Exchanger") public int basicMaxHarvestLevel = 1; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Basic Exchanger") + public int basicMaxRange = 3; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Advanced Exchanger") public int advancedMaxEnergy = 800000; @@ -203,6 +260,9 @@ public static class MekanismTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Advanced Exchanger") public int advancedMaxHarvestLevel = 2; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Advanced Exchanger") + public int advancedMaxRange = 5; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Elite Exchanger") public int eliteMaxEnergy = 5000000; @@ -212,6 +272,9 @@ public static class MekanismTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Elite Exchanger") public int eliteMaxHarvestLevel = 3; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Elite Exchanger") + public int eliteMaxRange = 6; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for Ultimate Exchanger") public int ultimateMaxEnergy = 10000000; @@ -221,6 +284,9 @@ public static class MekanismTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for Ultimate Exchanger") public int ultimateMaxHarvestLevel = 4; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for Ultimate Exchanger") + public int ultimateMaxRange = 7; } public static class ImmersiveEngineeringTweaks { @@ -233,6 +299,9 @@ public static class ImmersiveEngineeringTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for LV Exchanger") public int lvMaxHarvestLevel = 2; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for LV Exchanger") + public int lvMaxRange = 3; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for MV Exchanger") public int mvMaxEnergy = 500000; @@ -242,6 +311,9 @@ public static class ImmersiveEngineeringTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for MV Exchanger") public int mvMaxHarvestLevel = 3; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for MV Exchanger") + public int mvMaxRange = 5; @Config.RangeInt(min = 1000) @Config.Comment("Set the RF capacity for HV Exchanger") public int hvMaxEnergy = 2500000; @@ -251,6 +323,9 @@ public static class ImmersiveEngineeringTweaks { @Config.RangeInt(min = 0) @Config.Comment("Set the max harvest level for HV Exchanger") public int hvMaxHarvestLevel = 4; + @Config.RangeInt(min = 0, max = 12) + @Config.Comment("Set the max range for HV Exchanger") + public int hvMaxRange = 7; } public static class RecipeTweaks { diff --git a/src/main/resources/assets/exchangers/lang/de_DE.lang b/src/main/resources/assets/exchangers/lang/de_DE.lang index 808b7b4..5812dca 100644 --- a/src/main/resources/assets/exchangers/lang/de_DE.lang +++ b/src/main/resources/assets/exchangers/lang/de_DE.lang @@ -29,7 +29,6 @@ exchangers.tooltip.silk_touch.off=§fSilk Touch mode is §4§ldisabled§r in con #Messages exchangers.error.invalid_block.te=§cFehler: Ungültiger Block! (Tile Entities) exchangers.error.invalid_block.unbreakable=§cFehler: Ungültiger Block! (Unbreakable Blocks) -exchangers.error.invalid_block.null=§cFehler: Ungültiger Block! (Null Display Name) exchangers.error.out_of_block=§cFehler: Nicht genügend Blöcke! exchangers.error.out_of_power=§cFehler: Nicht genügend Energie! exchangers.error.event_cancelled=§cFehler: Exchange event cancelled by other mods! diff --git a/src/main/resources/assets/exchangers/lang/en_US.lang b/src/main/resources/assets/exchangers/lang/en_US.lang index 018ebc2..7227c94 100644 --- a/src/main/resources/assets/exchangers/lang/en_US.lang +++ b/src/main/resources/assets/exchangers/lang/en_US.lang @@ -29,6 +29,7 @@ exchangers.tooltip.silk_touch.on=§fSilk Touch mode is §a§lenabled§r in confi exchangers.tooltip.silk_touch.off=§fSilk Touch mode is §4§ldisabled§r in config. exchangers.tooltip.force_drop_items.on=§fForce Drop Items mode is §a§lenabled§r. exchangers.tooltip.force_drop_items.off=§fForce Drop Items mode is §4§ldisabled§r. +exchangers.tooltip.redstone_flux_warning=§c§oWARNING: Redstone Flux is not installed, this Exchanger will not work! #Harvest Levels exchangers.harvest_level.0=Stone @@ -36,12 +37,11 @@ exchangers.harvest_level.1=Iron exchangers.harvest_level.2=Diamond exchangers.harvest_level.3=Obsidian exchangers.harvest_level.4=Cobalt -exchangers.harvest_level.9001=§d§kOver 9000 +exchangers.harvest_level.2147483647=§d§kOver 9000 #Messages exchangers.error.invalid_block.te=§cError: Invalid block! (Tile Entities) exchangers.error.invalid_block.unbreakable=§cError: Invalid block! (Unbreakable Blocks) -exchangers.error.invalid_block.null=§cError: Invalid block! (Null Display Name) exchangers.error.blacklisted=§cError: This block is blacklisted by the config! exchangers.error.out_of_block=§cError: Out of block! exchangers.error.out_of_power=§cError: Out of power! diff --git a/src/main/resources/assets/exchangers/lang/pl_PL.lang b/src/main/resources/assets/exchangers/lang/pl_PL.lang index 8bb9f40..6079e85 100644 --- a/src/main/resources/assets/exchangers/lang/pl_PL.lang +++ b/src/main/resources/assets/exchangers/lang/pl_PL.lang @@ -29,7 +29,6 @@ exchangers.tooltip.silk_touch.off=§fSilk Touch mode is §4§ldisabled§r in con #Messages exchangers.error.invalid_block.te=§cError: Nieprwaidłowy Blok! (Tile Entities) exchangers.error.invalid_block.unbreakable=§cError: Nieprwaidłowy Blok! (Unbreakable Blocks) -exchangers.error.invalid_block.null=§cError: Nieprwaidłowy Blok! (Null Display Name) exchangers.error.out_of_block=§cError: Brak bloków! exchangers.error.out_of_power=§cError: Brak Energii! exchangers.error.event_cancelled=§cError: Exchange event cancelled by other mods! diff --git a/src/main/resources/assets/exchangers/lang/pt_BR.lang b/src/main/resources/assets/exchangers/lang/pt_BR.lang index 4d0ba27..a8b0ec5 100644 --- a/src/main/resources/assets/exchangers/lang/pt_BR.lang +++ b/src/main/resources/assets/exchangers/lang/pt_BR.lang @@ -29,7 +29,6 @@ exchangers.tooltip.silk_touch.off=§fSilk Touch mode is §4§ldisabled§r in con #Messages exchangers.error.invalid_block.te=§cErro: Bloco inválido! (Tile Entities) exchangers.error.invalid_block.unbreakable=§cErro: Bloco inválido! (Unbreakable Blocks) -exchangers.error.invalid_block.null=§cErro: Bloco inválido! (Null Display Name) exchangers.error.out_of_block=§cErro: Sem mais blocos! exchangers.error.out_of_power=§cErro: Sem energia! exchangers.error.event_cancelled=§cErro: Exchange event cancelled by other mods! diff --git a/src/main/resources/assets/exchangers/lang/zh_CN.lang b/src/main/resources/assets/exchangers/lang/zh_CN.lang index 16c4bfa..12cc134 100644 --- a/src/main/resources/assets/exchangers/lang/zh_CN.lang +++ b/src/main/resources/assets/exchangers/lang/zh_CN.lang @@ -29,7 +29,6 @@ exchangers.tooltip.silk_touch.off=§f精准采集模式已在配置里§4§l禁 #Messages exchangers.error.invalid_block.te=§c错误:对此方块无效!(方块实体) exchangers.error.invalid_block.unbreakable=§c错误:对此方块无效!(不可破坏的方块) -exchangers.error.invalid_block.null=§c错误:对此方块无效!(空值显示名称) exchangers.error.out_of_block=§c错误:选定方块耗尽! exchangers.error.out_of_power=§c错误:能量不足! exchangers.error.event_cancelled=§cError: Exchange event cancelled by other mods! diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info index f9e6acd..3ff17a6 100644 --- a/src/main/resources/mcmod.info +++ b/src/main/resources/mcmod.info @@ -3,7 +3,7 @@ "modid": "exchangers", "name": "Exchangers", "description": "Block Exchangers.", - "version": "1.12.2-2.7.2", + "version": "1.12.2-2.7.3", "mcversion": "1.12.2", "url": "https://github.com/JackyyTV/Exchangers", "updateUrl": "",