diff --git a/README.md b/README.md index 914f8211..40360de2 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,99 @@ ## Welcome to Equivalent Exchange 3! -The Compilation part (Setup) was done mostly by Minalien, I just changed it a bit. Some credit goes to BuildCraft's README.md, which I based this README off of. +Setup MCP was done mostly by Minalien, I just changed it a bit. Some credit goes to BuildCraft's README.md, which I based this README off of. -The Minecraft Forums page can be found [here] (www.minecraftforum.net/topic/1540010-equivalent-exchange-3). +The Minecraft Forums page can be found [here] (http://www.minecraftforum.net/topic/1540010-equivalent-exchange-3). ### Compiling Equivalent Exchange 3 IMPORTANT: This is not guaranteed to work as it has not been tested extensively (only done on Linux so far, partly on Windows). ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ -#### Setup MCP -1. Create an empty directory for EE3 development. This directory is referenced as `mcdev` from now on. -2. Download the latest version of MCP from [here] (http://mcp.ocean-labs.de/index.php/MCP_Releases) , e.g. mcp719.zip. Install MCP dependencies as listed on the website if neccessary. -3. Install Apache Ant [here] (ant.apache.org.) -3. Inside `mcdev`, create a directory named `mcp` and unzip the MCP ZIP file into it -4. To verify, check if a file name `CHANGELOG` exists inside the mcp directory. -5. Get a clean (unmodded!) copy of minecraft. Currently EE3 runs on 1.4.2 but that might have changed. -6. From your .minecraft directory, copy the bin and the resources directory to the `jars` directory inside `mcp`. -7. Get a clean (unmodded!) copy of minecraft_server.jar and also place it into `jars`. -8. Download the latest forge source for Minecraft 1.4.2 and unzip it into `mcp` so that `mcp/forge/install.sh` exists. You need at least Forge 6.0.1, best way is to get it from [here] (http://files.minecraftforge.net/): http://files.minecraftforge.net/ NOTE: 6.0.1.355 was the last version to support 1.4.2, do not get anything later than that for 1.4.2 versions of EE3! -9. Execute `mcdev/mcp/forge/install.sh` or `mcp/forge/install.cmd`, depending on your platform. On Linux you might have to `chmod +x` `install.sh` before you can execute it. On some system configurations you need to execute `install.sh` from within the forge directory whereas on others it doesn't matter. Just check the output for error messages to find out what you need to do. +#### Prerequisites (Tested for Windows 7 ONLY!) +1. Download and install the Java JDK [here](http://www.oracle.com/technetwork/java/javase/downloads/jdk7u9-downloads-1859576.html). Just scroll down. + * Go to `Control Panel\System and Security\System`, and click on `Advanced System Settings` on the left-hand side. + * Click on `Environment Variables`. + * Under `System Variables`, click `New`. + * For `Variable Name`, input `JAVA_HOME`. + * For `Variable Value`, input something similar to `;C:\Program Files (x86)\Java\jdk1.7.0_09` exactly as shown to the end.(or wherever your Java JDK installation is), and click `Ok`. + * Scroll down to a variable named `Path`, and double-click on it. + * Append `;C:\Program Files (x86)\Java\jdk1.7.0_09\bin` (or wherever your Java JDK installation is \bin), and click `Ok`. +2. Download and Apache Ant [here] (http://ant.apache.org). + * Unzip the files anywhere you want, eg `C:\Program Files (x86)\Ant`. + * Again, go to `Environment Variables` just like you did for the Java JDK. + * Under `System Variables`, click `New`. + * For `Variable Name`, input `ANT_HOME`. + * For `Variable Value`, input `C:\Ant\apache-ant-1.8.4` (or your Ant directory \apache-ant-1.8.4). + * Scroll down to `Path`, and double-click on it. + * Append `;C:\Ant\apache-ant-1.8.4\bin` exactly as shown to the end (or your Ant directory \apache-ant-1.8.4\bin). +3. Download and install Github [here] (http://windows.github.com/). + * Create an account. + * Go back to the Equivalent-Exchange-3 directory [here] (http://github.com/pahimar/Equivalent-Exchange-3). + * Click `Clone to Windows` near the top-left of the page. + * You should see Github flash and `pahimar/Equivalent-Exchange-3` appear. (The local repository defaults to `C:\Users\(username)\Documents\GitHub\Equivalent-Exchange-3`, you can change it if you want but then you have to find it again on Github). +4. Create an empty directory for EE3 development. This directory is refernced as `mcdev` from now on. It can be where you cloned EE3, but it'll be a little messy. -#### Setup EE3 -1. Inside `mcdev`, create a directory named `source`. Clone EE3 into this directory. -2. [FOR WINDOWS] Open up cmd. Type `cmd` in Run. -3. [FOR WINDOWS] Navigate to `mcdev\source` by executing `cd [wherever your mcdev is located, just copy and paste the path in]`. -2. Inside `sources\Equivalent-Exchange-3` execute `ant build -Ddir.development=../../`. If you've done everything right, BUILD SUCCESSFUL is displayed. -3. Execute `ant recompile -Ddir.development=../../`. -4. Execute `ant reobfuscate -Ddir.development=../../`. -5. If you've done everything right AND the source code currently compiles, you can execute startclient.sh or startclient.bat inside the mcp directory now to start Minecraft with EE3. +5. You are now ready to Setup MCP! + + +#### Setup MCP (Linux and Windows 7 tested) +1. Download the latest version of MCP from [here] (http://mcp.ocean-labs.de/index.php/MCP_Releases) , e.g. mcp723.zip. Install MCP dependencies as listed on the website if neccessary. + +2. Inside `mcdev`, create a directory named `mcp` and unzip the MCP .zip file into it. + +3. To verify, check if a file name `CHANGELOG` exists inside the `mcp` directory. + +4. Get a clean (unmodded!) copy of minecraft's `bin` folder. Currently EE3 runs on 1.4.5 but that might have changed. + +5. From your `.minecraft` directory (on Windows, defaults to `%appdata%\.minecraft`), copy the `bin` and the `resources` (I don't think you need resources on Windows 7) directory to the `jars` directory inside `mcp`. (I actually believe Forge's installation might do it for you) + +6. Get a clean (unmodded!) copy of `minecraft_server.jar` and also place it into `jars`. (Forge might do this for you) + +7. Download the latest forge **source** for Minecraft 1.4.5 and unzip it into `mcp` so that `mcp/forge/install.sh` exists. You need at least Forge 6.4.0, best way is to get it from [here] (http://files.minecraftforge.net/). + +8. Execute `install.sh` (Linux and Mac?) or `install.cmd` (Windows), both found in `mcdev/mcp/forge`. On Linux you might have to `chmod +x` `install.sh` before you can execute it. On some system configurations you need to execute `install.sh` from within the `forge` directory whereas on others it doesn't matter. Just check the output for error messages to find out what you need to do. + +#### Setup EE3 (Some tested for Linux, some for Windows) +1. Inside `mcdev`, create a directory named `source`. If you're doing this from the default clone directory, make two folders: `source` and `Equivalent-Exchange-3`. Copy and paste the original files into `Equivalent-Exchange-3`, and then move that into `source`. + +2. If you haven't already, move/clone `Equivalent-Exchange-3` into `source`. + +3. Right now, you should have a directory that looks something like: + +*** + + mcdev + \-mcp + \-mcp stuff blablabla (should have CHANGELOG). + \-forge + \-jars + \-source + \-Equivalent-Exchange-3 + \-EE3's files, including build.xml. +*** +4. Inside `Equivalent-Exchange-3`, create a new file called `build.properties`. + * Open it up, and type into it the following: + * `dir.development=../../` + * `dir.share=Shared` (or what you want it to be) + * `dir.release=Releases` (what you want it to be) + * `release.minecraft.version=1.4.5` (as of 11/21) + * `release.mod.version=pre2` (or whatever version # want it to be) +5. [FOR WINDOWS] Open up `cmd` by typing `cmd` in Run. + +6. [FOR WINDOWS] Navigate to `mcdev\source` by executing `cd mcdev's location\source`. + +7. Inside `sources\Equivalent-Exchange-3` execute `ant release`. If you've done everything right, `BUILD SUCCESSFUL` is displayed. If not, you probably did something wrong. + +8. Go to `mcdev\source\Equivalent-Exchange-3\Releases\1.4.5\pre2` (or whatever you put into `build.properties` for `dir.release`, `release.minecraft.version`, and `release.mod.version`). You should see a .jar named `ee3-universal-pre2.jar` (or whatever you put into `release.mod.version`). + +9. Copy the jar into your Minecraft mods folder, and play Minecraft! + +### To Update EE3 (For Windows Only?) +1. Check to see if pahimar updated EE3 since you last compiled. If he/she did, follow these instructions. + +2. Open Github. + +3. Double-click on pahimar/Equivalent-Exchange-3. + +4. At the top, there is a button named `Sync` (or `Refreshing...` if its still checking). + +5. Click `Sync`, and wait for it to finish. + +6. Re-compile (or move it to `mcdev\source` then re-compile, depending on what you did.) \ No newline at end of file diff --git a/ee3_client/ee3/client/core/ClientProxy.java b/ee3_client/ee3/client/core/ClientProxy.java index 46b823a1..c974814f 100644 --- a/ee3_client/ee3/client/core/ClientProxy.java +++ b/ee3_client/ee3/client/core/ClientProxy.java @@ -9,6 +9,7 @@ import cpw.mods.fml.client.registry.ClientRegistry; import cpw.mods.fml.client.registry.KeyBindingRegistry; import cpw.mods.fml.client.registry.RenderingRegistry; import cpw.mods.fml.common.registry.LanguageRegistry; +import ee3.client.core.handlers.DrawBlockHighlightHandler; import ee3.client.core.handlers.KeyBindingHandler; import ee3.client.core.handlers.SoundHandler; import ee3.client.core.helper.KeyBindingHelper; @@ -38,6 +39,11 @@ public class ClientProxy extends CommonProxy { public void registerKeyBindingHandler() { KeyBindingRegistry.registerKeyBinding(new KeyBindingHandler()); } + + @Override + public void registerDrawBlockHighlightHandler() { + MinecraftForge.EVENT_BUS.register(new DrawBlockHighlightHandler()); + } @Override public void setKeyBinding(String name, int value) { diff --git a/ee3_client/ee3/client/core/handlers/DrawBlockHighlightHandler.java b/ee3_client/ee3/client/core/handlers/DrawBlockHighlightHandler.java new file mode 100644 index 00000000..0f84211f --- /dev/null +++ b/ee3_client/ee3/client/core/handlers/DrawBlockHighlightHandler.java @@ -0,0 +1,17 @@ +package ee3.client.core.handlers; + +import net.minecraft.src.RenderEngine; +import net.minecraftforge.client.event.DrawBlockHighlightEvent; +import net.minecraftforge.event.ForgeSubscribe; + +public class DrawBlockHighlightHandler { + + + @ForgeSubscribe + public void onDrawBlockHighlightEvent(DrawBlockHighlightEvent event) { + RenderEngine renderEngine = event.context.renderEngine; + + // TODO Magic happens here + } + +} diff --git a/ee3_client/ee3/client/core/handlers/KeyBindingHandler.java b/ee3_client/ee3/client/core/handlers/KeyBindingHandler.java index e53a60ae..7552f1be 100644 --- a/ee3_client/ee3/client/core/handlers/KeyBindingHandler.java +++ b/ee3_client/ee3/client/core/handlers/KeyBindingHandler.java @@ -17,6 +17,7 @@ import ee3.common.EquivalentExchange3; import ee3.common.core.helper.LogHelper; import ee3.common.item.ITransmutationStone; import ee3.common.item.ModItems; +import ee3.common.lib.ConfigurationSettings; import ee3.common.lib.GuiIds; import ee3.common.lib.Reference; import ee3.common.network.PacketEE; @@ -49,7 +50,7 @@ public class KeyBindingHandler extends KeyBindingRegistry.KeyHandler { if (tickEnd) { // If we are not in a GUI of any kind, continue execution if (FMLClientHandler.instance().getClient().currentScreen == null) { - System.out.println(kb.keyDescription); + // TODO Clean this up properly if (kb.keyDescription == Reference.KEYBINDING_EXTRA) { ItemStack currentItem = FMLClientHandler.instance().getClient().thePlayer.getCurrentEquippedItem(); @@ -59,6 +60,15 @@ public class KeyBindingHandler extends KeyBindingRegistry.KeyHandler { } } } + else if (kb.keyDescription == Reference.KEYBINDING_TOGGLE) { + ItemStack currentItem = FMLClientHandler.instance().getClient().thePlayer.getCurrentEquippedItem(); + + if (currentItem != null) { + if (currentItem.getItem() instanceof ITransmutationStone) { + ConfigurationSettings.ENABLE_OVERLAY_PHILOSOPHER_STONE = !ConfigurationSettings.ENABLE_OVERLAY_PHILOSOPHER_STONE; + } + } + } } } diff --git a/ee3_client/ee3/client/core/helper/RenderUtils.java b/ee3_client/ee3/client/core/helper/RenderUtils.java index 01e54caa..c3be40ae 100644 --- a/ee3_client/ee3/client/core/helper/RenderUtils.java +++ b/ee3_client/ee3/client/core/helper/RenderUtils.java @@ -2,15 +2,48 @@ package ee3.client.core.helper; import org.lwjgl.opengl.GL11; +import net.minecraft.src.Block; import net.minecraft.src.FontRenderer; import net.minecraft.src.Item; import net.minecraft.src.ItemStack; +import net.minecraft.src.RenderBlocks; import net.minecraft.src.RenderEngine; import net.minecraft.src.Tessellator; public class RenderUtils { - public static void renderItemIntoGUI(FontRenderer fontRenderer, RenderEngine renderEngine, ItemStack stack, int x, int y) { + private static int rotationAngle = 0; + + public static void renderRotatingBlockIntoGUI(FontRenderer fontRenderer, RenderEngine renderEngine, ItemStack stack, int x, int y, float zLevel, float scale) { + + RenderBlocks renderBlocks = new RenderBlocks(); + + Block block = Block.blocksList[stack.itemID]; + renderEngine.bindTexture(renderEngine.getTexture(block.getTextureFile())); + GL11.glPushMatrix(); + GL11.glTranslatef((float)(x - 2), (float)(y + 3), -3.0F + zLevel); + GL11.glScalef(10.0F, 10.0F, 10.0F); + GL11.glTranslatef(1.0F, 0.5F, 1.0F); + GL11.glScalef(1.0F * scale, 1.0F * scale, -1.0F); + GL11.glRotatef(210.0F, 1.0F, 0.0F, 0.0F); + GL11.glRotatef(0F + 1 * rotationAngle, 0.0F, 1.0F, 0.0F); + rotationAngle = (rotationAngle + 1) % 360; + + int var10 = Item.itemsList[stack.itemID].getColorFromItemStack(stack, 0); + float var16 = (float)(var10 >> 16 & 255) / 255.0F; + float var12 = (float)(var10 >> 8 & 255) / 255.0F; + float var13 = (float)(var10 & 255) / 255.0F; + + GL11.glColor4f(var16, var12, var13, 1.0F); + + GL11.glRotatef(-90.0F, 0.0F, 1.0F, 0.0F); + renderBlocks.useInventoryTint = true; + renderBlocks.renderBlockAsItem(block, stack.getItemDamage(), 1.0F); + renderBlocks.useInventoryTint = true; + GL11.glPopMatrix(); + } + + public static void renderItemIntoGUI(FontRenderer fontRenderer, RenderEngine renderEngine, ItemStack stack, int x, int y, float opacity, float scale) { int itemID = stack.itemID; int meta = stack.getItemDamage(); @@ -25,16 +58,20 @@ public class RenderUtils { float var16 = (float) (overlayColour >> 8 & 255) / 255.0F; float var12 = (float) (overlayColour & 255) / 255.0F; - GL11.glColor4f(var17, var16, var12, 1.0F); + GL11.glColor4f(var17, var16, var12, opacity); - drawTexturedQuad(x, y, iconIndex % 16 * 16*4, iconIndex / 16 * 16*4, 16*4, 16*4, -90); + drawTexturedQuad(x, y, iconIndex % 16 * 16, iconIndex / 16 * 16, 16, 16, -90, scale); GL11.glEnable(GL11.GL_LIGHTING); } - public static void drawTexturedQuad(int x, int y, int u, int v, int width, int height, double zLevel) { + public static void drawTexturedQuad(int x, int y, int u, int v, int width, int height, double zLevel, float scale) { - float var7 = 0.00390625F/4; - float var8 = 0.00390625F/4; + u = (int) (u * scale); + v = (int) (v * scale); + width = (int) (width * scale); + height = (int) (height * scale); + float var7 = 0.00390625F/scale; + float var8 = 0.00390625F/scale; Tessellator var9 = Tessellator.instance; var9.startDrawingQuads(); var9.addVertexWithUV(x + 0, y + height, zLevel, (u + 0) * var7, (v + height) * var8); diff --git a/ee3_common/ee3/common/EquivalentExchange3.java b/ee3_common/ee3/common/EquivalentExchange3.java index 27462f8f..b9aa4319 100644 --- a/ee3_common/ee3/common/EquivalentExchange3.java +++ b/ee3_common/ee3/common/EquivalentExchange3.java @@ -107,6 +107,9 @@ public class EquivalentExchange3 { // Register the EntityLiving Handler MinecraftForge.EVENT_BUS.register(new EntityLivingHandler()); + + // Register the DrawBlockHighlight Handler + proxy.registerDrawBlockHighlightHandler(); // Initialize mod blocks ModBlocks.init(); diff --git a/ee3_common/ee3/common/core/CommonProxy.java b/ee3_common/ee3/common/core/CommonProxy.java index ac1f1f75..232e4207 100644 --- a/ee3_common/ee3/common/core/CommonProxy.java +++ b/ee3_common/ee3/common/core/CommonProxy.java @@ -10,6 +10,7 @@ import ee3.client.gui.GuiPortableCrafting; import ee3.common.container.ContainerCalcinator; import ee3.common.container.ContainerPortableCrafting; import ee3.common.lib.GuiIds; +import ee3.common.lib.Strings; import ee3.common.tile.TileCalcinator; /** @@ -25,6 +26,8 @@ import ee3.common.tile.TileCalcinator; public class CommonProxy implements IGuiHandler { public void registerKeyBindingHandler() {} + + public void registerDrawBlockHighlightHandler() {} public void setKeyBinding(String name, int value) {} @@ -39,8 +42,7 @@ public class CommonProxy implements IGuiHandler { public void initRenderingAndTextures() {} public void initTileEntities() { - // TODO: Constant - GameRegistry.registerTileEntity(TileCalcinator.class, "tileCalcinator"); + GameRegistry.registerTileEntity(TileCalcinator.class, Strings.TE_CALCINATOR_NAME); } @Override diff --git a/ee3_common/ee3/common/core/handlers/ConfigurationHandler.java b/ee3_common/ee3/common/core/handlers/ConfigurationHandler.java index 8bcd86d9..5606ce4c 100644 --- a/ee3_common/ee3/common/core/handlers/ConfigurationHandler.java +++ b/ee3_common/ee3/common/core/handlers/ConfigurationHandler.java @@ -26,6 +26,7 @@ import static net.minecraftforge.common.Configuration.*; public class ConfigurationHandler { private static final String CATEGORY_KEYBIND = "keybinds"; + private static final String CATEGORY_GRAPHICS = "graphics"; public static void init(File configFile) { Configuration configuration = new Configuration(configFile); @@ -35,14 +36,11 @@ public class ConfigurationHandler { /* General Configs */ ConfigurationSettings.ENABLE_VERSION_CHECK = configuration - .get(CATEGORY_GENERAL, Reference.ENABLE_VERSION_CHECK, ConfigurationSettings.ENABLE_VERSION_CHECK_DEFAULT) + .get(CATEGORY_GENERAL, ConfigurationSettings.ENABLE_VERSION_CHECK_CONFIGNAME, ConfigurationSettings.ENABLE_VERSION_CHECK_DEFAULT) .getBoolean(ConfigurationSettings.ENABLE_VERSION_CHECK_DEFAULT); ConfigurationSettings.ENABLE_SOUNDS = configuration - .get(CATEGORY_GENERAL, Reference.ENABLE_SOUNDS, ConfigurationSettings.ENABLE_SOUNDS_DEFAULT) + .get(CATEGORY_GENERAL, ConfigurationSettings.ENABLE_SOUNDS_CONFIGNAME, ConfigurationSettings.ENABLE_SOUNDS_DEFAULT) .getBoolean(ConfigurationSettings.ENABLE_SOUNDS_DEFAULT); - ConfigurationSettings.ENABLE_PARTICLE_FX = configuration - .get(CATEGORY_GENERAL, Reference.ENABLE_PARTICLE_FX, ConfigurationSettings.ENABLE_PARTICLE_FX_DEFAULT) - .getBoolean(ConfigurationSettings.ENABLE_PARTICLE_FX_DEFAULT); ConfigurationSettings.MINIUM_STONE_TRANSMUTE_COST = configuration .get(CATEGORY_GENERAL, ConfigurationSettings.MINIUM_STONE_TRANSMUTE_COST_CONFIGNAME, ConfigurationSettings.MINIUM_STONE_TRANSMUTE_COST_DEFAULT) .getInt(ConfigurationSettings.MINIUM_STONE_TRANSMUTE_COST_DEFAULT); @@ -50,9 +48,17 @@ public class ConfigurationHandler { .get(CATEGORY_GENERAL, ConfigurationSettings.MINIUM_STONE_MAX_DURABILITY_CONFIGNAME, ConfigurationSettings.MINIUM_STONE_MAX_DURABILITY_DEFAULT) .getInt(ConfigurationSettings.MINIUM_STONE_MAX_DURABILITY_DEFAULT); + /* Graphics/Rendering Configs */ + ConfigurationSettings.ENABLE_PARTICLE_FX = configuration + .get(CATEGORY_GENERAL, ConfigurationSettings.ENABLE_PARTICLE_FX_CONFIGNAME, ConfigurationSettings.ENABLE_PARTICLE_FX_DEFAULT) + .getBoolean(ConfigurationSettings.ENABLE_PARTICLE_FX_DEFAULT); + ConfigurationSettings.ENABLE_OVERLAY_PHILOSOPHER_STONE = configuration + .get(CATEGORY_GENERAL, ConfigurationSettings.ENABLE_OVERLAY_PHILOSOPHER_STONE_CONFIGNAME, ConfigurationSettings.ENABLE_OVERLAY_PHILOSOPHER_STONE_DEFAULT) + .getBoolean(ConfigurationSettings.ENABLE_OVERLAY_PHILOSOPHER_STONE_DEFAULT); + /* Block Configs */ ConfigurationSettings.AUTO_RESOLVE_BLOCK_IDS = configuration - .get(CATEGORY_BLOCK, Reference.AUTO_RESOLVE_BLOCK_IDS, ConfigurationSettings.AUTO_RESOLVE_BLOCK_IDS_DEFAULT) + .get(CATEGORY_BLOCK, ConfigurationSettings.AUTO_RESOLVE_BLOCK_IDS_CONFIGNAME, ConfigurationSettings.AUTO_RESOLVE_BLOCK_IDS_DEFAULT) .getBoolean(ConfigurationSettings.AUTO_RESOLVE_BLOCK_IDS_DEFAULT); BlockIds.CALCINATOR = configuration .getBlock(Strings.CALCINATOR_NAME, BlockIds.CALCINATOR_DEFAULT) diff --git a/ee3_common/ee3/common/core/handlers/RenderTickHandler.java b/ee3_common/ee3/common/core/handlers/RenderTickHandler.java index 53c1e04f..06445703 100644 --- a/ee3_common/ee3/common/core/handlers/RenderTickHandler.java +++ b/ee3_common/ee3/common/core/handlers/RenderTickHandler.java @@ -6,8 +6,12 @@ import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; import net.minecraft.client.Minecraft; +import net.minecraft.src.Block; +import net.minecraft.src.EntityItem; import net.minecraft.src.EntityPlayer; +import net.minecraft.src.ItemBlock; import net.minecraft.src.ItemStack; +import net.minecraft.src.MovingObjectPosition; import net.minecraft.src.RenderHelper; import net.minecraft.src.RenderItem; import net.minecraft.src.ScaledResolution; @@ -15,9 +19,11 @@ import net.minecraft.src.ScaledResolution; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.ITickHandler; import cpw.mods.fml.common.TickType; +import ee3.client.core.handlers.DrawBlockHighlightHandler; import ee3.client.core.helper.RenderUtils; +import ee3.common.core.helper.TransmutationHelper; import ee3.common.core.helper.VersionHelper; -import ee3.common.item.ItemPhilosopherStone; +import ee3.common.item.ITransmutationStone; import ee3.common.lib.ConfigurationSettings; import ee3.common.lib.Reference; @@ -40,7 +46,7 @@ public class RenderTickHandler implements ITickHandler { currentItemStack = player.inventory.getCurrentItem(); } - if ((player != null) && (currentItemStack != null) && (minecraft.inGameHasFocus) && (currentItemStack.getItem() instanceof ItemPhilosopherStone)) { + if ((player != null) && (currentItemStack != null) && (minecraft.inGameHasFocus) && (currentItemStack.getItem() instanceof ITransmutationStone) && (ConfigurationSettings.ENABLE_OVERLAY_PHILOSOPHER_STONE)) { renderStoneHUD(minecraft, player, currentItemStack, (Float) tickData[0]); } } @@ -59,11 +65,19 @@ public class RenderTickHandler implements ITickHandler { } private static void renderStoneHUD(Minecraft minecraft, EntityPlayer player, ItemStack stack, float partialTicks) { - - int loc = player.inventory.currentItem*20; - int shift = player.capabilities.isCreativeMode?0:20; - GL11.glPushMatrix(); + + float overlayScale = 2F; // TODO config option + float blockScale = overlayScale / 2; + float overlayOpacity = 1F; // TODO config option + MovingObjectPosition rayTrace = minecraft.objectMouseOver; + ItemStack currentBlock = null; + + if ((player.worldObj != null) && (rayTrace != null)) { + currentBlock = TransmutationHelper.getNextBlock(player.worldObj.getBlockId(rayTrace.blockX, rayTrace.blockY, rayTrace.blockZ), player.worldObj.getBlockMetadata(rayTrace.blockX, rayTrace.blockY, rayTrace.blockZ), true); + } + + GL11.glPushMatrix(); ScaledResolution sr = new ScaledResolution(minecraft.gameSettings, minecraft.displayWidth, minecraft.displayHeight); GL11.glClear(256); GL11.glMatrixMode(GL11.GL_PROJECTION); @@ -72,21 +86,20 @@ public class RenderTickHandler implements ITickHandler { GL11.glMatrixMode(GL11.GL_MODELVIEW); GL11.glLoadIdentity(); GL11.glTranslatef(0.0F, 0.0F, -2000.0F); - int k = sr.getScaledWidth(); - int l = sr.getScaledHeight(); - + GL11.glPushMatrix(); RenderHelper.enableGUIStandardItemLighting(); GL11.glDisable(GL11.GL_LIGHTING); GL11.glEnable(GL12.GL_RESCALE_NORMAL); GL11.glEnable(GL11.GL_COLOR_MATERIAL); GL11.glEnable(GL11.GL_LIGHTING); - RenderItem itemRenderer = new RenderItem(); - RenderUtils.renderItemIntoGUI(minecraft.fontRenderer, minecraft.renderEngine, stack, 0, 0); - //itemRenderer.renderItemIntoGUI(minecraft.fontRenderer, minecraft.renderEngine, stack, 0, 0); + RenderItem renderItem = new RenderItem(); + RenderUtils.renderItemIntoGUI(minecraft.fontRenderer, minecraft.renderEngine, stack, (int) (sr.getScaledWidth() - (16 * overlayScale)), (int) (sr.getScaledHeight() - (16 * overlayScale)), overlayOpacity / 2, overlayScale); + if ((currentBlock != null) && (currentBlock.getItem() instanceof ItemBlock)) { + RenderUtils.renderRotatingBlockIntoGUI(minecraft.fontRenderer, minecraft.renderEngine, currentBlock, (int) (sr.getScaledWidth() - (16 * overlayScale) / 2 - 8), (int) (sr.getScaledHeight() - (16 * overlayScale) / 2 - 8), -90, blockScale); + } GL11.glDisable(GL11.GL_LIGHTING); GL11.glPopMatrix(); - GL11.glPopMatrix(); } diff --git a/ee3_common/ee3/common/lib/ConfigurationSettings.java b/ee3_common/ee3/common/lib/ConfigurationSettings.java index f24f917b..aee106eb 100644 --- a/ee3_common/ee3/common/lib/ConfigurationSettings.java +++ b/ee3_common/ee3/common/lib/ConfigurationSettings.java @@ -13,36 +13,48 @@ import ee3.common.item.ModItems; */ public class ConfigurationSettings { - /* + /* * General configuration settings */ // Whether or not automatic block id resolution for EE3 is turned on or off public static boolean AUTO_RESOLVE_BLOCK_IDS; + public static final String ENABLE_VERSION_CHECK_CONFIGNAME = "enable_version_check"; public static final boolean AUTO_RESOLVE_BLOCK_IDS_DEFAULT = false; - + // Whether or not EE3 sounds are enabled public static boolean ENABLE_SOUNDS; + public static final String ENABLE_SOUNDS_CONFIGNAME = "enable_sounds"; public static final boolean ENABLE_SOUNDS_DEFAULT = true; - - // Whether or not EE3 particle fx are enabled - public static boolean ENABLE_PARTICLE_FX; - public static final boolean ENABLE_PARTICLE_FX_DEFAULT = true; - + // Whether or not EE3 will do a version check when loaded public static boolean ENABLE_VERSION_CHECK; + public static final String AUTO_RESOLVE_BLOCK_IDS_CONFIGNAME = "auto_resolve_block_ids"; public static final boolean ENABLE_VERSION_CHECK_DEFAULT = true; - - /* + + /* + * Render config settings + */ + // Whether or not EE3 particle fx are enabled + public static boolean ENABLE_PARTICLE_FX; + public static final String ENABLE_PARTICLE_FX_CONFIGNAME = "enable_particle_fx"; + public static final boolean ENABLE_PARTICLE_FX_DEFAULT = true; + + // Whether or not the Philosopher Stone overlay is enabled + public static boolean ENABLE_OVERLAY_PHILOSOPHER_STONE; + public static final String ENABLE_OVERLAY_PHILOSOPHER_STONE_CONFIGNAME = "enable_philosopher_stone_overlay"; + public static final boolean ENABLE_OVERLAY_PHILOSOPHER_STONE_DEFAULT = true; + + /* * Minium stone config settings */ // The durability cost for each transmute with the Minium Stone public static int MINIUM_STONE_TRANSMUTE_COST; public static final String MINIUM_STONE_TRANSMUTE_COST_CONFIGNAME = Strings.MINIUM_STONE_NAME + ".transmuteCost"; public static final int MINIUM_STONE_TRANSMUTE_COST_DEFAULT = 1; - + // The maximum durability for the Minium Stone public static int MINIUM_STONE_MAX_DURABILITY; public static final String MINIUM_STONE_MAX_DURABILITY_CONFIGNAME = Strings.MINIUM_STONE_NAME + ".maxDurability"; public static final int MINIUM_STONE_MAX_DURABILITY_DEFAULT = 1521; - + } diff --git a/ee3_common/ee3/common/lib/Localizations.java b/ee3_common/ee3/common/lib/Localizations.java index d0b8cf01..f242042f 100644 --- a/ee3_common/ee3/common/lib/Localizations.java +++ b/ee3_common/ee3/common/lib/Localizations.java @@ -31,7 +31,8 @@ public class Localizations { LANG_RESOURCE_LOCATION + "ru_RU.xml", LANG_RESOURCE_LOCATION + "sr_RS.xml", LANG_RESOURCE_LOCATION + "sv_SE.xml", - LANG_RESOURCE_LOCATION + "zh_CN.xml" + LANG_RESOURCE_LOCATION + "zh_CN.xml", + LANG_RESOURCE_LOCATION + "zh_TW.xml" }; } diff --git a/ee3_common/ee3/common/lib/Reference.java b/ee3_common/ee3/common/lib/Reference.java index e5ef090e..a6e5c761 100644 --- a/ee3_common/ee3/common/lib/Reference.java +++ b/ee3_common/ee3/common/lib/Reference.java @@ -24,12 +24,6 @@ public class Reference { public static final String SERVER_PROXY_CLASS = "ee3.common.core.CommonProxy"; public static final String CLIENT_PROXY_CLASS = "ee3.client.core.ClientProxy"; - /* Configuration related constants */ - public static final String ENABLE_VERSION_CHECK = "enable_version_check"; - public static final String ENABLE_SOUNDS = "enable_sounds"; - public static final String ENABLE_PARTICLE_FX = "enable_particle_fx"; - public static final String AUTO_RESOLVE_BLOCK_IDS = "auto_resolve_block_ids"; - /* KeyBinding related constants */ public static final String KEYBINDING_EXTRA = "key.extra"; public static final int KEYBINDING_EXTRA_DEFAULT = 46; diff --git a/ee3_common/ee3/common/lib/Strings.java b/ee3_common/ee3/common/lib/Strings.java index 8e31eda1..9eb60933 100644 --- a/ee3_common/ee3/common/lib/Strings.java +++ b/ee3_common/ee3/common/lib/Strings.java @@ -25,5 +25,8 @@ public class Strings { public static final String MINIUM_STONE_NAME = "miniumStone"; public static final String PHILOSOPHER_STONE_NAME = "philStone"; public static final String ALCHEMY_DUST_NAME = "alchemyDust"; + + /* TileEntity name constants */ + public static final String TE_CALCINATOR_NAME = "tileCalcinator"; } diff --git a/resources/ee3/lang/es_ES.xml b/resources/ee3/lang/es_ES.xml index 8e897b41..a46bc07b 100644 --- a/resources/ee3/lang/es_ES.xml +++ b/resources/ee3/lang/es_ES.xml @@ -23,7 +23,7 @@ Equivalent Exchange 3 Inicializando chequeo de versión contra el archivo autoritario remoto, ubicado en El chequeo de versiones no se completó exitosamente (el chequeo de versiones no se inicializó correctamente) - Actualmente estás usando la versión más actualizada para tu versión de Minecraft + Actualmente estás usando la versión de Equivalent Exchange 3 (@REMOTE_MOD_VERSION) más actualizada para @MINECRAFT_VERSION@ Actualmente estás usando una versión desactualizada; considera actualizarla aquí - @MOD_UPDATE_LOCATION@ Error al conectar con el archivo autoritario remoto (¿Comprueba tu conexión a internet?) Chequeo remoto de versiones desactivado, omitiendo diff --git a/resources/ee3/lang/pt_BR.xml b/resources/ee3/lang/pt_BR.xml index 067c4fa8..7e415f73 100644 --- a/resources/ee3/lang/pt_BR.xml +++ b/resources/ee3/lang/pt_BR.xml @@ -1,4 +1,4 @@ -? + Brazilian Portuguese(pt-BR) Localization File @@ -11,20 +11,20 @@ Pedra de Minium Pedra Filosofal Cinzas - P de Minium - P Verdejante - P ndigo - P Amarantino - P Iridescente - gua Vermelha (Parada) - gua Vermelha (Corrente) + Pó de Minium + Pó Verdejante + Pó Índigo + Pó Amarantino + Pó Iridescente + Água Vermelha (Parada) + Água Vermelha (Corrente) Calcinador Calcinador Equivalent Exchange 3 - Inicializando checagem de verso remota contra a verso remota mestre, localizada em: - Checagem de verso remota no conseguiu ser inicializada adequadamente - Usando a verso mais recente(@REMOTE_MOD_VERSION@) de Equivalent Exchange 3 para @MINECRAFT_VERSION@ - Uma nova verso de @MOD_NAME@ existe (@REMOTE_MOD_VERSION@) para @MINECRAFT_VERSION@. Consiga-a aqui: @MOD_UPDATE_LOCATION@ - Erro checando a verso remota mestre + Inicializando checagem de versão remota contra a versão remota mestre, localizada em: + Checagem de versão remota não conseguiu ser inicializada adequadamente + Usando a versão mais recente(@REMOTE_MOD_VERSION@) de Equivalent Exchange 3 para @MINECRAFT_VERSION@ + Uma nova versão de @MOD_NAME@ existe (@REMOTE_MOD_VERSION@) para @MINECRAFT_VERSION@. Consiga-a aqui: @MOD_UPDATE_LOCATION@ + Erro checando a versão remota mestre Checagem remota desligada, pulando \ No newline at end of file diff --git a/resources/ee3/lang/sr_RS.xml b/resources/ee3/lang/sr_RS.xml index 70e36c08..eb09c4cb 100644 --- a/resources/ee3/lang/sr_RS.xml +++ b/resources/ee3/lang/sr_RS.xml @@ -10,15 +10,21 @@ Инерт Камен Миниум Камен Философ'сКи Камен + Пепео + Minium Прашина + Зелена Прашина + Плава Пашина + Неувенљива Прашина + Преливач боја Прашина Црвена Вода (Извор) Црвена Вода (Текућа) Цалцинатор Цалцинатор Иста Размена 3 - Покретање верзије провера према Приступу удаљеним фајловима верзије ауторитета, који се налази у + Покретање верзије провера према приступу удаљеним фајловима верзије ауторитета, који се налази у Провера Верзије није успешно завршена (верзија провере није покренута правилно) - Ви тренутно користите најновију верзију за мајнкрафт - Ви тренутно користите застарелу верзију; Размотрити надоградљу на - @MOD_UPDATE_LOCATION@ + Ви тренутно користите најновију верзинју (@REMOTE_MOD_VERSION@) од Исте Замене 3 за @MINECRAFT_VERSION@ + Нова @MOD_NAME@ верзија постоји (@REMOTE_MOD_VERSION@) за @MINECRAFT_VERSION@. Узмите овде: @MOD_UPDATE_LOCATION@ Грешка у повезивању удаљене верзије ауторетета податка (Погледајте вашу конекцију?) Провера верзије је искључено, Прескочено \ No newline at end of file diff --git a/resources/ee3/lang/zh_CN.xml b/resources/ee3/lang/zh_CN.xml index 078dd51c..88925d91 100644 --- a/resources/ee3/lang/zh_CN.xml +++ b/resources/ee3/lang/zh_CN.xml @@ -1,13 +1,30 @@ - - - - Chinese (Simplified) Localization File - 铅丹碎片 - 惰性石 - 铅丹石 - 圣人石 - 红水 (静止) - 红水 (流动) - 煅烧炉 - 煅烧炉 + + + + Chinese (Simplified)(zh_CN) Localization File + Extra + 松开 + 切换 + + 铅丹碎片 + 惰性石 + 铅丹石 + 圣人石 + 红水 (静止) + 红水 (流动) + 煅烧炉 + 煅烧炉 + + 铅丹灰 + 玉灰 + 蔚蓝灰 + 苋属灰 + 虹彩灰 + Equivalent Exchange 3 + Initializing version check against the remote version authority file, located at + The version check did not complete successfully (version check did not initialize properly) + 你现在在用@MINECRAFT_VERSION@的Equivalent Exchange 3的最新的现代化 (@REMOTE_MOD_VERSION@)。 + A new @MOD_NAME@ version exists (@REMOTE_MOD_VERSION@) for @MINECRAFT_VERSION@. 请更新: @MOD_UPDATE_LOCATION@ + Error connecting to the remote version authority file (check your Internet connection?) + Remote version check disabled, skipping \ No newline at end of file diff --git a/resources/ee3/lang/zh_TW.xml b/resources/ee3/lang/zh_TW.xml new file mode 100644 index 00000000..e2a18c46 --- /dev/null +++ b/resources/ee3/lang/zh_TW.xml @@ -0,0 +1,30 @@ + + + + Chinese (Traditional)(zh_TW) Localization File + Extra + 鬆開 + 切換 + + 鉛丹碎片 + 惰性石 + 鉛丹石 + 聖人石 + 紅水 (靜止) + 紅水 (流動) + 煅燒爐 + 煅燒爐 + + 鉛丹灰 + 玉灰 + 蔚藍灰 + 莧屬灰 + 虹彩灰 + Equivalent Exchange 3 + Initializing version check against the remote version authority file, located at + The version check did not complete successfully (version check did not initialize properly) + 你現在在用@MINECRAFT_VERSION@的Equivalent Exchange 3的最新的現代化 (@REMOTE_MOD_VERSION@)。 + A new @MOD_NAME@ version exists (@REMOTE_MOD_VERSION@) for @MINECRAFT_VERSION@. 請更新: http://goo.gl/sNcGl + Error connecting to the remote version authority file (check your Internet connection?) + Remote version check disabled, skipping + \ No newline at end of file