@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); } } } }