add right click decrement functionality to teleporter digits

This commit is contained in:
Porter Westling 2014-09-23 12:03:43 -07:00
parent 1523b402b3
commit bb12d91f50
2 changed files with 103 additions and 89 deletions

View file

@ -1,5 +1,7 @@
package mekanism.client.gui;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mekanism.client.sound.SoundHandler;
import mekanism.common.Mekanism;
import mekanism.common.item.ItemPortableTeleporter;
@ -11,12 +13,8 @@ import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class GuiPortableTeleporter extends GuiScreen
{
@ -49,23 +47,23 @@ public class GuiPortableTeleporter extends GuiScreen
mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiPortableTeleporter.png"));
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
int guiWidth = (width - xSize) / 2;
int guiHeight = (height - ySize) / 2;
int guiWidth = (width-xSize)/2;
int guiHeight = (height-ySize)/2;
drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize);
int displayInt;
displayInt = getYAxisForNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 0));
drawTexturedModalRect(guiWidth + 23, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+23, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 1));
drawTexturedModalRect(guiWidth + 62, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+62, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 2));
drawTexturedModalRect(guiWidth + 101, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+101, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 3));
drawTexturedModalRect(guiWidth + 140, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+140, guiHeight+44, 176, displayInt, 13, 13);
ItemPortableTeleporter item = (ItemPortableTeleporter)itemStack.getItem();
@ -93,41 +91,37 @@ public class GuiPortableTeleporter extends GuiScreen
{
super.mouseClicked(mouseX, mouseY, button);
int xAxis = (mouseX - (width - xSize) / 2);
int yAxis = (mouseY - (height - ySize) / 2);
int xAxis = (mouseX-(width-xSize)/2);
int yAxis = (mouseY-(height-ySize)/2);
if(xAxis > 23 && xAxis < 37 && yAxis > 44 && yAxis < 58)
handleButtonClick(xAxis, yAxis, button, 0, 23, 37, 44, 58);
handleButtonClick(xAxis, yAxis, button, 1, 62, 76, 44, 58);
handleButtonClick(xAxis, yAxis, button, 2, 101, 115, 44, 58);
handleButtonClick(xAxis, yAxis, button, 3, 140, 154, 44, 58);
}
private void handleButtonClick(int xAxis, int yAxis, int mouseButton, int clickedButtonIndex, int xmin, int xmax, int ymin, int ymax)
{
if(xAxis > xmin && xAxis < xmax && yAxis > ymin && yAxis < ymax)
{
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(0, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 0))));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 0, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 0)));
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 62 && xAxis < 76 && yAxis > 44 && yAxis < 58)
{
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(1, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 1))));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 1, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 1)));
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 101 && xAxis < 115 && yAxis > 44 && yAxis < 58)
{
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(2, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 2))));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 2, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 2)));
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 140 && xAxis < 154 && yAxis > 44 && yAxis < 58)
{
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(3, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 3))));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, 3, getIncrementedNumber(((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, 3)));
int currentDigit = ((ItemPortableTeleporter)itemStack.getItem()).getDigit(itemStack, clickedButtonIndex);
int updatedDigit = getUpdatedNumber(currentDigit, mouseButton);
Mekanism.packetHandler.sendToServer(new DigitUpdateMessage(clickedButtonIndex, updatedDigit));
((ItemPortableTeleporter)itemStack.getItem()).setDigit(itemStack, clickedButtonIndex, updatedDigit);
SoundHandler.playSound("gui.button.press");
}
}
public int getIncrementedNumber(int i)
public int getUpdatedNumber(int i, int mouseButton)
{
if(i < 9) i++;
else if(i == 9) i=0;
return i;
if(mouseButton == 1) //right click
{
return (i-1+10)%10; //add 10 to ensure postive result
}
else
{
return (i+1)%10;
}
}
public int getYAxisForNumber(int i)

View file

@ -2,6 +2,8 @@ package mekanism.client.gui;
import java.util.ArrayList;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import mekanism.api.Coord4D;
import mekanism.client.gui.GuiSlot.SlotOverlay;
import mekanism.client.gui.GuiSlot.SlotType;
@ -13,12 +15,8 @@ import mekanism.common.tile.TileEntityTeleporter;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
import net.minecraft.entity.player.InventoryPlayer;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.CLIENT)
public class GuiTeleporter extends GuiMekanism
{
@ -36,11 +34,11 @@ public class GuiTeleporter extends GuiMekanism
@Override
protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY)
{
int xAxis = (mouseX - (width - xSize) / 2);
int yAxis = (mouseY - (height - ySize) / 2);
int xAxis = (mouseX-(width-xSize)/2);
int yAxis = (mouseY-(height-ySize)/2);
fontRendererObj.drawString(tileEntity.getInventoryName(), 45, 6, 0x404040);
fontRendererObj.drawString(MekanismUtils.localize("container.inventory"), 8, (ySize - 96) + 2, 0x404040);
fontRendererObj.drawString(MekanismUtils.localize("container.inventory"), 8, (ySize-96)+2, 0x404040);
fontRendererObj.drawString(tileEntity.getStatusDisplay(), 66, 19, 0x00CD00);
if(xAxis >= 165 && xAxis <= 169 && yAxis >= 17 && yAxis <= 69)
@ -56,47 +54,71 @@ public class GuiTeleporter extends GuiMekanism
{
super.mouseClicked(x, y, button);
int xAxis = (x - (width - xSize) / 2);
int yAxis = (y - (height - ySize) / 2);
int xAxis = (x-(width-xSize)/2);
int yAxis = (y-(height-ySize)/2);
ArrayList data = new ArrayList();
handleButtonClick(xAxis, yAxis, button, 23, 37, 44, 58, 0);
handleButtonClick(xAxis, yAxis, button, 62, 76, 44, 58, 1);
handleButtonClick(xAxis, yAxis, button, 101, 115, 44, 58, 2);
handleButtonClick(xAxis, yAxis, button, 140, 154, 44, 58, 3);
}
if(xAxis > 23 && xAxis < 37 && yAxis > 44 && yAxis < 58)
private void handleButtonClick(int xAxis, int yAxis, int mouseButton, int xmin, int xmax, int ymin, int ymax, int buttonIndex)
{
if(xAxis > xmin && xAxis < xmax && yAxis > ymin && yAxis < ymax)
{
data.add(0);
data.add(getIncrementedNumber(tileEntity.code.digitOne));
ArrayList data = new ArrayList();
int incrementedNumber = getUpdatedNumber(getButtonValue(buttonIndex), mouseButton);
data.add(buttonIndex);
data.add(incrementedNumber);
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
tileEntity.code.digitOne = getIncrementedNumber(tileEntity.code.digitOne);
SoundHandler.playSound("gui.button.press");
setButton(buttonIndex, incrementedNumber);
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 62 && xAxis < 76 && yAxis > 44 && yAxis < 58)
{
data.add(1);
data.add(getIncrementedNumber(tileEntity.code.digitTwo));
}
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
tileEntity.code.digitTwo = getIncrementedNumber(tileEntity.code.digitTwo);
SoundHandler.playSound("gui.button.press");
}
else if(xAxis > 101 && xAxis < 115 && yAxis > 44 && yAxis < 58)
public void setButton(int index, int number)
{
if(index == 0)
{
data.add(2);
data.add(getIncrementedNumber(tileEntity.code.digitThree));
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
tileEntity.code.digitThree = getIncrementedNumber(tileEntity.code.digitThree);
SoundHandler.playSound("gui.button.press");
tileEntity.code.digitOne = number;
}
else if(xAxis > 140 && xAxis < 154 && yAxis > 44 && yAxis < 58)
if(index == 1)
{
data.add(3);
data.add(getIncrementedNumber(tileEntity.code.digitFour));
Mekanism.packetHandler.sendToServer(new TileEntityMessage(Coord4D.get(tileEntity), data));
tileEntity.code.digitFour = getIncrementedNumber(tileEntity.code.digitFour);
SoundHandler.playSound("gui.button.press");
tileEntity.code.digitTwo = number;
}
if(index == 2)
{
tileEntity.code.digitThree = number;
}
if(index == 3)
{
tileEntity.code.digitFour = number;
}
}
public int getButtonValue(int index)
{
if(index == 0)
{
return tileEntity.code.digitOne;
}
if(index == 1)
{
return tileEntity.code.digitTwo;
}
if(index == 2)
{
return tileEntity.code.digitThree;
}
if(index == 3)
{
return tileEntity.code.digitFour;
}
return 0;//should never happen
}
@Override
@ -104,41 +126,39 @@ public class GuiTeleporter extends GuiMekanism
{
mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiTeleporter.png"));
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
int guiWidth = (width - xSize) / 2;
int guiHeight = (height - ySize) / 2;
int guiWidth = (width-xSize)/2;
int guiHeight = (height-ySize)/2;
drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize);
int displayInt;
displayInt = tileEntity.getScaledEnergyLevel(52);
drawTexturedModalRect(guiWidth + 165, guiHeight + 17 + 52 - displayInt, 176 + 13, 52 - displayInt, 4, displayInt);
drawTexturedModalRect(guiWidth+165, guiHeight+17+52-displayInt, 176+13, 52-displayInt, 4, displayInt);
displayInt = getYAxisForNumber(tileEntity.code.digitOne);
drawTexturedModalRect(guiWidth + 23, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+23, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(tileEntity.code.digitTwo);
drawTexturedModalRect(guiWidth + 62, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+62, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(tileEntity.code.digitThree);
drawTexturedModalRect(guiWidth + 101, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+101, guiHeight+44, 176, displayInt, 13, 13);
displayInt = getYAxisForNumber(tileEntity.code.digitFour);
drawTexturedModalRect(guiWidth + 140, guiHeight + 44, 176, displayInt, 13, 13);
drawTexturedModalRect(guiWidth+140, guiHeight+44, 176, displayInt, 13, 13);
super.drawGuiContainerBackgroundLayer(partialTick, mouseX, mouseY);
}
public int getIncrementedNumber(int i)
public int getUpdatedNumber(int i, int mouseButton)
{
if(i < 9)
if(mouseButton == 1) //right click
{
i++;
return (i-1+10)%10; //add 10 to ensure postive result
}
else if(i == 9)
else
{
i = 0;
return (i+1)%10;
}
return i;
}
public int getYAxisForNumber(int i)