diff --git a/src/main/java/ru/bclib/api/datafixer/DataFixerAPI.java b/src/main/java/ru/bclib/api/datafixer/DataFixerAPI.java index c2e1895b..06d1b764 100644 --- a/src/main/java/ru/bclib/api/datafixer/DataFixerAPI.java +++ b/src/main/java/ru/bclib/api/datafixer/DataFixerAPI.java @@ -202,6 +202,7 @@ public class DataFixerAPI { Runnable runner = () -> { if (createBackup) { + progress.progressStage(new TranslatableComponent("message.bclib.datafixer.progress.waitbackup")); EditWorldScreen.makeBackupAndShowToast(Minecraft.getInstance().getLevelSource(), levelID); } diff --git a/src/main/java/ru/bclib/gui/screens/ProgressScreen.java b/src/main/java/ru/bclib/gui/screens/ProgressScreen.java index 84ee76c8..73c4f5ff 100644 --- a/src/main/java/ru/bclib/gui/screens/ProgressScreen.java +++ b/src/main/java/ru/bclib/gui/screens/ProgressScreen.java @@ -44,44 +44,46 @@ class ProgressLogoRender extends GridCustomRenderCell { RenderSystem.enableBlend(); RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0f); + + final int yBarLocal = (int)(transform.height*percentage); + final int yBar = transform.top + yBarLocal; final float fScale = (float)(0.3*((Math.sin(time)+1.0)*0.5) + 0.7); int height = (int)(transform.height*fScale); int width = (int)(transform.width*fScale); width -= ((transform.width-width)%2); height -= ((transform.height-height)%2); + final int yOffset = (transform.height-height)/2; final int xOffset = (transform.width-width)/2; - - final int yBarLocal = (int)(transform.height*percentage); - final int yBar = transform.top + yBarLocal; - - final float relativeY = ((float)(yBarLocal - yOffset)/height); - - final int uvTopLogo = (int)(relativeY * LOGO_SIZE); - final int uvTopPixelated = (int)(relativeY * PIXELATED_SIZE); - - if (uvTopLogo>0) { + + + final int yBarImage = Math.max(0, Math.min(height, yBarLocal - yOffset)); + final float relativeY = ((float)yBarImage/height); + + if (yBarImage>0) { + final int uvTopLogo = (int)(relativeY * LOGO_SIZE); RenderSystem.setShaderTexture(0, BCLibScreen.BCLIB_LOGO_LOCATION); GuiComponent.blit(poseStack, - xOffset + transform.left, - yOffset + transform.top, - width, - yBarLocal - yOffset, - 0, 0, LOGO_SIZE, uvTopLogo, - LOGO_SIZE, LOGO_SIZE + xOffset + transform.left, + yOffset + transform.top, + width, + yBarImage, + 0, 0, LOGO_SIZE, uvTopLogo, + LOGO_SIZE, LOGO_SIZE ); } - - if (uvTopPixelated