add right click decrement functionality to teleporter digits
This commit is contained in:
parent
1523b402b3
commit
bb12d91f50
2 changed files with 103 additions and 89 deletions
|
@ -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
|
||||
{
|
||||
|
@ -96,38 +94,34 @@ public class GuiPortableTeleporter extends GuiScreen
|
|||
int xAxis = (mouseX-(width-xSize)/2);
|
||||
int yAxis = (mouseY-(height-ySize)/2);
|
||||
|
||||
if(xAxis > 23 && xAxis < 37 && yAxis > 44 && yAxis < 58)
|
||||
{
|
||||
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");
|
||||
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);
|
||||
}
|
||||
else if(xAxis > 62 && xAxis < 76 && yAxis > 44 && yAxis < 58)
|
||||
|
||||
private void handleButtonClick(int xAxis, int yAxis, int mouseButton, int clickedButtonIndex, int xmin, int xmax, int ymin, int ymax)
|
||||
{
|
||||
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)
|
||||
if(xAxis > xmin && xAxis < xmax && yAxis > ymin && yAxis < ymax)
|
||||
{
|
||||
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)
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
@ -59,44 +57,68 @@ public class GuiTeleporter extends GuiMekanism
|
|||
int xAxis = (x-(width-xSize)/2);
|
||||
int yAxis = (y-(height-ySize)/2);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
ArrayList data = new ArrayList();
|
||||
|
||||
if(xAxis > 23 && xAxis < 37 && yAxis > 44 && yAxis < 58)
|
||||
{
|
||||
data.add(0);
|
||||
data.add(getIncrementedNumber(tileEntity.code.digitOne));
|
||||
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);
|
||||
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)
|
||||
{
|
||||
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");
|
||||
}
|
||||
else if(xAxis > 140 && xAxis < 154 && yAxis > 44 && yAxis < 58)
|
||||
if(index == 0)
|
||||
{
|
||||
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.digitOne = number;
|
||||
}
|
||||
if(index == 1)
|
||||
{
|
||||
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
|
||||
|
@ -127,18 +149,16 @@ public class GuiTeleporter extends GuiMekanism
|
|||
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)
|
||||
|
|
Loading…
Reference in a new issue