Example #1
0
  @Override
  public void update() {
    super.update();
    if (!((GuiWorkspace) workspace).projectManager.projects.isEmpty()) {
      ProjectInfo info =
          ((GuiWorkspace) workspace)
              .projectManager.projects.get(
                  ((GuiWorkspace) workspace).projectManager.selectedProject);

      listenTime++;
      if (listenTime > 20) {
        listenTime = 0;
        boolean shouldListen = false;
        for (Element e : elements) {
          if (e.id == 0) {
            shouldListen = ((ElementToggle) e).toggledState;
          }
        }
        if (shouldListen && info.textureFile != null && info.textureFile.exists()) {
          String md5 = IOUtil.getMD5Checksum(info.textureFile);
          if (md5 != null && !md5.equals(info.textureFileMd5)) {
            info.ignoreNextImage = true;
            info.textureFileMd5 = md5;

            BufferedImage image = null;
            try {
              image = ImageIO.read(info.textureFile);
            } catch (IOException e) {
            }

            if (!((GuiWorkspace) workspace).remoteSession) {
              Tabula.proxy.tickHandlerClient.mainframe.loadTexture(info.identifier, image, false);
            } else if (!((GuiWorkspace) workspace).sessionEnded
                && ((GuiWorkspace) workspace).isEditor) {
              ProjectHelper.sendTextureToServer(
                  ((GuiWorkspace) workspace).host, info.identifier, false, image);
            }
          }
        }
      }

      if (info.bufferedTexture != this.image) {
        if (this.imageId != -1) {
          TextureUtil.deleteTexture(this.imageId);
          this.imageId = -1;
        }
        this.image = info.bufferedTexture;
        if (this.image != null) {
          this.imageId = TextureUtil.uploadTextureImage(TextureUtil.glGenTextures(), this.image);
        }
      }
    }
  }