boolean large = locker.isConnected();
    if (large && !locker.isMain()) return;
    
    int index = (locker.mirror ? 1 : 0);
    ModelLocker model = (large ? largeLockerModel : lockerModel);
    bindTexture(locker.getResource());
    
    GL11.glPushMatrix();
    GL11.glEnable(GL12.GL_RESCALE_NORMAL);
    
    float angle = locker.prevLidAngle + (locker.lidAngle - locker.prevLidAngle) * partialTicks;
    angle = 1.0F - angle;
    angle = 1.0F - angle * angle * angle;
    angle = angle * 90;
    
    GL11.glTranslated(x + 0.5, y + 0.5, z + 0.5);
    int rotation = DirectionUtils.getRotation(locker.getOrientation());
    GL11.glRotatef(-rotation, 0.0F, 1.0F, 0.0F);
    
      GL11.glPushMatrix();
      GL11.glScalef(scale, scale, scale);
      
      model.renderAll(locker.mirror, angle);
      
      GL11.glPopMatrix();
    
    if (locker.canHaveLock()) {
      if (angle > 0) {