From 4ed2ae7a6e82f42d2270ce28cc7b73181fe16f6e Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Sun, 13 Oct 2019 02:29:02 +0200 Subject: Began working on tooltips --- GregTech.lang | 2 + config/IC2.ini | 2 +- config/splash.properties | 2 +- logs/2019-10-11-1.log.gz | Bin 410 -> 406 bytes logs/2019-10-11-2.log.gz | Bin 406 -> 288 bytes logs/2019-10-11-3.log.gz | Bin 288 -> 281 bytes logs/2019-10-11-4.log.gz | Bin 281 -> 788 bytes logs/2019-10-11-5.log.gz | Bin 788 -> 786 bytes logs/2019-10-11-6.log.gz | Bin 786 -> 1242 bytes logs/2019-10-11-7.log.gz | Bin 1242 -> 701 bytes logs/2019-10-13-1.log.gz | Bin 0 -> 718 bytes logs/2019-10-13-2.log.gz | Bin 0 -> 360 bytes logs/2019-10-13-3.log.gz | Bin 0 -> 700 bytes logs/2019-10-13-4.log.gz | Bin 0 -> 700 bytes logs/2019-10-13-5.log.gz | Bin 0 -> 696 bytes logs/2019-10-13-6.log.gz | Bin 0 -> 694 bytes .../GUIContainer_ModularNuclearReactor.java | 2 +- src/main/java/items/MetaItem_ReactorComponent.java | 10 +- src/main/java/kekztech/KekzCore.java | 6 +- .../java/kekztech/MultiBlockTooltipBuilder.java | 160 +++++++++++++++++++++ .../java/tileentities/GTMTE_FluidMultiStorage.java | 4 +- .../tileentities/GTMTE_ModularNuclearReactor.java | 23 ++- 22 files changed, 200 insertions(+), 11 deletions(-) create mode 100644 logs/2019-10-13-1.log.gz create mode 100644 logs/2019-10-13-2.log.gz create mode 100644 logs/2019-10-13-3.log.gz create mode 100644 logs/2019-10-13-4.log.gz create mode 100644 logs/2019-10-13-5.log.gz create mode 100644 logs/2019-10-13-6.log.gz create mode 100644 src/main/java/kekztech/MultiBlockTooltipBuilder.java diff --git a/GregTech.lang b/GregTech.lang index f7518d06ad..50b5ce8c71 100644 --- a/GregTech.lang +++ b/GregTech.lang @@ -953,6 +953,8 @@ languagefile { S:TileEntity_DESCRIPTION_13102_Index_9= Dynamo Hatch back center S:TileEntity_DESCRIPTION_13103_Index_0=DO NOT CHEAT IN THIS MACHINE S:TileEntity_DESCRIPTION_13103_Index_1=I'm not quite finished yet + S:TileEntity_DESCRIPTION_13103_Index_10=Hold §l[LSHIFT]§rto display structure guidelines + S:TileEntity_DESCRIPTION_13103_Index_11=Created by Kekzdealer S:TileEntity_DESCRIPTION_13103_Index_2=------------------------------------------ S:TileEntity_DESCRIPTION_13103_Index_3=Dimensions: 5x5x5 (WxHxL) S:TileEntity_DESCRIPTION_13103_Index_4=Structure: diff --git a/config/IC2.ini b/config/IC2.ini index 8ee6f2aeb1..19f1842f6e 100644 --- a/config/IC2.ini +++ b/config/IC2.ini @@ -1,5 +1,5 @@ ; ic2 general config -; created Oct 11, 2019 8:59:00 PM +; created Oct 13, 2019 2:22:59 AM ;--- [worldgen] diff --git a/config/splash.properties b/config/splash.properties index 6aa5aeb3bd..7fa01e0068 100644 --- a/config/splash.properties +++ b/config/splash.properties @@ -1,5 +1,5 @@ #Splash screen properties -#Fri Oct 11 20:58:50 CEST 2019 +#Sun Oct 13 02:22:50 CEST 2019 logoTexture=textures/gui/title/mojang.png background=0xFFFFFF font=0x0 diff --git a/logs/2019-10-11-1.log.gz b/logs/2019-10-11-1.log.gz index ed173d1446..60cda6f922 100644 Binary files a/logs/2019-10-11-1.log.gz and b/logs/2019-10-11-1.log.gz differ diff --git a/logs/2019-10-11-2.log.gz b/logs/2019-10-11-2.log.gz index 60cda6f922..3f29af8deb 100644 Binary files a/logs/2019-10-11-2.log.gz and b/logs/2019-10-11-2.log.gz differ diff --git a/logs/2019-10-11-3.log.gz b/logs/2019-10-11-3.log.gz index 3f29af8deb..72bb001b8b 100644 Binary files a/logs/2019-10-11-3.log.gz and b/logs/2019-10-11-3.log.gz differ diff --git a/logs/2019-10-11-4.log.gz b/logs/2019-10-11-4.log.gz index 72bb001b8b..592e858649 100644 Binary files a/logs/2019-10-11-4.log.gz and b/logs/2019-10-11-4.log.gz differ diff --git a/logs/2019-10-11-5.log.gz b/logs/2019-10-11-5.log.gz index 592e858649..a1db13a08e 100644 Binary files a/logs/2019-10-11-5.log.gz and b/logs/2019-10-11-5.log.gz differ diff --git a/logs/2019-10-11-6.log.gz b/logs/2019-10-11-6.log.gz index a1db13a08e..4553998d3a 100644 Binary files a/logs/2019-10-11-6.log.gz and b/logs/2019-10-11-6.log.gz differ diff --git a/logs/2019-10-11-7.log.gz b/logs/2019-10-11-7.log.gz index 4553998d3a..3bc6c56ca5 100644 Binary files a/logs/2019-10-11-7.log.gz and b/logs/2019-10-11-7.log.gz differ diff --git a/logs/2019-10-13-1.log.gz b/logs/2019-10-13-1.log.gz new file mode 100644 index 0000000000..98ed9c9cb5 Binary files /dev/null and b/logs/2019-10-13-1.log.gz differ diff --git a/logs/2019-10-13-2.log.gz b/logs/2019-10-13-2.log.gz new file mode 100644 index 0000000000..a9be64ac09 Binary files /dev/null and b/logs/2019-10-13-2.log.gz differ diff --git a/logs/2019-10-13-3.log.gz b/logs/2019-10-13-3.log.gz new file mode 100644 index 0000000000..1bbacd850d Binary files /dev/null and b/logs/2019-10-13-3.log.gz differ diff --git a/logs/2019-10-13-4.log.gz b/logs/2019-10-13-4.log.gz new file mode 100644 index 0000000000..7e2fde0b4d Binary files /dev/null and b/logs/2019-10-13-4.log.gz differ diff --git a/logs/2019-10-13-5.log.gz b/logs/2019-10-13-5.log.gz new file mode 100644 index 0000000000..2f5fe6e9ae Binary files /dev/null and b/logs/2019-10-13-5.log.gz differ diff --git a/logs/2019-10-13-6.log.gz b/logs/2019-10-13-6.log.gz new file mode 100644 index 0000000000..ef7eaa4286 Binary files /dev/null and b/logs/2019-10-13-6.log.gz differ diff --git a/src/main/java/container/GUIContainer_ModularNuclearReactor.java b/src/main/java/container/GUIContainer_ModularNuclearReactor.java index 1333799a78..0e8ccbb145 100644 --- a/src/main/java/container/GUIContainer_ModularNuclearReactor.java +++ b/src/main/java/container/GUIContainer_ModularNuclearReactor.java @@ -31,7 +31,7 @@ public class GUIContainer_ModularNuclearReactor extends GuiContainer { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); - drawTexturedModalRect(100, 100, 0, 0, 300, 200); + drawTexturedModalRect(100, 100, 0, 0, 260, 230); } @Override diff --git a/src/main/java/items/MetaItem_ReactorComponent.java b/src/main/java/items/MetaItem_ReactorComponent.java index 9a8d668a40..35ecaf0572 100644 --- a/src/main/java/items/MetaItem_ReactorComponent.java +++ b/src/main/java/items/MetaItem_ReactorComponent.java @@ -2,6 +2,8 @@ package items; import java.util.List; +import org.lwjgl.input.Keyboard; + import cpw.mods.fml.common.registry.GameRegistry; import kekztech.KekzCore; import net.minecraft.client.renderer.texture.IIconRegister; @@ -10,6 +12,7 @@ import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; import reactor.items.CoolantCell; import reactor.items.FuelRod; @@ -83,7 +86,12 @@ public class MetaItem_ReactorComponent extends Item { @SuppressWarnings({"unchecked", "rawtypes"}) @Override public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { - list.add("Part for the Modular Nuclear Reactor"); + if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + list.add("Property = 1"); + } else { + list.add("Part for the Modular Nuclear Reactor"); + list.add("Hold " + EnumChatFormatting.BOLD + "[LSHIFT]" + EnumChatFormatting.RESET + EnumChatFormatting.GRAY + "to display properties"); + } } @Override diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java index ace6abd021..5fed66940a 100644 --- a/src/main/java/kekztech/KekzCore.java +++ b/src/main/java/kekztech/KekzCore.java @@ -164,7 +164,7 @@ public class KekzCore { 200, 256); final ItemStack[] tfftstoragefield1 = { GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 4), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 1), GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Steel, 1), ItemList.Electric_Pump_MV.get(1L, (Object[]) null) @@ -176,9 +176,9 @@ public class KekzCore { 200, 256); final ItemStack[] tfftstoragefield2 = { GT_Utility.getIntegratedCircuit(6), - GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 4), + GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 2), GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 4), - GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 1), + GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.StainlessSteel, 1), ItemList.Electric_Pump_HV.get(1L, (Object[]) null) }; GT_Values.RA.addAssemblerRecipe( diff --git a/src/main/java/kekztech/MultiBlockTooltipBuilder.java b/src/main/java/kekztech/MultiBlockTooltipBuilder.java new file mode 100644 index 0000000000..6e2e7669a8 --- /dev/null +++ b/src/main/java/kekztech/MultiBlockTooltipBuilder.java @@ -0,0 +1,160 @@ +package kekztech; + +import java.util.LinkedList; +import java.util.List; + +import net.minecraft.util.EnumChatFormatting; + +/** + * Have you ever felt like your tooltips just aren't enterprise enough? Use this! + * + * @author kekzdealer + * + */ +public class MultiBlockTooltipBuilder { + + private static final String TAB = " "; + + private final List iLines; + private final List sLines; + + private String[] iArray; + private String[] sArray; + + public MultiBlockTooltipBuilder() { + iLines = new LinkedList<>(); + sLines = new LinkedList<>(); + } + + /** + * Add a basic line of information about this structure + * + * @param line + * The line to be added. + * @return Instance this method was called on. + */ + public MultiBlockTooltipBuilder addInfo(String info) { + iLines.add(info); + return this; + } + + /** + * Add a separator line like this:
+ * ------------------------------- + * + * @return Instance this method was called on. + */ + public MultiBlockTooltipBuilder addSeparator() { + iLines.add("-----------------------------------------"); + return this; + } + + /** + * Begin adding structural information by adding a line about the structure's dimensions + * and then inserting a "Structure:" line. + * + * @param w + * Structure width. + * @param h + * Structure height. + * @param l + * Structure depth/length. + * @return Instance this method was called on. + */ + public MultiBlockTooltipBuilder beginStructureBlock(int w, int h, int l) { + sLines.add("Dimensions: " + w + "x" + h + "x" + l + " (WxHxL)"); + sLines.add("Structure:"); + return this; + } + + public MultiBlockTooltipBuilder addController(String info) { + sLines.add(TAB + "Controller: " + info); + return this; + } + + public MultiBlockTooltipBuilder addCasingInfo(String casingName, int minCount) { + sLines.add(TAB + minCount +"x " + casingName + " (at least)"); + return this; + } + + public MultiBlockTooltipBuilder addEnergyHatch(String info) { + sLines.add(TAB + "Energy Hatch: " + info); + return this; + } + + public MultiBlockTooltipBuilder addDynamoHatch(String info) { + sLines.add(TAB + "Dynamo Hatch: " + info); + return this; + } + + public MultiBlockTooltipBuilder addMaintenanceHatch(String info) { + sLines.add(TAB + "Maintenance Hatch: " + info); + return this; + } + + public MultiBlockTooltipBuilder addIOHatches(String info) { + sLines.add(TAB + "I/O Hatches: " + info); + return this; + } + + public MultiBlockTooltipBuilder addInputBus(String info) { + sLines.add(TAB + "Input Bus/ses: " + info); + return this; + } + + public MultiBlockTooltipBuilder addInputHatch(String info) { + sLines.add(TAB + "Input Hatch/es: " + info); + return this; + } + + public MultiBlockTooltipBuilder addOutputBus(String info) { + sLines.add(TAB + "Output Bus/ses: " + info); + return this; + } + + public MultiBlockTooltipBuilder addOutputHatch(String info) { + sLines.add(TAB + "Output Hatch/es: " + info); + return this; + } + + /** + * Use this method to add a structural part that isn't covered by the builders capabilities. + * + * @param name + * Name of the hatch or other component. + * @param info + * Positional information. + * @return Instance this method was called on. + */ + public MultiBlockTooltipBuilder addOtherStructurePart(String name, String info) { + sLines.add(TAB + name + ": " + info); + return this; + } + + /** + * Call at the very end.
+ * Adds a final line with the authors name and information on how to display the structure guidelines.
+ * Ends the building process. + * + * @param author + * Name of the creator of this Machine + * + * @return The result of all build calls. + */ + public void signAndFinalize(String author) { + iLines.add("Hold " + EnumChatFormatting.BOLD + "[LSHIFT]" + EnumChatFormatting.RESET + EnumChatFormatting.GRAY + " to display structure guidelines"); + iLines.add("Created by " + author); + iArray = new String[iLines.size()]; + sArray = new String[sLines.size()]; + iLines.toArray(iArray); + sLines.toArray(sArray); + } + + public String[] getInformation() { + return iArray; + } + + public String[] getStructureInformation() { + return sArray; + } +} diff --git a/src/main/java/tileentities/GTMTE_FluidMultiStorage.java b/src/main/java/tileentities/GTMTE_FluidMultiStorage.java index ce155c48e6..c19200bf2e 100644 --- a/src/main/java/tileentities/GTMTE_FluidMultiStorage.java +++ b/src/main/java/tileentities/GTMTE_FluidMultiStorage.java @@ -75,8 +75,8 @@ public class GTMTE_FluidMultiStorage extends GT_MetaTileEntity_MultiBlockBase { "Tier IV: 64,000,000L per block, 4EU/t", "------------------------------------------", "Note on hatch locking:", - "Use an integrated circuit in the GUI slot to limit which fluid is outputted", - "The number of a stored fluid can be obtained through the Tricorder.", + "Use an Integrated Circuit in the GUI slot to limit which fluid is output", + "The index of a stored fluid can be obtained through the Tricorder.", "------------------------------------------", "Dimensions: 5x9x5 (WxHxL)", "Structure:", diff --git a/src/main/java/tileentities/GTMTE_ModularNuclearReactor.java b/src/main/java/tileentities/GTMTE_ModularNuclearReactor.java index e247e2fb56..89c5ec9ef6 100644 --- a/src/main/java/tileentities/GTMTE_ModularNuclearReactor.java +++ b/src/main/java/tileentities/GTMTE_ModularNuclearReactor.java @@ -1,5 +1,7 @@ package tileentities; +import org.lwjgl.input.Keyboard; + import container.GUIContainer_ModularNuclearReactor; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; @@ -8,6 +10,7 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import kekztech.MultiBlockTooltipBuilder; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; @@ -38,7 +41,23 @@ public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBas @Override public String[] getDescription() { - return new String[] { + final MultiBlockTooltipBuilder b = new MultiBlockTooltipBuilder(); + b.addInfo("DO NOT CHEAT IN THIS MACHINE") + .addInfo("I'm not quite finished yet") + .addSeparator() + .beginStructureBlock(5, 5, 5) + .addController("Front Center") + .addCasingInfo("Radiation Proof Machine Casing", 80) + .addDynamoHatch("ONLY in EU-mode, at least one") + .addOtherStructurePart("Input Bus, Output Bus", "Optional but required for automation") + .addOtherStructurePart("Input Hatch, Output Hatch", "ONLY in Coolant-Mode, at least one each") + .signAndFinalize("Kekzdealer"); + if(!Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { + return b.getInformation(); + } else { + return b.getStructureInformation(); + } + /*return new String[] { "DO NOT CHEAT IN THIS MACHINE", "I'm not quite finished yet", "------------------------------------------", @@ -49,7 +68,7 @@ public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBas " Dynamo Hatch: ONLY in EU-mode, at least one", " Input Bus, Output Bus: Optional but required for automation", " Input Hatch, Output Hatch: ONLY in Coolant-Mode, at least one each" - }; + };*/ } @Override -- cgit