From 82d2de7eb145cc9c6c830bcdc184a6d998a7b98b Mon Sep 17 00:00:00 2001 From: gigabit101 Date: Thu, 25 Feb 2016 18:25:52 +0000 Subject: [PATCH] Start on the new manual --- .../techreborn/blocks/BlockComputerCube.java | 2 +- .../java/techreborn/client/GuiHandler.java | 8 +- src/main/java/techreborn/init/ModItems.java | 6 +- src/main/java/techreborn/init/ModRecipes.java | 2 +- .../{ItemTechPda.java => ItemTechManual.java} | 10 +- .../java/techreborn/manual/GuiManual.java | 135 ++++++++++++++++++ .../{pda => manual}/PageCollection.java | 15 +- .../java/techreborn/manual/Reference.java | 14 ++ .../old/ContentsPageOld.java} | 15 +- .../old}/CraftingInfoPage.java | 6 +- .../old/GuiManualOld.java} | 39 ++--- .../{pda/pages => manual/old}/IndexPage.java | 8 +- .../{pda/pages => manual/old}/ItemsPage.java | 12 +- .../pages => manual/old}/MultiBlockPage.java | 5 +- .../pages => manual/old}/VersionPage.java | 5 +- .../{pda => manual}/pages/BasePage.java | 12 +- .../techreborn/manual/pages/ContentsPage.java | 43 ++++++ .../manual/pages/DescriptionPage.java | 106 ++++++++++++++ .../manual/pages/GettingStartedPage.java | 32 +++++ .../{pda => manual}/pages/TitledPage.java | 6 +- .../util/GuiButtonAHeight.java | 2 +- .../util/GuiButtonCustomTexture.java | 6 +- .../util/GuiButtonTextOnly.java | 2 +- .../assets/techreborn/lang/en_US.lang | 13 +- .../manual/elements/craftingtable.png | Bin 0 -> 1831 bytes .../manual/elements/furnacerecipe.png | Bin 0 -> 2133 bytes .../techreborn/textures/manual/gui/manual.png | Bin 0 -> 39071 bytes .../manual/screenshots/gettingrubber.png | Bin 0 -> 13991 bytes .../techreborn/textures/pda/gui/pda.png | Bin 1489 -> 0 bytes .../techreborn/textures/pda/gui/pda_1.png | Bin 2700 -> 0 bytes 30 files changed, 423 insertions(+), 81 deletions(-) rename src/main/java/techreborn/items/tools/{ItemTechPda.java => ItemTechManual.java} (76%) create mode 100644 src/main/java/techreborn/manual/GuiManual.java rename src/main/java/techreborn/{pda => manual}/PageCollection.java (97%) create mode 100644 src/main/java/techreborn/manual/Reference.java rename src/main/java/techreborn/{pda/pages/ContentsPage.java => manual/old/ContentsPageOld.java} (90%) rename src/main/java/techreborn/{pda/pages => manual/old}/CraftingInfoPage.java (98%) rename src/main/java/techreborn/{pda/GuiManual.java => manual/old/GuiManualOld.java} (95%) rename src/main/java/techreborn/{pda/pages => manual/old}/IndexPage.java (91%) rename src/main/java/techreborn/{pda/pages => manual/old}/ItemsPage.java (91%) rename src/main/java/techreborn/{pda/pages => manual/old}/MultiBlockPage.java (97%) rename src/main/java/techreborn/{pda/pages => manual/old}/VersionPage.java (95%) rename src/main/java/techreborn/{pda => manual}/pages/BasePage.java (89%) create mode 100644 src/main/java/techreborn/manual/pages/ContentsPage.java create mode 100644 src/main/java/techreborn/manual/pages/DescriptionPage.java create mode 100644 src/main/java/techreborn/manual/pages/GettingStartedPage.java rename src/main/java/techreborn/{pda => manual}/pages/TitledPage.java (83%) rename src/main/java/techreborn/{pda => manual}/util/GuiButtonAHeight.java (98%) rename src/main/java/techreborn/{pda => manual}/util/GuiButtonCustomTexture.java (88%) rename src/main/java/techreborn/{pda => manual}/util/GuiButtonTextOnly.java (98%) create mode 100644 src/main/resources/assets/techreborn/textures/manual/elements/craftingtable.png create mode 100644 src/main/resources/assets/techreborn/textures/manual/elements/furnacerecipe.png create mode 100644 src/main/resources/assets/techreborn/textures/manual/gui/manual.png create mode 100644 src/main/resources/assets/techreborn/textures/manual/screenshots/gettingrubber.png delete mode 100644 src/main/resources/assets/techreborn/textures/pda/gui/pda.png delete mode 100644 src/main/resources/assets/techreborn/textures/pda/gui/pda_1.png diff --git a/src/main/java/techreborn/blocks/BlockComputerCube.java b/src/main/java/techreborn/blocks/BlockComputerCube.java index 6e3026dd6..f38ad8778 100644 --- a/src/main/java/techreborn/blocks/BlockComputerCube.java +++ b/src/main/java/techreborn/blocks/BlockComputerCube.java @@ -22,7 +22,7 @@ public class BlockComputerCube extends BlockMachineBase implements IAdvancedRota public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { if (!player.isSneaking()) - player.openGui(Core.INSTANCE, GuiHandler.pdaID, world, x, + player.openGui(Core.INSTANCE, GuiHandler.manuelID, world, x, y, z); return true; } diff --git a/src/main/java/techreborn/client/GuiHandler.java b/src/main/java/techreborn/client/GuiHandler.java index aa245c8b9..04bb77aad 100644 --- a/src/main/java/techreborn/client/GuiHandler.java +++ b/src/main/java/techreborn/client/GuiHandler.java @@ -6,7 +6,7 @@ import net.minecraft.world.World; import net.minecraftforge.fml.common.network.IGuiHandler; import techreborn.client.container.*; import techreborn.client.gui.*; -import techreborn.pda.GuiManual; +import techreborn.manual.GuiManual; import techreborn.tiles.*; import techreborn.tiles.fusionReactor.TileEntityFusionController; import techreborn.tiles.generator.TileDieselGenerator; @@ -32,7 +32,7 @@ public class GuiHandler implements IGuiHandler { public static final int industrialGrinderID = 7; public static final int implosionCompresserID = 8; public static final int matterfabID = 9; - public static final int pdaID = 10; + public static final int manuelID = 10; public static final int chunkloaderID = 11; public static final int assemblingmachineID = 12; public static final int dieselGeneratorID = 15; @@ -121,7 +121,7 @@ public class GuiHandler implements IGuiHandler { } else if (ID == chemicalReactorID) { return new ContainerChemicalReactor( (TileChemicalReactor) world.getTileEntity(new BlockPos(x, y, z)), player); - } else if (ID == pdaID) { + } else if (ID == manuelID) { return null; } else if (ID == destructoPackID) { return new ContainerDestructoPack(player); @@ -217,7 +217,7 @@ public class GuiHandler implements IGuiHandler { } else if (ID == chemicalReactorID) { return new GuiChemicalReactor(player, (TileChemicalReactor) world.getTileEntity(new BlockPos(x, y, z))); - } else if (ID == pdaID) { + } else if (ID == manuelID) { return new GuiManual(); } else if (ID == destructoPackID) { return new GuiDestructoPack(new ContainerDestructoPack(player)); diff --git a/src/main/java/techreborn/init/ModItems.java b/src/main/java/techreborn/init/ModItems.java index 47923db4e..47863fe86 100644 --- a/src/main/java/techreborn/init/ModItems.java +++ b/src/main/java/techreborn/init/ModItems.java @@ -41,7 +41,7 @@ public class ModItems { public static Item lithiumBattery; public static Item omniTool; public static Item lapotronicOrb; - public static Item manuel; + public static Item manual; public static Item uuMatter; public static Item plate; public static Item crushedOre; @@ -122,8 +122,8 @@ public class ModItems { omniTool = PoweredItem.createItem(ItemOmniTool.class); GameRegistry.registerItem(omniTool, "omniTool"); - manuel = new ItemTechPda(); - GameRegistry.registerItem(manuel, "techmanuel"); + manual = new ItemTechManual(); + GameRegistry.registerItem(manual, "techmanuel"); uuMatter = new ItemUUmatter(); GameRegistry.registerItem(uuMatter, "uumatter"); reBattery = PoweredItem.createItem(ItemReBattery.class); diff --git a/src/main/java/techreborn/init/ModRecipes.java b/src/main/java/techreborn/init/ModRecipes.java index 4e1534a55..b7c80ccdd 100644 --- a/src/main/java/techreborn/init/ModRecipes.java +++ b/src/main/java/techreborn/init/ModRecipes.java @@ -1237,7 +1237,7 @@ public class } static void addIc2Recipes(){ - CraftingHelper.addShapelessOreRecipe(new ItemStack(ModItems.manuel), TechRebornAPI.recipeCompact.getItem("plateiron"), Items.book); + CraftingHelper.addShapelessOreRecipe(new ItemStack(ModItems.manual), TechRebornAPI.recipeCompact.getItem("plateiron"), Items.book); CraftingHelper.addShapedOreRecipe( ItemParts.getPartByName("machineParts", 16), diff --git a/src/main/java/techreborn/items/tools/ItemTechPda.java b/src/main/java/techreborn/items/tools/ItemTechManual.java similarity index 76% rename from src/main/java/techreborn/items/tools/ItemTechPda.java rename to src/main/java/techreborn/items/tools/ItemTechManual.java index 943d6e31b..89bc0c058 100644 --- a/src/main/java/techreborn/items/tools/ItemTechPda.java +++ b/src/main/java/techreborn/items/tools/ItemTechManual.java @@ -8,18 +8,18 @@ import techreborn.client.GuiHandler; import techreborn.client.TechRebornCreativeTab; import techreborn.items.ItemTextureBase; -public class ItemTechPda extends ItemTextureBase { +public class ItemTechManual extends ItemTextureBase { - public ItemTechPda() { + public ItemTechManual() { setCreativeTab(TechRebornCreativeTab.instance); - setUnlocalizedName("techreborn.pda"); + setUnlocalizedName("techreborn.manual"); setMaxStackSize(1); } @Override public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) { - player.openGui(Core.INSTANCE, GuiHandler.pdaID, world, + player.openGui(Core.INSTANCE, GuiHandler.manuelID, world, (int) player.posX, (int) player.posY, (int) player.posY); return itemStack; } @@ -31,7 +31,7 @@ public class ItemTechPda extends ItemTextureBase { @Override public String getTextureName(int damage) { - return "techreborn:items/tool/pda"; + return "mineacraft:book"; } } diff --git a/src/main/java/techreborn/manual/GuiManual.java b/src/main/java/techreborn/manual/GuiManual.java new file mode 100644 index 000000000..9c18b2f13 --- /dev/null +++ b/src/main/java/techreborn/manual/GuiManual.java @@ -0,0 +1,135 @@ +package techreborn.manual; + +import java.io.IOException; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.inventory.Container; +import net.minecraftforge.fml.relauncher.Side; +import net.minecraftforge.fml.relauncher.SideOnly; +import techreborn.manual.pages.ContentsPage; +import techreborn.manual.pages.DescriptionPage; +import techreborn.manual.pages.GettingStartedPage; + +@SideOnly(Side.CLIENT) +public class GuiManual extends GuiScreen +{ + protected final PageCollection root; + protected int pageIndex = 0; + protected int xSize = 0; + protected int ySize = 0; + public Container inventorySlots; + protected int guiLeft; + protected int guiTop; + + public GuiManual() + { + this.xSize = 146; + this.ySize = 180; + root = createRoot(); + } + + protected PageCollection createRoot() + { + pageIndex = 0; + final PageCollection pageCollection = new PageCollection(); + pageCollection.addPage(new ContentsPage("CONTENTS", pageCollection)); + pageCollection.addPage(new GettingStartedPage(Reference.pageNames.GETTINGSTARTED_PAGE, pageCollection)); + pageCollection.addPage(new DescriptionPage(Reference.pageNames.GETTINGRUBBER_PAGE, pageCollection, true)); + + + + return pageCollection; + } + + private int getNextPageIndex() + { + int i = pageIndex; + pageIndex++; + return i; + } + + @Override + public void drawScreen(int mouseX, int mouseY, float par3) + { + drawGuiBackgroundLayer(par3, mouseX, mouseY); + super.drawScreen(mouseX, mouseY, par3); + + prepareRenderState(); + GL11.glPushMatrix(); + + root.drawScreen(this.mc, this.guiLeft, this.guiTop, mouseX - this.guiLeft, mouseY - this.guiTop); + + GL11.glPopMatrix(); + restoreRenderState(); + } + + protected void prepareRenderState() + { + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + RenderHelper.disableStandardItemLighting(); + GL11.glDisable(GL11.GL_LIGHTING); + GL11.glDisable(GL11.GL_DEPTH_TEST); + } + + protected void restoreRenderState() + { + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glEnable(GL11.GL_DEPTH_TEST); + RenderHelper.enableStandardItemLighting(); + } + + protected void drawGuiBackgroundLayer(float p_146976_1_, int mouseX, int mouseY) + { + GL11.glPushMatrix(); + GL11.glTranslated(this.guiLeft, this.guiTop, 0); + root.renderBackgroundLayer(this.mc, 0, 0, mouseX - this.guiLeft, mouseY - this.guiTop); + GL11.glPopMatrix(); + } + + @Override + public void setWorldAndResolution(Minecraft minecraft, int x, int y) + { + super.setWorldAndResolution(minecraft, x, y); + root.setWorldAndResolution(minecraft, x, y); + } + + @Override + public void actionPerformed(GuiButton button) + { + root.actionPerformed(button); + } + + + @Override + public void mouseClicked(int par1, int par2, int par3) throws IOException + { + root.mouseClicked(par1, par2, par3); + } + + @Override + public void handleInput() throws IOException + { + super.handleInput(); + } + + @Override + public void initGui() + { + super.initGui(); + this.guiLeft = (this.width - this.xSize) / 2; + this.guiTop = (this.height - this.ySize) / 2; + } + + @Override + public boolean doesGuiPauseGame() + { + return false; + } +} diff --git a/src/main/java/techreborn/pda/PageCollection.java b/src/main/java/techreborn/manual/PageCollection.java similarity index 97% rename from src/main/java/techreborn/pda/PageCollection.java rename to src/main/java/techreborn/manual/PageCollection.java index a75327db8..e6e4bacee 100644 --- a/src/main/java/techreborn/pda/PageCollection.java +++ b/src/main/java/techreborn/manual/PageCollection.java @@ -1,14 +1,15 @@ -package techreborn.pda; - -import com.google.common.collect.Lists; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.Gui; -import net.minecraft.client.gui.GuiButton; -import techreborn.pda.pages.BasePage; +package techreborn.manual; import java.io.IOException; import java.util.List; +import com.google.common.collect.Lists; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiButton; +import techreborn.manual.pages.BasePage; + public class PageCollection extends Gui { public final List pages = Lists.newArrayList(); diff --git a/src/main/java/techreborn/manual/Reference.java b/src/main/java/techreborn/manual/Reference.java new file mode 100644 index 000000000..ee9c7f18a --- /dev/null +++ b/src/main/java/techreborn/manual/Reference.java @@ -0,0 +1,14 @@ +package techreborn.manual; + +public class Reference +{ + public static final String CONTENTS_KEY = "techreborn.manual.contents"; + public static final String GETTINGSTARTED_KEY = "techreborn.manual.gettingstarted"; + public static final String GETTINGRUBBER_KEY = "techreborn.manual.gettingrubber"; + + public class pageNames + { + public static final String GETTINGSTARTED_PAGE = "gettingstarted"; + public static final String GETTINGRUBBER_PAGE = "gettingrubber"; + } +} diff --git a/src/main/java/techreborn/pda/pages/ContentsPage.java b/src/main/java/techreborn/manual/old/ContentsPageOld.java similarity index 90% rename from src/main/java/techreborn/pda/pages/ContentsPage.java rename to src/main/java/techreborn/manual/old/ContentsPageOld.java index 7fcbc31cc..02a2f5b1e 100644 --- a/src/main/java/techreborn/pda/pages/ContentsPage.java +++ b/src/main/java/techreborn/manual/old/ContentsPageOld.java @@ -1,4 +1,6 @@ -package techreborn.pda.pages; +package techreborn.manual.old; + +import java.awt.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; @@ -6,14 +8,13 @@ import net.minecraft.item.ItemStack; import techreborn.config.TechRebornConfigGui; import techreborn.init.ModBlocks; import techreborn.init.ModItems; -import techreborn.pda.PageCollection; -import techreborn.pda.util.GuiButtonCustomTexture; +import techreborn.manual.PageCollection; +import techreborn.manual.pages.TitledPage; +import techreborn.manual.util.GuiButtonCustomTexture; -import java.awt.*; +public class ContentsPageOld extends TitledPage { -public class ContentsPage extends TitledPage { - - public ContentsPage(String name, PageCollection collection) { + public ContentsPageOld(String name, PageCollection collection) { super(name, false, collection, "techreborn.pda.contents", Color.white.getRGB()); } diff --git a/src/main/java/techreborn/pda/pages/CraftingInfoPage.java b/src/main/java/techreborn/manual/old/CraftingInfoPage.java similarity index 98% rename from src/main/java/techreborn/pda/pages/CraftingInfoPage.java rename to src/main/java/techreborn/manual/old/CraftingInfoPage.java index ca132c0dd..f229c1409 100644 --- a/src/main/java/techreborn/pda/pages/CraftingInfoPage.java +++ b/src/main/java/techreborn/manual/old/CraftingInfoPage.java @@ -1,4 +1,4 @@ -package techreborn.pda.pages; +package techreborn.manual.old; import com.google.common.base.Objects; import com.google.common.base.Strings; @@ -14,8 +14,10 @@ import net.minecraft.util.EnumChatFormatting; import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.ShapedOreRecipe; import net.minecraftforge.oredict.ShapelessOreRecipe; +import techreborn.manual.PageCollection; +import techreborn.manual.pages.TitledPage; + import org.lwjgl.opengl.GL11; -import techreborn.pda.PageCollection; import java.awt.*; import java.lang.reflect.Field; diff --git a/src/main/java/techreborn/pda/GuiManual.java b/src/main/java/techreborn/manual/old/GuiManualOld.java similarity index 95% rename from src/main/java/techreborn/pda/GuiManual.java rename to src/main/java/techreborn/manual/old/GuiManualOld.java index db6e58479..20a7b6908 100644 --- a/src/main/java/techreborn/pda/GuiManual.java +++ b/src/main/java/techreborn/manual/old/GuiManualOld.java @@ -1,23 +1,24 @@ -package techreborn.pda; +package techreborn.manual.old; + +import java.io.IOException; + +import org.lwjgl.opengl.GL11; +import org.lwjgl.opengl.GL12; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.RenderHelper; import net.minecraft.inventory.Container; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; -import org.lwjgl.opengl.GL11; -import org.lwjgl.opengl.GL12; import techreborn.init.ModBlocks; import techreborn.init.ModItems; -import techreborn.pda.pages.*; - -import java.io.IOException; +import techreborn.manual.PageCollection; +import techreborn.manual.pages.ContentsPage; @SideOnly(Side.CLIENT) -public class GuiManual extends GuiScreen { +public class GuiManualOld extends GuiScreen { protected final PageCollection root; protected int pageIndex = 0; @@ -27,7 +28,7 @@ public class GuiManual extends GuiScreen { protected int guiLeft; protected int guiTop; - public GuiManual() { + public GuiManualOld() { this.xSize = 256; this.ySize = 202; root = createRoot(); @@ -145,16 +146,16 @@ public class GuiManual extends GuiScreen { root.setWorldAndResolution(minecraft, x, y); } - @Override - public void actionPerformed(GuiButton button) { - root.actionPerformed(button); - } - - - @Override - public void mouseClicked(int par1, int par2, int par3) throws IOException { - root.mouseClicked(par1, par2, par3); - } +// @Override +// public void actionPerformed(GuiButton button) { +// root.actionPerformed(button); +// } +// +// +// @Override +// public void mouseClicked(int par1, int par2, int par3) throws IOException { +// root.mouseClicked(par1, par2, par3); +// } @Override public void handleInput() throws IOException { diff --git a/src/main/java/techreborn/pda/pages/IndexPage.java b/src/main/java/techreborn/manual/old/IndexPage.java similarity index 91% rename from src/main/java/techreborn/pda/pages/IndexPage.java rename to src/main/java/techreborn/manual/old/IndexPage.java index 0bef5e4c4..71fd0c3dd 100644 --- a/src/main/java/techreborn/pda/pages/IndexPage.java +++ b/src/main/java/techreborn/manual/old/IndexPage.java @@ -1,9 +1,11 @@ -package techreborn.pda.pages; +package techreborn.manual.old; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; -import techreborn.pda.PageCollection; -import techreborn.pda.util.GuiButtonTextOnly; +import techreborn.manual.PageCollection; +import techreborn.manual.pages.BasePage; +import techreborn.manual.pages.TitledPage; +import techreborn.manual.util.GuiButtonTextOnly; public class IndexPage extends TitledPage { diff --git a/src/main/java/techreborn/pda/pages/ItemsPage.java b/src/main/java/techreborn/manual/old/ItemsPage.java similarity index 91% rename from src/main/java/techreborn/pda/pages/ItemsPage.java rename to src/main/java/techreborn/manual/old/ItemsPage.java index a58dee986..1a9ef122b 100644 --- a/src/main/java/techreborn/pda/pages/ItemsPage.java +++ b/src/main/java/techreborn/manual/old/ItemsPage.java @@ -1,11 +1,13 @@ -package techreborn.pda.pages; +package techreborn.manual.old; + +import java.awt.Color; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; -import techreborn.pda.PageCollection; -import techreborn.pda.util.GuiButtonTextOnly; - -import java.awt.*; +import techreborn.manual.PageCollection; +import techreborn.manual.pages.BasePage; +import techreborn.manual.pages.TitledPage; +import techreborn.manual.util.GuiButtonTextOnly; public class ItemsPage extends TitledPage { public String PAGE; diff --git a/src/main/java/techreborn/pda/pages/MultiBlockPage.java b/src/main/java/techreborn/manual/old/MultiBlockPage.java similarity index 97% rename from src/main/java/techreborn/pda/pages/MultiBlockPage.java rename to src/main/java/techreborn/manual/old/MultiBlockPage.java index f3ff26656..a80218f49 100644 --- a/src/main/java/techreborn/pda/pages/MultiBlockPage.java +++ b/src/main/java/techreborn/manual/old/MultiBlockPage.java @@ -1,4 +1,4 @@ -package techreborn.pda.pages; +package techreborn.manual.old; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; @@ -6,7 +6,8 @@ import net.minecraft.util.ResourceLocation; import reborncore.client.multiblock.Multiblock; import reborncore.client.multiblock.MultiblockSet; import techreborn.init.ModBlocks; -import techreborn.pda.PageCollection; +import techreborn.manual.PageCollection; +import techreborn.manual.pages.TitledPage; import techreborn.proxies.ClientProxy; import java.awt.*; diff --git a/src/main/java/techreborn/pda/pages/VersionPage.java b/src/main/java/techreborn/manual/old/VersionPage.java similarity index 95% rename from src/main/java/techreborn/pda/pages/VersionPage.java rename to src/main/java/techreborn/manual/old/VersionPage.java index 01bcdad31..6424f67ea 100644 --- a/src/main/java/techreborn/pda/pages/VersionPage.java +++ b/src/main/java/techreborn/manual/old/VersionPage.java @@ -1,10 +1,11 @@ -package techreborn.pda.pages; +package techreborn.manual.old; import net.minecraft.client.Minecraft; import org.lwjgl.opengl.GL11; import techreborn.Core; import techreborn.lib.ModInfo; -import techreborn.pda.PageCollection; +import techreborn.manual.PageCollection; +import techreborn.manual.pages.TitledPage; import java.awt.*; import java.util.ArrayList; diff --git a/src/main/java/techreborn/pda/pages/BasePage.java b/src/main/java/techreborn/manual/pages/BasePage.java similarity index 89% rename from src/main/java/techreborn/pda/pages/BasePage.java rename to src/main/java/techreborn/manual/pages/BasePage.java index 392a308c6..d497bc2d0 100644 --- a/src/main/java/techreborn/pda/pages/BasePage.java +++ b/src/main/java/techreborn/manual/pages/BasePage.java @@ -1,11 +1,11 @@ -package techreborn.pda.pages; +package techreborn.manual.pages; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; -import techreborn.pda.PageCollection; +import techreborn.manual.PageCollection; import java.io.IOException; @@ -16,9 +16,9 @@ public class BasePage extends GuiScreen { //Name Displayed in the index page public String INDEX_NAME; public boolean hasIndexButton = false; - public static final ResourceLocation PAGE_TEXTURE = new ResourceLocation("techreborn:textures/pda/gui/pda.png"); - private final int xSize = 256; - private final int ySize = 202; + public static final ResourceLocation PAGE_TEXTURE = new ResourceLocation("techreborn:textures/manual/gui/manual.png"); + private final int xSize = 146; + private final int ySize = 180; protected PageCollection collection; public BasePage() { @@ -62,7 +62,7 @@ public class BasePage extends GuiScreen { @Override public void initGui() { buttonList.clear(); - buttonList.add(new GuiButton(0, getXMin() + 88, getYMin() + 181, 80, 16, ttl("techreborn.pda.backbutton"))); + buttonList.add(new GuiButton(0, getXMin() + 30, getYMin() + 150, 80, 16, ttl("techreborn.manual.backbutton"))); } public void setReferenceName(String name) { diff --git a/src/main/java/techreborn/manual/pages/ContentsPage.java b/src/main/java/techreborn/manual/pages/ContentsPage.java new file mode 100644 index 000000000..0c56c913b --- /dev/null +++ b/src/main/java/techreborn/manual/pages/ContentsPage.java @@ -0,0 +1,43 @@ +package techreborn.manual.pages; + +import java.awt.Color; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.item.ItemStack; +import techreborn.config.TechRebornConfigGui; +import techreborn.init.ModBlocks; +import techreborn.init.ModItems; +import techreborn.items.ItemPlates; +import techreborn.manual.PageCollection; +import techreborn.manual.Reference; +import techreborn.manual.util.GuiButtonCustomTexture; + +public class ContentsPage extends TitledPage +{ + public ContentsPage(String name, PageCollection collection) + { + super(name, false, collection, Reference.CONTENTS_KEY, Color.white.getRGB()); + } + + @SuppressWarnings("unchecked") + @Override + public void initGui() + { + buttonList.clear(); + buttonList.add(new GuiButtonCustomTexture(0, getXMin() + 25, getYMin() + 20, 0, 46, 100, 20, ItemPlates.getPlateByName("iron"), + Reference.pageNames.GETTINGSTARTED_PAGE, ttl(Reference.GETTINGSTARTED_KEY))); + } + + @Override + public void renderBackgroundLayer(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) + { + super.renderBackgroundLayer(minecraft, offsetX, offsetY, mouseX, mouseY); + } + + @Override + public void actionPerformed(GuiButton button) + { + if (button.id == 0) collection.changeActivePage(Reference.pageNames.GETTINGSTARTED_PAGE); + } +} diff --git a/src/main/java/techreborn/manual/pages/DescriptionPage.java b/src/main/java/techreborn/manual/pages/DescriptionPage.java new file mode 100644 index 000000000..53d7b8371 --- /dev/null +++ b/src/main/java/techreborn/manual/pages/DescriptionPage.java @@ -0,0 +1,106 @@ +package techreborn.manual.pages; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.util.ResourceLocation; +import techreborn.manual.PageCollection; +import techreborn.manual.Reference; + +public class DescriptionPage extends TitledPage +{ + public boolean hasImage; + private String rawDescription; + private List formattedDescription; + private float descriptionScale = 0.88f; + + public String imageprefix = "techreborn:textures/manual/screenshots/"; + + public DescriptionPage(String name, PageCollection collection, boolean hasImage) + { + super(name, false, collection, Reference.GETTINGSTARTED_KEY, Color.white.getRGB()); + this.hasImage = hasImage; + this.rawDescription = "techreborn.manual." + this.getReferenceName() + ".description"; + } + + @Override + public void renderOverlayComponents(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) + { + if(hasImage) + { + renderImage(offsetX, offsetY); + addDescription(mc, offsetX, offsetY + 50); + } + else + addDescription(mc, offsetX, offsetY); + } + + public void renderImage(int offsetX, int offsetY) + { + TextureManager render = Minecraft.getMinecraft().renderEngine; + render.bindTexture(new ResourceLocation(imageprefix + this.getReferenceName() + ".png")); + + GL11.glEnable(GL11.GL_BLEND); + GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); + GL11.glColor4f(1F, 1F, 1F, 1F); + drawTexturedModalRect(offsetX, offsetY - 16, 0, 0, 120, this.height); + GL11.glDisable(GL11.GL_BLEND); + } + + public void addDescription(Minecraft minecraft, int offsetX, int offsetY) + { + GL11.glPushMatrix(); + GL11.glTranslated(offsetX + 15, offsetY + 40, 1); + GL11.glScalef(descriptionScale, descriptionScale, descriptionScale); + int offset = 0; + for (String s : getFormattedText(fontRendererObj)) + { + if (s == null) break; + if (s.contains("\\%") && s.substring(0, 2).equals("\\%")) + { + s = s.substring(2); + offset += fontRendererObj.FONT_HEIGHT / 2; + } + fontRendererObj.drawString(s, 0, offset, Color.black.getRGB()); + offset += fontRendererObj.FONT_HEIGHT; + } + GL11.glPopMatrix(); + } + + @SuppressWarnings("unchecked") + public List getFormattedText(FontRenderer fr) + { + if (formattedDescription == null) + { + formattedDescription = new ArrayList(); + + if (Strings.isNullOrEmpty(rawDescription)) + { + formattedDescription = ImmutableList.of(); + return formattedDescription; + } + if (!rawDescription.contains("\\n")) + { + formattedDescription = ImmutableList.copyOf(fr.listFormattedStringToWidth(rawDescription, 130)); + return formattedDescription; + } + + List segments = new ArrayList(); + String raw = rawDescription; + + for (String s : segments) + formattedDescription.addAll(ImmutableList.copyOf(fr.listFormattedStringToWidth(s, 370))); + } + return formattedDescription; + } +} diff --git a/src/main/java/techreborn/manual/pages/GettingStartedPage.java b/src/main/java/techreborn/manual/pages/GettingStartedPage.java new file mode 100644 index 000000000..99b7b44fb --- /dev/null +++ b/src/main/java/techreborn/manual/pages/GettingStartedPage.java @@ -0,0 +1,32 @@ +package techreborn.manual.pages; + +import java.awt.Color; + +import net.minecraft.client.gui.GuiButton; +import techreborn.items.ItemParts; +import techreborn.items.ItemPlates; +import techreborn.manual.PageCollection; +import techreborn.manual.Reference; +import techreborn.manual.util.GuiButtonCustomTexture; + +public class GettingStartedPage extends TitledPage +{ + public GettingStartedPage(String name, PageCollection collection) + { + super(name, false, collection, Reference.GETTINGSTARTED_KEY, Color.white.getRGB()); + } + + @Override + public void initGui() + { + buttonList.clear(); + buttonList.add(new GuiButtonCustomTexture(0, getXMin() + 25, getYMin() + 20, 0, 46, 100, 20, ItemParts.getPartByName("rubberSap"), + Reference.pageNames.GETTINGRUBBER_PAGE, ttl(Reference.GETTINGRUBBER_KEY))); + } + + @Override + public void actionPerformed(GuiButton button) + { + if (button.id == 0) collection.changeActivePage(Reference.pageNames.GETTINGRUBBER_PAGE); + } +} diff --git a/src/main/java/techreborn/pda/pages/TitledPage.java b/src/main/java/techreborn/manual/pages/TitledPage.java similarity index 83% rename from src/main/java/techreborn/pda/pages/TitledPage.java rename to src/main/java/techreborn/manual/pages/TitledPage.java index 856d21f2b..e0bf5a2c3 100644 --- a/src/main/java/techreborn/pda/pages/TitledPage.java +++ b/src/main/java/techreborn/manual/pages/TitledPage.java @@ -1,7 +1,7 @@ -package techreborn.pda.pages; +package techreborn.manual.pages; import net.minecraft.client.Minecraft; -import techreborn.pda.PageCollection; +import techreborn.manual.PageCollection; public class TitledPage extends BasePage { private String title; @@ -17,6 +17,6 @@ public class TitledPage extends BasePage { @Override public void renderOverlayComponents(Minecraft minecraft, int offsetX, int offsetY, int mouseX, int mouseY) { if (title == null) title = INDEX_NAME; - if (drawTitle) drawCenteredString(minecraft.fontRendererObj, ttl(title), offsetX + 128, offsetY + 5, colour); + if (drawTitle) drawCenteredString(minecraft.fontRendererObj, ttl(title), offsetX + 70, offsetY + 10, colour); } } diff --git a/src/main/java/techreborn/pda/util/GuiButtonAHeight.java b/src/main/java/techreborn/manual/util/GuiButtonAHeight.java similarity index 98% rename from src/main/java/techreborn/pda/util/GuiButtonAHeight.java rename to src/main/java/techreborn/manual/util/GuiButtonAHeight.java index 57c52ad00..6f1e01a38 100644 --- a/src/main/java/techreborn/pda/util/GuiButtonAHeight.java +++ b/src/main/java/techreborn/manual/util/GuiButtonAHeight.java @@ -1,4 +1,4 @@ -package techreborn.pda.util; +package techreborn.manual.util; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; diff --git a/src/main/java/techreborn/pda/util/GuiButtonCustomTexture.java b/src/main/java/techreborn/manual/util/GuiButtonCustomTexture.java similarity index 88% rename from src/main/java/techreborn/pda/util/GuiButtonCustomTexture.java rename to src/main/java/techreborn/manual/util/GuiButtonCustomTexture.java index 609c7ec50..2162e5350 100644 --- a/src/main/java/techreborn/pda/util/GuiButtonCustomTexture.java +++ b/src/main/java/techreborn/manual/util/GuiButtonCustomTexture.java @@ -1,7 +1,8 @@ -package techreborn.pda.util; +package techreborn.manual.util; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.RenderHelper; +import net.minecraft.client.renderer.entity.RenderItem; import net.minecraft.item.ItemStack; import net.minecraftforge.fml.client.config.GuiButtonExt; import org.lwjgl.opengl.GL11; @@ -45,7 +46,8 @@ public class GuiButtonCustomTexture extends GuiButtonExt { GL11.glEnable(32826); RenderHelper.enableStandardItemLighting(); RenderHelper.enableGUIStandardItemLighting(); - //RenderItem.getInstance().renderItemIntoGUI(mc.fontRendererObj, mc.renderEngine, itemstack, this.xPosition, this.yPosition); //TODO 1.8 + RenderItem itemRenderer = Minecraft.getMinecraft().getRenderItem(); + itemRenderer.renderItemIntoGUI(itemstack, this.xPosition, this.yPosition); this.drawString(mc.fontRendererObj, this.NAME, this.xPosition + 20, this.yPosition + 3, Color.white.getRGB()); } } diff --git a/src/main/java/techreborn/pda/util/GuiButtonTextOnly.java b/src/main/java/techreborn/manual/util/GuiButtonTextOnly.java similarity index 98% rename from src/main/java/techreborn/pda/util/GuiButtonTextOnly.java rename to src/main/java/techreborn/manual/util/GuiButtonTextOnly.java index e9ffca562..72e6a2c19 100644 --- a/src/main/java/techreborn/pda/util/GuiButtonTextOnly.java +++ b/src/main/java/techreborn/manual/util/GuiButtonTextOnly.java @@ -1,4 +1,4 @@ -package techreborn.pda.util; +package techreborn.manual.util; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; diff --git a/src/main/resources/assets/techreborn/lang/en_US.lang b/src/main/resources/assets/techreborn/lang/en_US.lang index b192534c2..f48134217 100644 --- a/src/main/resources/assets/techreborn/lang/en_US.lang +++ b/src/main/resources/assets/techreborn/lang/en_US.lang @@ -625,7 +625,7 @@ item.bucketwolframium.name=Wolframium Bucket #Items item.techreborn.uuMatter.name=UU-Matter -item.techreborn.pda.name=PDA +item.techreborn.manual.name=Tech manual #Configs config.techreborn.allow.galenaOre=Allow Galena Ore @@ -911,12 +911,11 @@ Cable.trippleInsulatedIronCable.name=Triple Insulated Copper Cable Cable.glassFiberCable.name=Glass Fiber Cable Cable.tinCable.name=Tin Cable -#PDA -techreborn.pda.contents=Contents Page -techreborn.pda.itemspage=Items -techreborn.pda.blockspage=Blocks -techreborn.pda.index=Index -techreborn.pda.backbutton=BACK +#Manual +techreborn.manual.contents=Contents Page +techreborn.manual.gettingstarted=Getting Started +techreborn.manual.gettingrubber=Collecting Rubber +techreborn.manual.backbutton=Back item.techreborn.advancedDrill.description=This Tool is a advanced version of the mining drill, when this item is activated it will dig out a 3x3. tile.techreborn.alloyfurnace.description=This Machine is your first step into TechReborn with this you can fuse metals into other metals. These other metals can be used to craft the higher tier machines. diff --git a/src/main/resources/assets/techreborn/textures/manual/elements/craftingtable.png b/src/main/resources/assets/techreborn/textures/manual/elements/craftingtable.png new file mode 100644 index 0000000000000000000000000000000000000000..06e5b6a9f5dbdf302c499c24b21a4558e25a7bb6 GIT binary patch literal 1831 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78e=6B#^AYUQb zBgmJ5p`D+Bp$CZn0yQ-{Ffi0sGBCXCW?-;+%D^Cbrr4&noPmLvA;2fZ6{yGD+`PNH z`~Uy{K=vpY4S^9A0-sJQ&j)3yk|4ieU=|q3fFbxhyDBj9ISV`@iy0WW1wojxJ|%u4 zP*9@8HKHUqKdq!Zu_%?HATcwqL@zJ3M8QPQK+iO_)hLyLfhp0`#WAEJ?(K}*d4~){ z4w(J;pPy!~e<967)TiXkx9;W-{$rXZgU`evQogrp4und<7AOcQzHt%k1T5JwtlV1EU06%#$#S zDsip`cGd@e%}gQZBr;u&OjY(`4?m8_ED@V- zO=e4|J1*JqkvWxNnST$X#6AJG0}r@2Jo02ZGyUeKO|9vb%-6njUzj#kSEQj`U59a< z{ZXL(2N4pZbP{A2oBS2zWk=0&Cq3RbeGj`1A0u@o7u6{1-oD!M<;aMFr literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/manual/elements/furnacerecipe.png b/src/main/resources/assets/techreborn/textures/manual/elements/furnacerecipe.png new file mode 100644 index 0000000000000000000000000000000000000000..df08d6c7b5d14a5f78f084ea4781f453a003f722 GIT binary patch literal 2133 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K58911MRQ8&P5Fo{p?&#~tz_78e=6B#^AYUQb zBgmJ5p`D+Bp$CZn0yQ-{Ffi0sGBCXCW?-;+%D^Cbrr4&noPmLvA;2fZ6{v@qnVExw zgOih!i;Ih!o12G+hnJU^pPyeqKtNDXP((yTR8&+%-r1khL7w2Z4Cea%XfEo|Ns5_ z|Ns9$8%M!t2n>=CIN)+z36!Zyg8YJkiE|_ahT!k)s=#RBEbxddW?fO3MP66dZwwZMybGZq~FuUF{C2y?Tp@{OAZpQ zu1BM0FS_`vd6CnE@AWQseEpcz8jY5m%lUrq^1^n>7ku{<&9~HU6hF?mL5Hs)wU9xl zn>is;hT-%hh6pkC1Dh-urX7V#dD|a&XMf;Q<|Bq3so!^>pJuqOed*;CiGN?@c*=S)r{SKDsTC%QqbZ-6m`q)P-Z!0DQHk5{*m)n`iH^>GL4@ZcU+!u z*;Jt~HosX*t}XbB+{rBVmWQi8gx=pdWsP3bM`i^+`FEz5V;%gg7t~#C&!0Z=y5Nqc z9HtNZ?=XwMYph}Vu*+KFgP}~ra{h{WjA@%A-!d@U9h>=lW67)@_8GMr_FGvY;kB4C ztvi4JsYy&ehK$qvCVym*pT0UZx&a)tMsf@O?2B3_Hw!Ackzwz{v~eOvp&R6%6MdGUwaA6o2BYta5DX2A?JwUfc!;3x}FB^%?sga>xO qX#LAjgpw%mq?eH{wdl?FdPckNfuXbZJzWDTYCT>3T-G@yGywnv+R1eQ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/manual/gui/manual.png b/src/main/resources/assets/techreborn/textures/manual/gui/manual.png new file mode 100644 index 0000000000000000000000000000000000000000..265eaab4941e3aa0423f3aa98d166d0b221c7f89 GIT binary patch literal 39071 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

AdQ#Xc3@*?wJ@$pxy9#G7#aeSCS05>ph(rhJP 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/manual/screenshots/gettingrubber.png b/src/main/resources/assets/techreborn/textures/manual/screenshots/gettingrubber.png new file mode 100644 index 0000000000000000000000000000000000000000..b0ee8368fd82dd5ff151b17e40eb4ca52ec04f44 GIT binary patch literal 13991 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 U{HPXok1u$jtaZQao>j>I2a^pp8~^|S literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/techreborn/textures/pda/gui/pda.png b/src/main/resources/assets/techreborn/textures/pda/gui/pda.png deleted file mode 100644 index ee1a9a6882cd8eec0365cf09477f7837884cb792..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1489 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 R0Qo@z?|puxl0Bin{|DXXLFfPg