Program: 165611
Project: 165611
Buggy source:
private void renderModules(FontRenderer fontrenderer,ScreenTileEntity tileEntity,IClientScreenModule.TransformMode mode,List<IClientScreenModule> modules,Map<Integer,IModuleData> screenData,int size){
  float f3;
  float factor=size + 1.0f;
  int currenty=7;
  int moduleIndex=0;
  BlockPos pos=tileEntity.getPos();
  RayTraceResult mouseOver=Minecraft.getMinecraft().objectMouseOver;
  IClientScreenModule hitModule=null;
  ScreenTileEntity.ModuleRaytraceResult hit=null;
  IBlockState blockState=getWorld().getBlockState(pos);
  Block block=blockState.getBlock();
  if (block != ScreenSetup.screenBlock && block != ScreenSetup.creativeScreenBlock && block != ScreenSetup.screenHitBlock) {
    return;
  }
  if (mouseOver != null) {
    if (mouseOver.sideHit == blockState.getValue(BaseBlock.FACING)) {
      double xx=mouseOver.hitVec.x - pos.getX();
      double yy=mouseOver.hitVec.y - pos.getY();
      double zz=mouseOver.hitVec.z - pos.getZ();
      EnumFacing horizontalFacing=blockState.getValue(ScreenBlock.HORIZONTAL_FACING);
      hit=tileEntity.getHitModule(xx,yy,zz,mouseOver.sideHit,horizontalFacing);
      if (hit != null) {
        hitModule=modules.get(hit.getModuleIndex());
      }
      tileEntity.focusModuleClient(xx,yy,zz,mouseOver.sideHit,horizontalFacing);
    }
  }
  if (tileEntity.isBright()) {
    Minecraft.getMinecraft().entityRenderer.disableLightmap();
  }
  for (  IClientScreenModule module : modules) {
    if (module != null) {
      int height=module.getHeight();
      if (currenty + height <= 124) {
        if (module.getTransformMode() != mode) {
          if (mode != IClientScreenModule.TransformMode.NONE) {
            GlStateManager.popMatrix();
          }
          GlStateManager.pushMatrix();
          mode=module.getTransformMode();
switch (mode) {
case TEXT:
            GlStateManager.translate(-0.5F,0.5F,0.07F);
          f3=0.0075F;
        GlStateManager.scale(f3 * factor,-f3 * factor,f3);
      GL11.glNormal3f(0.0F,0.0F,-1.0F);
    GlStateManager.color(1.0F,1.0F,1.0F,1.0F);
  break;
case TEXTLARGE:
GlStateManager.translate(-0.5F,0.5F,0.07F);
f3=0.0075F * 2;
GlStateManager.scale(f3 * factor,-f3 * factor,f3);
GL11.glNormal3f(0.0F,0.0F,-1.0F);
GlStateManager.color(1.0F,1.0F,1.0F,1.0F);
break;
case ITEM:
break;
default :
break;
}
}
IModuleData data=screenData.get(moduleIndex);
try {
int hitx=-1;
int hity=-1;
if (module == hitModule) {
hitx=hit.getX();
hity=hit.getY() - hit.getCurrenty();
}
TrueTypeFont font=null;
switch (tileEntity.getTrueTypeMode()) {
case -1:
break;
case 1:
font=ClientProxy.font;
break;
case 0:
font=ScreenConfiguration.useTruetype ? ClientProxy.font : null;
break;
}
ModuleRenderInfo renderInfo=new ModuleRenderInfo(factor,pos,hitx,hity,font);
module.render(clientScreenModuleHelper,fontrenderer,currenty,data,renderInfo);
}
 catch (ClassCastException e) {
}
currenty+=height;
}
}
moduleIndex++;
}
if (tileEntity.isBright()) {
Minecraft.getMinecraft().entityRenderer.enableLightmap();
}
if (mode != IClientScreenModule.TransformMode.NONE) {
GlStateManager.popMatrix();
}
}

Fixed version (ground truth):
private void renderModules(FontRenderer fontrenderer,ScreenTileEntity tileEntity,IClientScreenModule.TransformMode mode,List<IClientScreenModule<?>> modules,Map<Integer,IModuleData> screenData,int size){
  float f3;
  float factor=size + 1.0f;
  int currenty=7;
  int moduleIndex=0;
  BlockPos pos=tileEntity.getPos();
  RayTraceResult mouseOver=Minecraft.getMinecraft().objectMouseOver;
  IClientScreenModule<?> hitModule=null;
  ScreenTileEntity.ModuleRaytraceResult hit=null;
  IBlockState blockState=getWorld().getBlockState(pos);
  Block block=blockState.getBlock();
  if (block != ScreenSetup.screenBlock && block != ScreenSetup.creativeScreenBlock && block != ScreenSetup.screenHitBlock) {
    return;
  }
  if (mouseOver != null) {
    if (mouseOver.sideHit == blockState.getValue(BaseBlock.FACING)) {
      double xx=mouseOver.hitVec.x - pos.getX();
      double yy=mouseOver.hitVec.y - pos.getY();
      double zz=mouseOver.hitVec.z - pos.getZ();
      EnumFacing horizontalFacing=blockState.getValue(ScreenBlock.HORIZONTAL_FACING);
      hit=tileEntity.getHitModule(xx,yy,zz,mouseOver.sideHit,horizontalFacing);
      if (hit != null) {
        hitModule=modules.get(hit.getModuleIndex());
      }
      tileEntity.focusModuleClient(xx,yy,zz,mouseOver.sideHit,horizontalFacing);
    }
  }
  if (tileEntity.isBright()) {
    Minecraft.getMinecraft().entityRenderer.disableLightmap();
  }
  for (  IClientScreenModule module : modules) {
    if (module != null) {
      int height=module.getHeight();
      if (currenty + height <= 124) {
        if (module.getTransformMode() != mode) {
          if (mode != IClientScreenModule.TransformMode.NONE) {
            GlStateManager.popMatrix();
          }
          GlStateManager.pushMatrix();
          mode=module.getTransformMode();
switch (mode) {
case TEXT:
            GlStateManager.translate(-0.5F,0.5F,0.07F);
          f3=0.0075F;
        GlStateManager.scale(f3 * factor,-f3 * factor,f3);
      GL11.glNormal3f(0.0F,0.0F,-1.0F);
    GlStateManager.color(1.0F,1.0F,1.0F,1.0F);
  break;
case TEXTLARGE:
GlStateManager.translate(-0.5F,0.5F,0.07F);
f3=0.0075F * 2;
GlStateManager.scale(f3 * factor,-f3 * factor,f3);
GL11.glNormal3f(0.0F,0.0F,-1.0F);
GlStateManager.color(1.0F,1.0F,1.0F,1.0F);
break;
case ITEM:
break;
default :
break;
}
}
IModuleData data=screenData.get(moduleIndex);
try {
int hitx=-1;
int hity=-1;
if (module == hitModule) {
hitx=hit.getX();
hity=hit.getY() - hit.getCurrenty();
}
TrueTypeFont font=null;
switch (tileEntity.getTrueTypeMode()) {
case -1:
break;
case 1:
font=ClientProxy.font;
break;
case 0:
font=ScreenConfiguration.useTruetype ? ClientProxy.font : null;
break;
}
ModuleRenderInfo renderInfo=new ModuleRenderInfo(factor,pos,hitx,hity,font);
module.render(clientScreenModuleHelper,fontrenderer,currenty,data,renderInfo);
}
 catch (ClassCastException e) {
}
currenty+=height;
}
}
moduleIndex++;
}
if (tileEntity.isBright()) {
Minecraft.getMinecraft().entityRenderer.enableLightmap();
}
if (mode != IClientScreenModule.TransformMode.NONE) {
GlStateManager.popMatrix();
}
}