Fix up custom slot render, got scroll bar working

This commit is contained in:
Aidan C. Brady 2013-10-27 11:44:19 -04:00
parent def9764b0d
commit 4272c4cb6d
8 changed files with 78 additions and 27 deletions

View file

@ -53,12 +53,6 @@ public class GuiItemStackFilter extends GuiMekanism
filter.color = TransporterUtils.colors.get(0);
}
@Override
public boolean doesGuiPauseGame()
{
return false;
}
@Override
public void initGui()
{
@ -110,7 +104,7 @@ public class GuiItemStackFilter extends GuiMekanism
{
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_LIGHTING);
itemRenderer.renderItemIntoGUI(fontRenderer, mc.getTextureManager(), filter.itemType, 12, 19);
itemRenderer.renderItemAndEffectIntoGUI(fontRenderer, mc.getTextureManager(), filter.itemType, 12, 19);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}

View file

@ -26,6 +26,12 @@ public class GuiLogisticalSorter extends GuiMekanism
{
public TileEntityLogisticalSorter tileEntity;
public boolean isDragging = false;
public int dragOffset = 0;
public float scroll;
public GuiLogisticalSorter(EntityPlayer player, TileEntityLogisticalSorter tentity)
{
super(new ContainerNull(player, tentity));
@ -33,10 +39,55 @@ public class GuiLogisticalSorter extends GuiMekanism
guiElements.add(new GuiRedstoneControl(this, tileEntity, MekanismUtils.getResource(ResourceType.GUI, "GuiLogisticalSorter.png")));
}
@Override
public boolean doesGuiPauseGame()
public int getScroll()
{
return false;
return Math.max(Math.min((int)(scroll*125), 125), 0);
}
public int getFilterIndex()
{
return 0;
}
@Override
public void mouseClicked(int mouseX, int mouseY, int button)
{
super.mouseClicked(mouseX, mouseY, button);
int xAxis = (mouseX - (width - xSize) / 2);
int yAxis = (mouseY - (height - ySize) / 2);
if(xAxis >= 154 && xAxis <= 166 && yAxis >= getScroll()+18 && yAxis <= getScroll()+18+15)
{
dragOffset = yAxis - (getScroll()+18);
isDragging = true;
}
}
@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 = (float)(yAxis-18-dragOffset)/123F;
}
}
@Override
protected void mouseMovedOrUp(int x, int y, int type)
{
super.mouseMovedOrUp(x, y, type);
if(type == 0 && isDragging)
{
dragOffset = 0;
isDragging = false;
}
}
@Override
@ -76,10 +127,10 @@ public class GuiLogisticalSorter extends GuiMekanism
int yAxis = (mouseY - (height - ySize) / 2);
fontRenderer.drawString("Logistical Sorter", 43, 6, 0x404040);
fontRenderer.drawString("Filters:", 11, 17, 0x00CD00);
fontRenderer.drawString("T: " + tileEntity.filters.size(), 11, 26, 0x00CD00);
fontRenderer.drawString("IS: " + getItemStackFilters().size(), 11, 35, 0x00CD00);
fontRenderer.drawString("OD: " + getOreDictFilters().size(), 11, 44, 0x00CD00);
fontRenderer.drawString("Filters:", 11, 19, 0x00CD00);
fontRenderer.drawString("T: " + tileEntity.filters.size(), 11, 28, 0x00CD00);
fontRenderer.drawString("IS: " + getItemStackFilters().size(), 11, 37, 0x00CD00);
fontRenderer.drawString("OD: " + getOreDictFilters().size(), 11, 46, 0x00CD00);
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
}
@ -94,6 +145,17 @@ public class GuiLogisticalSorter extends GuiMekanism
int guiWidth = (width - xSize) / 2;
int guiHeight = (height - ySize) / 2;
drawTexturedModalRect(guiWidth, guiHeight, 0, 0, xSize, ySize);
drawTexturedModalRect(guiWidth + 154, guiHeight + 18 + getScroll(), 232, 0, 12, 15);
for(int i = 0; i < 4; i++)
{
if(tileEntity.filters.get(getFilterIndex()+i) != null)
{
TransporterFilter filter = tileEntity.filters.get(getFilterIndex()+i);
int yStart = i*29 + 18;
}
}
}
public ArrayList getItemStackFilters()

View file

@ -67,12 +67,6 @@ public class GuiOreDictFilter extends GuiMekanism
filter.color = TransporterUtils.colors.get(0);
}
@Override
public boolean doesGuiPauseGame()
{
return false;
}
@Override
public void initGui()
{
@ -146,7 +140,7 @@ public class GuiOreDictFilter extends GuiMekanism
{
GL11.glPushMatrix();
GL11.glEnable(GL11.GL_LIGHTING);
itemRenderer.renderItemIntoGUI(fontRenderer, mc.getTextureManager(), renderStack, 12, 19);
itemRenderer.renderItemAndEffectIntoGUI(fontRenderer, mc.getTextureManager(), renderStack, 12, 19);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glPopMatrix();
}

View file

@ -28,7 +28,6 @@ public class MachineRenderingHandler implements ISimpleBlockRenderingHandler
public ModelTheoreticalElementizer theoreticalElementizer = new ModelTheoreticalElementizer();
public ModelElectricPump electricPump = new ModelElectricPump();
public ModelMetallurgicInfuser metallurgicInfuser = new ModelMetallurgicInfuser();
public ModelChest electricChest = new ModelChest();
public ModelChargepad chargepad = new ModelChargepad();
@Override

View file

@ -19,6 +19,11 @@ public class HashList<T> implements Iterable<T>
public T get(int index)
{
if(index > size()-1)
{
return null;
}
return list.get(index);
}

View file

@ -9,14 +9,11 @@ import net.minecraft.nbt.NBTTagCompound;
import com.google.common.io.ByteArrayDataInput;
public class TransporterFilter
public abstract class TransporterFilter
{
public EnumColor color;
public boolean canFilter(ItemStack itemStack)
{
return false;
}
public abstract boolean canFilter(ItemStack itemStack);
public void write(NBTTagCompound nbtTags)
{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB