From 3cde5c8244506041a29d04fba442a0c35cbb0d77 Mon Sep 17 00:00:00 2001 From: drcrazy Date: Fri, 15 Mar 2019 14:14:21 +0300 Subject: [PATCH] Facelift for debug tool --- .../techreborn/items/tool/ItemDebugTool.java | 88 +++++++++++++++--- .../techreborn/models/item/debug_tool.json | 6 ++ .../techreborn/models/item/tool/debug.json | 6 -- .../item/tool/{debug.png => debug_tool.png} | Bin ...debug.png.mcmeta => debug_tool.png.mcmeta} | 0 5 files changed, 79 insertions(+), 21 deletions(-) create mode 100644 src/main/resources/assets/techreborn/models/item/debug_tool.json delete mode 100644 src/main/resources/assets/techreborn/models/item/tool/debug.json rename src/main/resources/assets/techreborn/textures/item/tool/{debug.png => debug_tool.png} (100%) rename src/main/resources/assets/techreborn/textures/item/tool/{debug.png.mcmeta => debug_tool.png.mcmeta} (100%) diff --git a/src/main/java/techreborn/items/tool/ItemDebugTool.java b/src/main/java/techreborn/items/tool/ItemDebugTool.java index 7272b0cff..4d53516cb 100644 --- a/src/main/java/techreborn/items/tool/ItemDebugTool.java +++ b/src/main/java/techreborn/items/tool/ItemDebugTool.java @@ -24,13 +24,19 @@ package techreborn.items.tool; +import java.util.Map.Entry; + import net.minecraft.block.Block; +import net.minecraft.block.state.IBlockState; import net.minecraft.item.Item; import net.minecraft.item.ItemUseContext; +import net.minecraft.state.IProperty; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumActionResult; +import net.minecraft.util.Util; import net.minecraft.util.text.TextComponentString; import net.minecraft.util.text.TextFormatting; +import net.minecraftforge.common.util.LazyOptional; import net.minecraftforge.energy.CapabilityEnergy; import net.minecraftforge.energy.IEnergyStorage; import reborncore.api.power.IEnergyInterfaceTile; @@ -48,25 +54,27 @@ public class ItemDebugTool extends Item { @Override public EnumActionResult onItemUse(ItemUseContext context) { - Block block = context.getWorld().getBlockState(context.getPos()).getBlock(); - if (block != null) { - sendMessage(context, new TextComponentString(TextFormatting.GREEN + "Block Registry Name: " - + TextFormatting.BLUE + block.getRegistryName().toString())); - } else { + IBlockState blockState = context.getWorld().getBlockState(context.getPos()); + Block block = blockState.getBlock(); + if (block == null) { return EnumActionResult.FAIL; } - + sendMessage(context, new TextComponentString(getRegistryName(block))); + for (Entry, Comparable> entry : blockState.getValues().entrySet()) { + sendMessage(context, new TextComponentString(getPropertyString(entry))); + } TileEntity tile = context.getWorld().getTileEntity(context.getPos()); if (tile != null) { - sendMessage(context, new TextComponentString( - TextFormatting.GREEN + "Tile Entity: " + TextFormatting.BLUE + tile.getType().toString())); - } - if (tile instanceof IEnergyInterfaceTile) { - sendMessage(context, new TextComponentString(TextFormatting.GREEN + "Power: " - + TextFormatting.BLUE + PowerSystem.getLocaliszedPower(((IEnergyInterfaceTile) tile).getEnergy()))); - } else if (tile.getCapability(CapabilityEnergy.ENERGY, context.getPlacementHorizontalFacing()) != null) { - sendMessage(context, new TextComponentString(TextFormatting.GREEN + "Power " + TextFormatting.RED - + ((IEnergyStorage) tile.getCapability(CapabilityEnergy.ENERGY, context.getPlacementHorizontalFacing())).getEnergyStored() + "FU")); + sendMessage(context, new TextComponentString(getTileEntityType(tile))); + if (tile instanceof IEnergyInterfaceTile) { + sendMessage(context, new TextComponentString(getRCPower((IEnergyInterfaceTile) tile))); + } else { + IEnergyStorage capEnergy = tile + .getCapability(CapabilityEnergy.ENERGY, context.getPlacementHorizontalFacing()).orElseGet(null); + if (capEnergy != null) { + sendMessage(context, new TextComponentString(getForgePower(capEnergy))); + } + } } return EnumActionResult.SUCCESS; } @@ -76,4 +84,54 @@ public class ItemDebugTool extends Item { context.getPlayer().sendMessage(string); } } + + private String getPropertyString(Entry, Comparable> entryIn) { + IProperty iproperty = entryIn.getKey(); + Comparable comparable = entryIn.getValue(); + String s = Util.getValueName(iproperty, comparable); + if (Boolean.TRUE.equals(comparable)) { + s = TextFormatting.GREEN + s; + } else if (Boolean.FALSE.equals(comparable)) { + s = TextFormatting.RED + s; + } + + return iproperty.getName() + ": " + s; + } + + private String getRegistryName(Block block) { + String s = "" + TextFormatting.GREEN; + s += "Block Registry Name: "; + s += TextFormatting.BLUE; + s += block.getRegistryName().toString(); + + return s; + } + + private String getTileEntityType(TileEntity tile) { + String s = "" + TextFormatting.GREEN; + s += "Tile Entity: "; + s += TextFormatting.BLUE; + s += tile.getType().toString(); + + return s; + } + + private String getRCPower(IEnergyInterfaceTile tile) { + String s = "" + TextFormatting.GREEN; + s += "Power: "; + s += TextFormatting.BLUE; + s += PowerSystem.getLocaliszedPower(tile.getEnergy()); + + return s; + } + + private String getForgePower(IEnergyStorage cap) { + String s = "" + TextFormatting.GREEN; + s += "Power: "; + s += TextFormatting.RED; + s += cap.getEnergyStored(); + s += " RF"; + + return s; + } } diff --git a/src/main/resources/assets/techreborn/models/item/debug_tool.json b/src/main/resources/assets/techreborn/models/item/debug_tool.json new file mode 100644 index 000000000..6d1c37b28 --- /dev/null +++ b/src/main/resources/assets/techreborn/models/item/debug_tool.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "techreborn:item/tool/debug_tool" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/techreborn/models/item/tool/debug.json b/src/main/resources/assets/techreborn/models/item/tool/debug.json deleted file mode 100644 index 00a39171a..000000000 --- a/src/main/resources/assets/techreborn/models/item/tool/debug.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "parent": "techreborn:item/techrebornItem", - "textures": { - "layer0": "techreborn:items/tool/debug" - } -} \ No newline at end of file diff --git a/src/main/resources/assets/techreborn/textures/item/tool/debug.png b/src/main/resources/assets/techreborn/textures/item/tool/debug_tool.png similarity index 100% rename from src/main/resources/assets/techreborn/textures/item/tool/debug.png rename to src/main/resources/assets/techreborn/textures/item/tool/debug_tool.png diff --git a/src/main/resources/assets/techreborn/textures/item/tool/debug.png.mcmeta b/src/main/resources/assets/techreborn/textures/item/tool/debug_tool.png.mcmeta similarity index 100% rename from src/main/resources/assets/techreborn/textures/item/tool/debug.png.mcmeta rename to src/main/resources/assets/techreborn/textures/item/tool/debug_tool.png.mcmeta