Starting to work on printing the filtered items above the rejector

This commit is contained in:
Brian Ricketts 2012-12-28 03:23:55 -06:00
parent d1dfaad6dd
commit 6cd86ee3c5
3 changed files with 69 additions and 5 deletions

View file

@ -0,0 +1,50 @@
package assemblyline.client.render;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.renderer.Tessellator;
import net.minecraft.client.renderer.entity.RenderManager;
import org.lwjgl.opengl.GL11;
public class RenderHelper
{
public static void renderFloatingText(String text, float x, float y, float z)
{
RenderManager renderManager = RenderManager.instance;
FontRenderer fontRenderer = renderManager.getFontRenderer();
float scale = 0.027f;
GL11.glPushMatrix();
GL11.glTranslatef((float) x + 0.0F, (float) y + 2.3F, (float) z);
GL11.glNormal3f(0.0F, 1.0F, 0.0F);
GL11.glRotatef(-renderManager.playerViewY, 0.0F, 1.0F, 0.0F);
GL11.glRotatef(renderManager.playerViewX, 1.0F, 0.0F, 0.0F);
GL11.glScalef(-scale, -scale, scale);
GL11.glDisable(GL11.GL_LIGHTING);
GL11.glDepthMask(false);
GL11.glDisable(GL11.GL_DEPTH_TEST);
GL11.glEnable(GL11.GL_BLEND);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
Tessellator tessellator = Tessellator.instance;
int yOffset = 0;
GL11.glDisable(GL11.GL_TEXTURE_2D);
tessellator.startDrawingQuads();
int stringMiddle = fontRenderer.getStringWidth(text) / 2;
tessellator.setColorRGBA_F(0.0F, 0.0F, 0.0F, 0.25F);
tessellator.addVertex((double) (-stringMiddle - 1), (double) (-1 + yOffset), 0.0D);
tessellator.addVertex((double) (-stringMiddle - 1), (double) (8 + yOffset), 0.0D);
tessellator.addVertex((double) (stringMiddle + 1), (double) (8 + yOffset), 0.0D);
tessellator.addVertex((double) (stringMiddle + 1), (double) (-1 + yOffset), 0.0D);
tessellator.draw();
GL11.glEnable(GL11.GL_TEXTURE_2D);
fontRenderer.drawString(text, -fontRenderer.getStringWidth(text) / 2, yOffset, 553648127);
GL11.glEnable(GL11.GL_DEPTH_TEST);
GL11.glDepthMask(true);
fontRenderer.drawString(text, -fontRenderer.getStringWidth(text) / 2, yOffset, -1);
GL11.glEnable(GL11.GL_LIGHTING);
GL11.glDisable(GL11.GL_BLEND);
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
GL11.glPopMatrix();
}
}

View file

@ -1,6 +1,7 @@
package assemblyline.client.render; package assemblyline.client.render;
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
@ -8,6 +9,7 @@ import org.lwjgl.opengl.GL11;
import assemblyline.client.model.ModelSorter; import assemblyline.client.model.ModelSorter;
import assemblyline.common.AssemblyLine; import assemblyline.common.AssemblyLine;
import assemblyline.common.machine.TileEntityRejector; import assemblyline.common.machine.TileEntityRejector;
import assemblyline.common.machine.filter.ItemFilter;
public class RenderSorter extends TileEntitySpecialRenderer public class RenderSorter extends TileEntitySpecialRenderer
{ {
@ -46,7 +48,16 @@ public class RenderSorter extends TileEntitySpecialRenderer
model.renderMain(0.0625F); model.renderMain(0.0625F);
model.renderPiston(0.0625F, pos); model.renderPiston(0.0625F, pos);
GL11.glPopMatrix(); GL11.glPopMatrix();
ItemStack filter = tileEntity.getFilter();
if (filter != null)
{
ItemStack filterItem = ItemFilter.getFilters(filter).get(0);
if (filterItem != null)
{
RenderHelper.renderFloatingText(filterItem.getDisplayName(), (float) x + 0.5f, (float) y, (float) z + 0.5f);
}
}
} }
@Override @Override

View file

@ -1,5 +1,7 @@
package assemblyline.common.machine; package assemblyline.common.machine;
import java.io.DataInputStream;
import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -46,7 +48,7 @@ public class TileEntityRejector extends TileEntityAssemblyNetwork implements IRo
*/ */
private enum PacketTypes private enum PacketTypes
{ {
ANIMATION, GUI, SETTINGON ANIMATION, INVENTORY, SETTINGON
} }
/** /**
@ -124,7 +126,7 @@ public class TileEntityRejector extends TileEntityAssemblyNetwork implements IRo
@Override @Override
public Packet getDescriptionPacket() public Packet getDescriptionPacket()
{ {
return PacketManager.getPacket(AssemblyLine.CHANNEL, this, this.getPacketData(PacketTypes.GUI)); return PacketManager.getPacket(AssemblyLine.CHANNEL, this, this.getPacketData(PacketTypes.INVENTORY));
} }
/** /**
@ -199,7 +201,7 @@ public class TileEntityRejector extends TileEntityAssemblyNetwork implements IRo
public Object[] getPacketData(PacketTypes id) public Object[] getPacketData(PacketTypes id)
{ {
if (id == PacketTypes.ANIMATION) { return new Object[] { id.ordinal(), this.firePiston }; } if (id == PacketTypes.ANIMATION) { return new Object[] { id.ordinal(), this.firePiston }; }
if (id == PacketTypes.GUI) if (id == PacketTypes.INVENTORY)
{ {
Object[] da = new Object[this.guiButtons.length + 1]; Object[] da = new Object[this.guiButtons.length + 1];
da[0] = id.ordinal(); da[0] = id.ordinal();
@ -220,12 +222,13 @@ public class TileEntityRejector extends TileEntityAssemblyNetwork implements IRo
{ {
int id = dataStream.readInt(); int id = dataStream.readInt();
PacketTypes pID = PacketTypes.values()[id]; PacketTypes pID = PacketTypes.values()[id];
DataInputStream inputStream = new DataInputStream((InputStream) dataStream);
if (pID == PacketTypes.ANIMATION) if (pID == PacketTypes.ANIMATION)
{ {
this.firePiston = dataStream.readBoolean(); this.firePiston = dataStream.readBoolean();
} }
else if (pID == PacketTypes.GUI) else if (pID == PacketTypes.INVENTORY)
{ {
for (int i = 0; i < this.guiButtons.length; i++) for (int i = 0; i < this.guiButtons.length; i++)
{ {