Fixes for quotations, free translucent, fix boss bar
This commit is contained in:
@@ -13,6 +13,8 @@ import me.cortex.voxy.client.saver.ContextSelectionSystem;
|
||||
import me.cortex.voxy.common.world.WorldEngine;
|
||||
import me.cortex.voxy.client.importers.WorldImporter;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.hud.BossBarHud;
|
||||
import net.minecraft.client.gui.hud.ClientBossBar;
|
||||
import net.minecraft.client.render.Camera;
|
||||
import net.minecraft.client.render.Frustum;
|
||||
import net.minecraft.client.util.math.MatrixStack;
|
||||
@@ -20,6 +22,7 @@ import net.minecraft.entity.boss.BossBar;
|
||||
import net.minecraft.entity.boss.ServerBossBar;
|
||||
import net.minecraft.registry.RegistryKeys;
|
||||
import net.minecraft.text.Text;
|
||||
import net.minecraft.util.math.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.chunk.WorldChunk;
|
||||
import org.joml.Matrix4f;
|
||||
@@ -239,15 +242,20 @@ public class VoxelCore {
|
||||
return false;
|
||||
}
|
||||
var importer = new WorldImporter(this.world, mcWorld);
|
||||
var bossBar = new ServerBossBar(Text.of("Voxy world importer"), BossBar.Color.GREEN, BossBar.Style.PROGRESS);
|
||||
bossBar.addPlayer(MinecraftClient.getInstance().getServer().getPlayerManager().getPlayer(MinecraftClient.getInstance().player.getUuid()));
|
||||
var bossBar = new ClientBossBar(MathHelper.randomUuid(), Text.of("Voxy world importer"), 0.0f, BossBar.Color.GREEN, BossBar.Style.PROGRESS, false, false, false);
|
||||
MinecraftClient.getInstance().inGameHud.getBossBarHud().bossBars.put(bossBar.getUuid(), bossBar);
|
||||
importer.importWorldAsyncStart(worldPath, 4, (a,b)->
|
||||
MinecraftClient.getInstance().executeSync(()-> {
|
||||
bossBar.setPercent(((float) a)/((float) b));
|
||||
bossBar.setName(Text.of("Voxy import: "+ a+"/"+b + " region files"));
|
||||
}),
|
||||
()-> {
|
||||
MinecraftClient.getInstance().executeSync(bossBar::clearPlayers);
|
||||
MinecraftClient.getInstance().executeSync(()-> {
|
||||
MinecraftClient.getInstance().inGameHud.getBossBarHud().bossBars.remove(bossBar.getUuid());
|
||||
String msg = "Voxy world import finished";
|
||||
MinecraftClient.getInstance().inGameHud.getChatHud().addMessage(Text.literal(msg));
|
||||
System.err.println(msg);
|
||||
});
|
||||
this.importer = null;
|
||||
});
|
||||
this.importer = importer;
|
||||
|
||||
@@ -60,9 +60,6 @@ public class Gl46FarWorldRenderer extends AbstractFarWorldRenderer<Gl46Viewport>
|
||||
}
|
||||
|
||||
protected void bindResources(Gl46Viewport viewport) {
|
||||
glBindBuffer(GL_DRAW_INDIRECT_BUFFER, this.glCommandBuffer.id);
|
||||
glBindBuffer(GL_PARAMETER_BUFFER_ARB, this.glCommandCountBuffer.id);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, SharedIndexBuffer.INSTANCE.id());
|
||||
glBindBufferBase(GL_UNIFORM_BUFFER, 0, this.uniformBuffer.id);
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 1, this.geometry.geometryId());
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 2, this.glCommandBuffer.id);
|
||||
@@ -72,6 +69,13 @@ public class Gl46FarWorldRenderer extends AbstractFarWorldRenderer<Gl46Viewport>
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 6, this.models.getBufferId());
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 7, this.models.getColourBufferId());
|
||||
glBindBufferBase(GL_SHADER_STORAGE_BUFFER, 8, this.lightDataBuffer.id);//Lighting LUT
|
||||
glBindBuffer(GL_DRAW_INDIRECT_BUFFER, this.glCommandBuffer.id);
|
||||
glBindBuffer(GL_PARAMETER_BUFFER_ARB, this.glCommandCountBuffer.id);
|
||||
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, SharedIndexBuffer.INSTANCE.id());
|
||||
|
||||
//Bind the texture atlas
|
||||
glBindSampler(0, this.models.getSamplerId());
|
||||
glBindTextureUnit(0, this.models.getTextureId());
|
||||
}
|
||||
|
||||
//FIXME: dont do something like this as it breaks multiviewport mods
|
||||
@@ -127,11 +131,6 @@ public class Gl46FarWorldRenderer extends AbstractFarWorldRenderer<Gl46Viewport>
|
||||
UploadStream.INSTANCE.commit();
|
||||
glBindVertexArray(AbstractFarWorldRenderer.STATIC_VAO);
|
||||
|
||||
|
||||
//Bind the texture atlas
|
||||
glBindSampler(0, this.models.getSamplerId());
|
||||
glBindTextureUnit(0, this.models.getTextureId());
|
||||
|
||||
glClearNamedBufferData(this.glCommandCountBuffer.id, GL_R32UI, GL_RED_INTEGER, GL_UNSIGNED_INT, new int[1]);
|
||||
this.commandGen.bind();
|
||||
this.bindResources(viewport);
|
||||
@@ -143,7 +142,7 @@ public class Gl46FarWorldRenderer extends AbstractFarWorldRenderer<Gl46Viewport>
|
||||
glDisable(GL_CULL_FACE);
|
||||
//glPointSize(10);
|
||||
//TODO: replace glMultiDrawElementsIndirectCountARB with glMultiDrawElementsIndirect on intel gpus, since it performs so much better
|
||||
//glMultiDrawElementsIndirect(GL_TRIANGLES, GL_UNSIGNED_SHORT, 0, (int) (this.geometry.getSectionCount()*0.9), 0);
|
||||
//glMultiDrawElementsIndirect(GL_TRIANGLES, GL_UNSIGNED_SHORT, 0, drawCnt, 0);
|
||||
glMultiDrawElementsIndirectCountARB(GL_TRIANGLES, GL_UNSIGNED_SHORT, 0, 0, (int) (this.geometry.getSectionCount()*4.4), 0);
|
||||
glEnable(GL_CULL_FACE);
|
||||
|
||||
@@ -155,7 +154,6 @@ public class Gl46FarWorldRenderer extends AbstractFarWorldRenderer<Gl46Viewport>
|
||||
System.out.println(cnt);
|
||||
});
|
||||
DownloadStream.INSTANCE.commit();
|
||||
DownloadStream.INSTANCE.tick();
|
||||
*/
|
||||
|
||||
|
||||
|
||||
@@ -184,6 +184,7 @@ public class NvMeshFarWorldRenderer extends AbstractFarWorldRenderer<NvMeshViewp
|
||||
public void shutdown() {
|
||||
super.shutdown();
|
||||
this.terrain.free();
|
||||
this.translucent.free();
|
||||
this.cull.free();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,10 @@ public class WorldImportCommand {
|
||||
continue;
|
||||
}
|
||||
var wn = world.getFileName().toString();
|
||||
if (CommandSource.shouldSuggest(sb.getRemaining(), wn)) {
|
||||
if (CommandSource.shouldSuggest(sb.getRemaining(), wn) || CommandSource.shouldSuggest(sb.getRemaining(), '"'+wn)) {
|
||||
if (wn.contains(" ")) {
|
||||
wn = '"' + wn + '"';
|
||||
}
|
||||
sb.suggest(wn);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,8 @@ accessible field net/minecraft/client/render/GameRenderer zoom F
|
||||
accessible field net/minecraft/client/world/ClientWorld worldRenderer Lnet/minecraft/client/render/WorldRenderer;
|
||||
accessible field net/minecraft/world/biome/source/BiomeAccess seed J
|
||||
|
||||
accessible field net/minecraft/client/gui/hud/BossBarHud bossBars Ljava/util/Map;
|
||||
|
||||
accessible field net/minecraft/client/render/RenderLayer$MultiPhaseParameters texture Lnet/minecraft/client/render/RenderPhase$TextureBase;
|
||||
accessible field net/minecraft/client/render/RenderLayer$MultiPhase phases Lnet/minecraft/client/render/RenderLayer$MultiPhaseParameters;
|
||||
accessible field net/minecraft/client/network/ClientPlayerInteractionManager networkHandler Lnet/minecraft/client/network/ClientPlayNetworkHandler;
|
||||
|
||||
Reference in New Issue
Block a user