Fix all render issues. 1.7 is now officially more stable than 1.6 (but not stable enough)

This commit is contained in:
Aidan C. Brady 2014-06-12 18:16:20 +02:00
parent 9ae7cc0483
commit 81477966ee
9 changed files with 63 additions and 39 deletions

View file

@ -8,6 +8,8 @@ import java.util.Map;
import java.util.Set;
import mekanism.api.Coord4D;
import mekanism.api.EnumColor;
import mekanism.client.render.MekanismRenderer;
import mekanism.client.sound.SoundHandler;
import mekanism.common.Mekanism;
import mekanism.common.inventory.container.ContainerNull;
@ -407,16 +409,19 @@ public class GuiDigitalMinerConfig extends GuiMekanism
if(filter instanceof MItemStackFilter)
{
drawTexturedModalRect(guiWidth + 56, guiHeight + yStart, mouseOver ? 0 : 96, 166, 96, 29);
MekanismRenderer.color(EnumColor.INDIGO, 1.0F, 2.5F);
}
else if(filter instanceof MOreDictFilter)
{
drawTexturedModalRect(guiWidth + 56, guiHeight + yStart, mouseOver ? 0 : 96, 195, 96, 29);
MekanismRenderer.color(EnumColor.BRIGHT_GREEN, 1.0F, 2.5F);
}
else if(filter instanceof MMaterialFilter)
{
drawTexturedModalRect(guiWidth + 56, guiHeight + yStart, mouseOver ? 0 : 96, 224, 96, 29);
MekanismRenderer.color(EnumColor.PURPLE, 1.0F, 4F);
}
drawTexturedModalRect(guiWidth + 56, guiHeight + yStart, mouseOver ? 0 : 96, 166, 96, 29);
MekanismRenderer.resetColor();
}
}

View file

@ -8,6 +8,7 @@ import java.util.Map;
import java.util.Set;
import mekanism.api.Coord4D;
import mekanism.api.EnumColor;
import mekanism.client.render.MekanismRenderer;
import mekanism.client.sound.SoundHandler;
import mekanism.common.Mekanism;
@ -414,16 +415,19 @@ public class GuiLogisticalSorter extends GuiMekanism
if(filter instanceof TItemStackFilter)
{
drawTexturedModalRect(guiWidth + 56, guiHeight + yStart, mouseOver ? 0 : 96, 166, 96, 29);
MekanismRenderer.color(EnumColor.INDIGO, 1.0F, 2.5F);
}
else if(filter instanceof TOreDictFilter)
{
drawTexturedModalRect(guiWidth + 56, guiHeight + yStart, mouseOver ? 0 : 96, 195, 96, 29);
MekanismRenderer.color(EnumColor.BRIGHT_GREEN, 1.0F, 2.5F);
}
else if(filter instanceof TMaterialFilter)
{
drawTexturedModalRect(guiWidth + 56, guiHeight + yStart, mouseOver ? 0 : 96, 224, 96, 29);
MekanismRenderer.color(EnumColor.PURPLE, 1.0F, 4F);
}
drawTexturedModalRect(guiWidth + 56, guiHeight + yStart, mouseOver ? 0 : 96, 166, 96, 29);
MekanismRenderer.resetColor();
}
}

View file

@ -208,6 +208,26 @@ public class MekanismRenderer
Tessellator.instance.draw();
}
public static void color(EnumColor color)
{
color(color, 1.0F);
}
public static void color(EnumColor color, float alpha)
{
color(color, alpha, 1.0F);
}
public static void color(EnumColor color, float alpha, float multiplier)
{
GL11.glColor4f(color.getColor(0)*multiplier, color.getColor(1)*multiplier, color.getColor(2)*multiplier, alpha);
}
public static void resetColor()
{
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
}
public static IIcon getColorIcon(EnumColor color)
{
return colors[color.ordinal()];

View file

@ -3,7 +3,6 @@ package mekanism.client.render;
import java.util.Map;
import mekanism.api.EnumColor;
import mekanism.common.Mekanism;
import mekanism.common.multipart.PartGlowPanel;
import mekanism.common.util.MekanismUtils;
import mekanism.common.util.MekanismUtils.ResourceType;
@ -43,39 +42,35 @@ public class RenderGlowPanel implements IIconSelfRegister
Map<String, CCModel> models = CCModel.parseObjModels(MekanismUtils.getResource(ResourceType.MODEL, "glow_panel.obj"), 7, null);
frameModels = new CCModel[6];
frameModels[0] = models.get("frame");
CCModel.generateSidedModels(frameModels, 0, new Vector3(0, 0, 0));
frameModels[0] = models.get("frame").backfacedCopy().apply(Vector3.center.translation()).shrinkUVs(0.0005);
CCModel.generateSidedModels(frameModels, 0, Vector3.center);
lightModels = new CCModel[6];
lightModels[0] = models.get("light");
CCModel.generateSidedModels(lightModels, 0, new Vector3(0, 0, 0));
lightModels[0] = models.get("light").backfacedCopy().apply(Vector3.center.translation()).shrinkUVs(0.0005);
CCModel.generateSidedModels(lightModels, 0, Vector3.center);
for(CCModel c : frameModels)
{
c.apply(new Translation(.5, .5, .5));
c.computeLighting(LightModel.standardLightModel);
c.shrinkUVs(0.0005);
}
for(CCModel c : lightModels)
{
c.apply(new Translation(.5, .5, .5));
c.computeLighting(LightModel.standardLightModel);
c.shrinkUVs(0.0005);
}
}
public void renderStatic(PartGlowPanel panel)
{
TextureUtils.bindAtlas(0);
CCRenderState.reset();
CCRenderState.setBrightness(panel.world(), panel.x(), panel.y(), panel.z());
CCRenderState.hasColour = true;
Colour colour = new ColourRGBA(panel.colour.getColor(0), panel.colour.getColor(1), panel.colour.getColor(2), 1);
int side = panel.side.ordinal();
frameModels[side].render(0, frameModels[side].verts.length, new Translation(panel.x(), panel.y(), panel.z()), new IconTransformation(icon));
lightModels[side].render(0, lightModels[side].verts.length, new Translation(panel.x(), panel.y(), panel.z()), new IconTransformation(icon), new ColourMultiplier(colour.rgba()));
frameModels[side].render(new Translation(panel.x(), panel.y(), panel.z()), new IconTransformation(icon));
lightModels[side].render(new Translation(panel.x(), panel.y(), panel.z()), new IconTransformation(icon), new ColourMultiplier(colour.rgba()));
}
public void renderItem(int metadata)
@ -83,6 +78,7 @@ public class RenderGlowPanel implements IIconSelfRegister
TextureUtils.bindAtlas(0);
CCRenderState.reset();
CCRenderState.startDrawing();
CCRenderState.hasColour = true;
EnumColor c = EnumColor.DYES[metadata];
Colour colour = new ColourRGBA(c.getColor(0), c.getColor(1), c.getColor(2), 1);
@ -90,8 +86,8 @@ public class RenderGlowPanel implements IIconSelfRegister
for(int i = 4; i < 5; i++)
{
frameModels[i].render(0, frameModels[i].verts.length, new Translation(0, 0, 0), new IconTransformation(icon), new ColourMultiplier(white.rgba()));
lightModels[i].render(0, lightModels[i].verts.length, new Translation(0, 0, 0), new IconTransformation(icon), new ColourMultiplier(colour.rgba()));
frameModels[i].render(new IconTransformation(icon), new ColourMultiplier(white.rgba()));
lightModels[i].render(new IconTransformation(icon), new ColourMultiplier(colour.rgba()));
}
CCRenderState.draw();

View file

@ -7,7 +7,6 @@ import mekanism.api.Coord4D;
import mekanism.client.model.ModelTransporterBox;
import mekanism.client.render.MekanismRenderer.DisplayInteger;
import mekanism.client.render.MekanismRenderer.Model3D;
import mekanism.common.Mekanism;
import mekanism.common.item.ItemConfigurator;
import mekanism.common.multipart.PartDiversionTransporter;
import mekanism.common.multipart.PartLogisticalTransporter;
@ -92,20 +91,18 @@ public class RenderPartTransmitter implements IIconSelfRegister
small_models = CCModel.parseObjModels(MekanismUtils.getResource(ResourceType.MODEL, "transmitter_small.obj"), 7, null);
for(CCModel c : small_models.values())
for(Map.Entry<String, CCModel> e : small_models.entrySet())
{
c.apply(new Translation(.5, .5, .5));
c.computeLighting(LightModel.standardLightModel);
c.shrinkUVs(0.0005);
e.setValue(e.getValue().twoFacedCopy().apply(new Translation(Vector3.center)).shrinkUVs(0.0005));
e.getValue().computeLighting(LightModel.standardLightModel);
}
large_models = CCModel.parseObjModels(MekanismUtils.getResource(ResourceType.MODEL, "transmitter_large.obj"), 7, null);
for(CCModel c : large_models.values())
for(Map.Entry<String, CCModel> e : large_models.entrySet())
{
c.apply(new Translation(.5, .5, .5));
c.computeLighting(LightModel.standardLightModel);
c.shrinkUVs(0.0005);
e.setValue(e.getValue().twoFacedCopy().apply(new Translation(Vector3.center)).shrinkUVs(0.0005));
e.getValue().computeLighting(LightModel.standardLightModel);
}
contents_models = CCModel.parseObjModels(MekanismUtils.getResource(ResourceType.MODEL, "transmitter_contents.obj"), 7, null);
@ -118,7 +115,7 @@ public class RenderPartTransmitter implements IIconSelfRegister
for(CCModel c : contents_models.values())
{
c.apply(new Translation(.5, .5, .5));
c.apply(new Translation(Vector3.center));
c.computeLighting(interiorLightModel);
c.shrinkUVs(0.0005);
}
@ -306,7 +303,8 @@ public class RenderPartTransmitter implements IIconSelfRegister
}
}
}
else if(pipe.getConnectionType(side) != ConnectionType.NONE) {
else if(pipe.getConnectionType(side) != ConnectionType.NONE)
{
GL11.glCullFace(GL11.GL_FRONT);
CCRenderState.startDrawing();
renderFluidInOut(side, pipe);
@ -493,7 +491,6 @@ public class RenderPartTransmitter implements IIconSelfRegister
public void renderStatic(PartSidedPipe transmitter)
{
TextureUtils.bindAtlas(0);
CCRenderState.reset();
CCRenderState.setBrightness(transmitter.world(), transmitter.x(), transmitter.y(), transmitter.z());
@ -549,10 +546,10 @@ public class RenderPartTransmitter implements IIconSelfRegister
{
if(color != null)
{
cc.render(0, cc.verts.length, new Translation(x, y, z), new IconTransformation(icon), new ColourMultiplier(color.rgba()));
cc.render(new Translation(x, y, z), new IconTransformation(icon), new ColourMultiplier(color.rgba()));
}
else {
cc.render(0, cc.verts.length, new Translation(x, y, z), new IconTransformation(icon));
cc.render(new Translation(x, y, z), new IconTransformation(icon));
}
}
@ -560,10 +557,10 @@ public class RenderPartTransmitter implements IIconSelfRegister
{
if(color != null)
{
cc.render(0, cc.verts.length, new Translation(0, 0, 0), new IconTransformation(icon), new ColourMultiplier(color.rgba()));
cc.render(new IconTransformation(icon), new ColourMultiplier(color.rgba()));
}
else {
cc.render(0, cc.verts.length, new Translation(0, 0, 0), new IconTransformation(icon));
cc.render(new IconTransformation(icon));
}
}

View file

@ -111,12 +111,13 @@ public class PartGlowPanel extends JCuboidPart implements JNormalOcclusion, JIco
@SideOnly(Side.CLIENT)
public boolean renderStatic(Vector3 pos, int pass)
{
if(pass == 1)
if(pass == 0)
{
RenderGlowPanel.getInstance().renderStatic(this);
return true;
}
return true;
return false;
}
@Override

View file

@ -314,9 +314,10 @@ public abstract class PartSidedPipe extends TMultiPart implements TSlottedPart,
if(pass == 1)
{
RenderPartTransmitter.getInstance().renderStatic(this);
return true;
}
return true;
return false;
}
@Override

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB