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
|
@ -197,8 +197,14 @@ public class GuiDigitalMinerConfig extends GuiMekanism
|
|||
|
||||
if(xAxis >= 154 && xAxis <= 166 && yAxis >= getScroll()+18 && yAxis <= getScroll()+18+15)
|
||||
{
|
||||
dragOffset = yAxis - (getScroll()+18);
|
||||
isDragging = true;
|
||||
if(tileEntity.filters.size()>4)
|
||||
{
|
||||
dragOffset = yAxis - (getScroll()+18);
|
||||
isDragging = true;
|
||||
}
|
||||
else {
|
||||
scroll = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 4; i++)
|
||||
|
|
|
@ -186,8 +186,14 @@ public class GuiLogisticalSorter extends GuiMekanism
|
|||
{
|
||||
if(xAxis >= 154 && xAxis <= 166 && yAxis >= getScroll()+18 && yAxis <= getScroll()+18+15)
|
||||
{
|
||||
dragOffset = yAxis - (getScroll()+18);
|
||||
isDragging = true;
|
||||
if(tileEntity.filters.size()>4)
|
||||
{
|
||||
dragOffset = yAxis - (getScroll()+18);
|
||||
isDragging = true;
|
||||
}
|
||||
else {
|
||||
scroll = 0;
|
||||
}
|
||||
}
|
||||
|
||||
for(int i = 0; i < 4; i++)
|
||||
|
|
|
@ -29,6 +29,12 @@ public class GuiUpgradeManagement extends GuiMekanism
|
|||
|
||||
public Upgrade selectedType;
|
||||
|
||||
public boolean isDragging = false;
|
||||
|
||||
public int dragOffset = 0;
|
||||
|
||||
public float scroll;
|
||||
|
||||
public GuiUpgradeManagement(InventoryPlayer inventory, IUpgradeTile tile)
|
||||
{
|
||||
super(new ContainerUpgradeManagement(inventory, tile));
|
||||
|
@ -41,8 +47,12 @@ public class GuiUpgradeManagement extends GuiMekanism
|
|||
int xAxis = (mouseX - (width - xSize) / 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("gui.upgrades.supported") + ":", 26, 60, 0x404040);
|
||||
fontRendererObj.drawString(MekanismUtils.localize("gui.upgrades.supported") + ":", 26, 59, 0x404040);
|
||||
|
||||
if(selectedType == null)
|
||||
{
|
||||
|
@ -66,22 +76,31 @@ public class GuiUpgradeManagement extends GuiMekanism
|
|||
|
||||
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 yPos = 7 + (counter++*12);
|
||||
int yPos = 7 + (i++*12);
|
||||
int yRender = 0;
|
||||
|
||||
fontRendererObj.drawString(upgrade.getName(), xPos + 12, yPos + 2, 0x404040);
|
||||
|
||||
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);
|
||||
}
|
||||
|
@ -131,14 +150,14 @@ public class GuiUpgradeManagement extends GuiMekanism
|
|||
|
||||
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 {
|
||||
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);
|
||||
|
@ -161,7 +180,7 @@ public class GuiUpgradeManagement extends GuiMekanism
|
|||
{
|
||||
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;
|
||||
}
|
||||
|
@ -170,7 +189,7 @@ public class GuiUpgradeManagement extends GuiMekanism
|
|||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
|
@ -183,6 +202,47 @@ public class GuiUpgradeManagement extends GuiMekanism
|
|||
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
|
||||
protected void mouseClicked(int mouseX, int mouseY, int button)
|
||||
{
|
||||
|
@ -195,6 +255,18 @@ public class GuiUpgradeManagement extends GuiMekanism
|
|||
|
||||
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)
|
||||
{
|
||||
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));
|
||||
}
|
||||
|
||||
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");
|
||||
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 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;
|
||||
break;
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 5.1 KiB |
Loading…
Reference in a new issue