Gave the Upgrade Management GUI a scrollbar to allow for more than 4 upgrade types to be present in a single machine
This commit is contained in:
parent
237f2cbab5
commit
9f91e0886e
4 changed files with 102 additions and 18 deletions
|
@ -196,10 +196,16 @@ public class GuiDigitalMinerConfig extends GuiMekanism
|
||||||
int yAxis = (mouseY - (height - ySize) / 2);
|
int yAxis = (mouseY - (height - ySize) / 2);
|
||||||
|
|
||||||
if(xAxis >= 154 && xAxis <= 166 && yAxis >= getScroll()+18 && yAxis <= getScroll()+18+15)
|
if(xAxis >= 154 && xAxis <= 166 && yAxis >= getScroll()+18 && yAxis <= getScroll()+18+15)
|
||||||
|
{
|
||||||
|
if(tileEntity.filters.size()>4)
|
||||||
{
|
{
|
||||||
dragOffset = yAxis - (getScroll()+18);
|
dragOffset = yAxis - (getScroll()+18);
|
||||||
isDragging = true;
|
isDragging = true;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
scroll = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for(int i = 0; i < 4; i++)
|
for(int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -185,10 +185,16 @@ public class GuiLogisticalSorter extends GuiMekanism
|
||||||
if(button == 0)
|
if(button == 0)
|
||||||
{
|
{
|
||||||
if(xAxis >= 154 && xAxis <= 166 && yAxis >= getScroll()+18 && yAxis <= getScroll()+18+15)
|
if(xAxis >= 154 && xAxis <= 166 && yAxis >= getScroll()+18 && yAxis <= getScroll()+18+15)
|
||||||
|
{
|
||||||
|
if(tileEntity.filters.size()>4)
|
||||||
{
|
{
|
||||||
dragOffset = yAxis - (getScroll()+18);
|
dragOffset = yAxis - (getScroll()+18);
|
||||||
isDragging = true;
|
isDragging = true;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
scroll = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for(int i = 0; i < 4; i++)
|
for(int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,6 +29,12 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
|
|
||||||
public Upgrade selectedType;
|
public Upgrade selectedType;
|
||||||
|
|
||||||
|
public boolean isDragging = false;
|
||||||
|
|
||||||
|
public int dragOffset = 0;
|
||||||
|
|
||||||
|
public float scroll;
|
||||||
|
|
||||||
public GuiUpgradeManagement(InventoryPlayer inventory, IUpgradeTile tile)
|
public GuiUpgradeManagement(InventoryPlayer inventory, IUpgradeTile tile)
|
||||||
{
|
{
|
||||||
super(new ContainerUpgradeManagement(inventory, tile));
|
super(new ContainerUpgradeManagement(inventory, tile));
|
||||||
|
@ -41,8 +47,12 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
int xAxis = (mouseX - (width - xSize) / 2);
|
int xAxis = (mouseX - (width - xSize) / 2);
|
||||||
int yAxis = (mouseY - (height - ySize) / 2);
|
int yAxis = (mouseY - (height - ySize) / 2);
|
||||||
|
|
||||||
|
mc.renderEngine.bindTexture(MekanismUtils.getResource(ResourceType.GUI, "GuiUpgradeManagement.png"));
|
||||||
|
GL11.glColor4f(1, 1, 1, 1);
|
||||||
|
drawTexturedModalRect(84, 8+getScroll(), 202, 0, 4, 4);
|
||||||
|
|
||||||
fontRendererObj.drawString(MekanismUtils.localize("container.inventory"), 8, (ySize - 96) + 2, 0x404040);
|
fontRendererObj.drawString(MekanismUtils.localize("container.inventory"), 8, (ySize - 96) + 2, 0x404040);
|
||||||
fontRendererObj.drawString(MekanismUtils.localize("gui.upgrades.supported") + ":", 26, 60, 0x404040);
|
fontRendererObj.drawString(MekanismUtils.localize("gui.upgrades.supported") + ":", 26, 59, 0x404040);
|
||||||
|
|
||||||
if(selectedType == null)
|
if(selectedType == null)
|
||||||
{
|
{
|
||||||
|
@ -66,22 +76,31 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
|
|
||||||
for(Upgrade upgrade : tileEntity.getComponent().getSupportedTypes())
|
for(Upgrade upgrade : tileEntity.getComponent().getSupportedTypes())
|
||||||
{
|
{
|
||||||
renderUpgrade(upgrade, 80 + (rendered++*12), 58, 0.8F, true);
|
renderUpgrade(upgrade, 80 + (rendered++*12), 57, 0.8F, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
int counter = 0;
|
Upgrade[] upgrades = getCurrentUpgrades().toArray(new Upgrade[getCurrentUpgrades().size()]);
|
||||||
|
|
||||||
for(Upgrade upgrade : getCurrentUpgrades())
|
for(int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
|
int index = getUpgradeIndex()+i;
|
||||||
|
|
||||||
|
if(index > upgrades.length-1)
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Upgrade upgrade = upgrades[index];
|
||||||
|
|
||||||
int xPos = 25;
|
int xPos = 25;
|
||||||
int yPos = 7 + (counter++*12);
|
int yPos = 7 + (i++*12);
|
||||||
int yRender = 0;
|
int yRender = 0;
|
||||||
|
|
||||||
fontRendererObj.drawString(upgrade.getName(), xPos + 12, yPos + 2, 0x404040);
|
fontRendererObj.drawString(upgrade.getName(), xPos + 12, yPos + 2, 0x404040);
|
||||||
|
|
||||||
renderUpgrade(upgrade, xPos + 2, yPos + 2, 0.5F, true);
|
renderUpgrade(upgrade, xPos + 2, yPos + 2, 0.5F, true);
|
||||||
|
|
||||||
if(xAxis >= xPos && xAxis <= xPos+64 && yAxis >= yPos && yAxis <= yPos+12)
|
if(xAxis >= xPos && xAxis <= xPos+58 && yAxis >= yPos && yAxis <= yPos+12)
|
||||||
{
|
{
|
||||||
func_146283_a(MekanismUtils.splitLines(upgrade.getDescription()), xAxis, yAxis);
|
func_146283_a(MekanismUtils.splitLines(upgrade.getDescription()), xAxis, yAxis);
|
||||||
}
|
}
|
||||||
|
@ -131,14 +150,14 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
|
|
||||||
if(selectedType == null)
|
if(selectedType == null)
|
||||||
{
|
{
|
||||||
drawTexturedModalRect(guiWidth + 136, guiHeight + 58, 176 + 14, 24, 12, 12);
|
drawTexturedModalRect(guiWidth + 136, guiHeight + 57, 176 + 14, 24, 12, 12);
|
||||||
}
|
}
|
||||||
else if(xAxis >= 136 && xAxis <= 148 && yAxis >= 58 && yAxis <= 70)
|
else if(xAxis >= 136 && xAxis <= 148 && yAxis >= 57 && yAxis <= 69)
|
||||||
{
|
{
|
||||||
drawTexturedModalRect(guiWidth + 136, guiHeight + 58, 176 + 14, 0, 12, 12);
|
drawTexturedModalRect(guiWidth + 136, guiHeight + 57, 176 + 14, 0, 12, 12);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
drawTexturedModalRect(guiWidth + 136, guiHeight + 58, 176 + 14, 12, 12, 12);
|
drawTexturedModalRect(guiWidth + 136, guiHeight + 57, 176 + 14, 12, 12, 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
int displayInt = tileEntity.getComponent().getScaledUpgradeProgress(14);
|
int displayInt = tileEntity.getComponent().getScaledUpgradeProgress(14);
|
||||||
|
@ -161,7 +180,7 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
{
|
{
|
||||||
yRender = 166 + 24;
|
yRender = 166 + 24;
|
||||||
}
|
}
|
||||||
else if(xAxis >= xPos && xAxis <= xPos+64 && yAxis >= yPos && yAxis <= yPos+12)
|
else if(xAxis >= xPos && xAxis <= xPos+58 && yAxis >= yPos && yAxis <= yPos+12)
|
||||||
{
|
{
|
||||||
yRender = 166;
|
yRender = 166;
|
||||||
}
|
}
|
||||||
|
@ -170,7 +189,7 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
}
|
}
|
||||||
|
|
||||||
MekanismRenderer.color(upgrade.getColor(), 1.0F, 2.5F);
|
MekanismRenderer.color(upgrade.getColor(), 1.0F, 2.5F);
|
||||||
drawTexturedModalRect(guiWidth + xPos, guiHeight + yPos, 0, yRender, 64, 12);
|
drawTexturedModalRect(guiWidth + xPos, guiHeight + yPos, 0, yRender, 58, 12);
|
||||||
MekanismRenderer.resetColor();
|
MekanismRenderer.resetColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -183,6 +202,47 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
return tileEntity.getComponent().getInstalledTypes();
|
return tileEntity.getComponent().getInstalledTypes();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getScroll()
|
||||||
|
{
|
||||||
|
return Math.max(Math.min((int)(scroll*42), 42), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getUpgradeIndex()
|
||||||
|
{
|
||||||
|
if(getCurrentUpgrades().size() <= 4)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (int)((getCurrentUpgrades().size()*scroll) - ((4F/(float)getCurrentUpgrades().size()))*scroll);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void mouseClickMove(int mouseX, int mouseY, int button, long ticks)
|
||||||
|
{
|
||||||
|
super.mouseClickMove(mouseX, mouseY, button, ticks);
|
||||||
|
|
||||||
|
int xAxis = (mouseX - (width - xSize) / 2);
|
||||||
|
int yAxis = (mouseY - (height - ySize) / 2);
|
||||||
|
|
||||||
|
if(isDragging)
|
||||||
|
{
|
||||||
|
scroll = Math.min(Math.max((float)(yAxis-8-dragOffset)/42F, 0), 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void mouseMovedOrUp(int mouseX, int mouseY, int type)
|
||||||
|
{
|
||||||
|
super.mouseMovedOrUp(mouseX, mouseY, type);
|
||||||
|
|
||||||
|
if(type == 0 && isDragging)
|
||||||
|
{
|
||||||
|
dragOffset = 0;
|
||||||
|
isDragging = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void mouseClicked(int mouseX, int mouseY, int button)
|
protected void mouseClicked(int mouseX, int mouseY, int button)
|
||||||
{
|
{
|
||||||
|
@ -195,6 +255,18 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
|
|
||||||
if(button == 0)
|
if(button == 0)
|
||||||
{
|
{
|
||||||
|
if(xAxis >= 84 && xAxis <= 88 && yAxis >= getScroll()+8 && yAxis <= getScroll()+8+4)
|
||||||
|
{
|
||||||
|
if(getCurrentUpgrades().size()>4)
|
||||||
|
{
|
||||||
|
dragOffset = yAxis - (getScroll()+8);
|
||||||
|
isDragging = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
scroll = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(xAxis >= 6 && xAxis <= 20 && yAxis >= 6 && yAxis <= 20)
|
if(xAxis >= 6 && xAxis <= 20 && yAxis >= 6 && yAxis <= 20)
|
||||||
{
|
{
|
||||||
int guiId = MachineType.get(tile.getBlockType(), tile.getBlockMetadata()).guiId;
|
int guiId = MachineType.get(tile.getBlockType(), tile.getBlockMetadata()).guiId;
|
||||||
|
@ -202,7 +274,7 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), guiId));
|
Mekanism.packetHandler.sendToServer(new SimpleGuiMessage(Coord4D.get(tile), guiId));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(selectedType != null && xAxis >= 136 && xAxis <= 148 && yAxis >= 58 && yAxis <= 70)
|
if(selectedType != null && xAxis >= 136 && xAxis <= 148 && yAxis >= 57 && yAxis <= 69)
|
||||||
{
|
{
|
||||||
SoundHandler.playSound("gui.button.press");
|
SoundHandler.playSound("gui.button.press");
|
||||||
Mekanism.packetHandler.sendToServer(new RemoveUpgradeMessage(Coord4D.get(tile), selectedType.ordinal()));
|
Mekanism.packetHandler.sendToServer(new RemoveUpgradeMessage(Coord4D.get(tile), selectedType.ordinal()));
|
||||||
|
@ -216,7 +288,7 @@ public class GuiUpgradeManagement extends GuiMekanism
|
||||||
int yPos = 7 + (counter++*12);
|
int yPos = 7 + (counter++*12);
|
||||||
int yRender = 0;
|
int yRender = 0;
|
||||||
|
|
||||||
if(xAxis >= xPos && xAxis <= xPos+64 && yAxis >= yPos && yAxis <= yPos+12)
|
if(xAxis >= xPos && xAxis <= xPos+58 && yAxis >= yPos && yAxis <= yPos+12)
|
||||||
{
|
{
|
||||||
selectedType = upgrade;
|
selectedType = upgrade;
|
||||||
break;
|
break;
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 5.1 KiB |
Loading…
Reference in a new issue