package vazkii.minetunes.gui;
import java.io.IOException;
import net.minecraft.client.resources.I18n;
import vazkii.minetunes.config.MTConfig;
// Stolen from ReCubed
// FOR SHAME!
// Oh wait I made that mod
public class GuiMoveHUD extends GuiMineTunes {
int originalPosX, originalPosY, originalRelativePos;
public GuiMoveHUD() {
originalPosX = MTConfig.hudPosX;
originalPosY = MTConfig.hudPosY;
originalRelativePos = MTConfig.hudRelativeTo;
}
@Override
public void drawScreen(int par1, int par2, float par3) {
super.drawScreen(par1, par2, par3);
int mx = par1;
int my = par2;
int quadrant = getQuadrant(width, height, mx, my);
String clickToSet = I18n.format("minetunes.gui.clickToSet");
String escapeToReset = I18n.format("minetunes.gui.escapeToReset");
int sWidth = Math.max(fontRendererObj.getStringWidth(clickToSet), fontRendererObj.getStringWidth(escapeToReset));
drawBox(width / 2 - sWidth / 2 - 4, 16, sWidth + 8, 29);
drawCenteredString(fontRendererObj, clickToSet, width / 2, 20, 0xFFFFFF);
drawCenteredString(fontRendererObj, escapeToReset, width / 2, 31, 0xFFFFFF);
switch(quadrant) {
case 0 : {
mx = width - mx;
break;
}
case 1 : break;
case 2 : {
my = height - my;
break;
}
case 3 : {
mx = width - mx;
my = height - my;
break;
}
}
fontRendererObj.drawStringWithShadow("W", 0, 0, 0xFFFFFF);
fontRendererObj.drawStringWithShadow("A", 0, height - 9, 0xFFFFFF);
fontRendererObj.drawStringWithShadow("S", width - 6, height - 9, 0xFFFFFF);
fontRendererObj.drawStringWithShadow("D", width - 6, 0, 0xFFFFFF);
MTConfig.hudPosX = mx;
MTConfig.hudPosY = my;
MTConfig.hudRelativeTo = quadrant;
}
@Override
protected void mouseClicked(int par1, int par2, int par3) throws IOException {
if(par3 == 0)
saveAndExit();
super.mouseClicked(par1, par2, par3);
}
@Override
protected void keyTyped(char par1, int par2) {
if(par2 == 1) {
MTConfig.hudPosX = originalPosX;
MTConfig.hudPosY = originalPosY;
MTConfig.hudRelativeTo = originalRelativePos;
saveAndExit();
}
switch(par1) {
case 'w' : {
MTConfig.hudPosX = 0;
MTConfig.hudPosY = 0;
MTConfig.hudRelativeTo = 1;
saveAndExit();
return;
}
case 'a' : {
MTConfig.hudPosX = 0;
MTConfig.hudPosY = 0;
MTConfig.hudRelativeTo = 2;
saveAndExit();
return;
}
case 's' : {
MTConfig.hudPosX = 0;
MTConfig.hudPosY = 0;
MTConfig.hudRelativeTo = 3;
saveAndExit();
return;
}
case 'd' : {
MTConfig.hudPosX = 0;
MTConfig.hudPosY = 0;
MTConfig.hudRelativeTo = 0;
saveAndExit();
return;
}
}
}
private void saveAndExit() {
MTConfig.findCompoundAndWrite();
mc.displayGuiScreen(new GuiPlaylistManager());
}
private int getQuadrant(int width, int height, int mx, int my) {
boolean xpasses = mx >= width / 2;
boolean ypasses = my >= height / 2;
if(xpasses) {
if(ypasses)
return 3;
return 0;
}
if(ypasses)
return 2;
return 1;
}
}