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