Fix Forge not rendering

This commit is contained in:
James Seibel
2023-10-19 07:04:19 -05:00
parent 8eb4afef68
commit ad24cbebe3
3 changed files with 13 additions and 10 deletions
@@ -86,8 +86,14 @@ public class ClientLevelModule implements Closeable
return;
}
IClientLevelWrapper clientLevelWrapper = this.parentClientLevel.getClientLevelWrapper();
if (clientLevelWrapper == null)
{
return;
}
clientRenderState.close();
clientRenderState = new ClientRenderState(parentClientLevel, parentClientLevel.getFileHandler(), parentClientLevel.getSaveStructure());
clientRenderState = new ClientRenderState(this.parentClientLevel, clientLevelWrapper, this.parentClientLevel.getFileHandler(), this.parentClientLevel.getSaveStructure());
if (!this.ClientRenderStateRef.compareAndSet(null, clientRenderState))
{
//FIXME: How to handle this?
@@ -117,9 +123,9 @@ public class ClientLevelModule implements Closeable
//========//
/** @return if the {@link ClientRenderState} was successfully swapped */
public boolean startRenderer()
public boolean startRenderer(IClientLevelWrapper clientLevelWrapper)
{
ClientRenderState ClientRenderState = new ClientRenderState(parentClientLevel, parentClientLevel.getFileHandler(), parentClientLevel.getSaveStructure());
ClientRenderState ClientRenderState = new ClientRenderState(parentClientLevel, clientLevelWrapper, parentClientLevel.getFileHandler(), parentClientLevel.getSaveStructure());
if (!this.ClientRenderStateRef.compareAndSet(null, ClientRenderState))
{
LOGGER.warn("Failed to start renderer due to concurrency");
@@ -280,10 +286,10 @@ public class ClientLevelModule implements Closeable
public final LodRenderer renderer;
public ClientRenderState(
IDhClientLevel dhClientLevel, IFullDataSourceProvider fullDataSourceProvider,
IDhClientLevel dhClientLevel, IClientLevelWrapper clientLevelWrapper, IFullDataSourceProvider fullDataSourceProvider,
AbstractSaveStructure saveStructure)
{
this.clientLevelWrapper = dhClientLevel.getClientLevelWrapper();
this.clientLevelWrapper = clientLevelWrapper;
this.renderSourceFileHandler = new RenderSourceFileHandler(fullDataSourceProvider, dhClientLevel, saveStructure);
this.quadtree = new LodQuadTree(dhClientLevel, Config.Client.Advanced.Graphics.Quality.lodChunkRenderDistanceRadius.get() * LodUtil.CHUNK_WIDTH * 2,
@@ -64,7 +64,7 @@ public class DhClientLevel extends DhLevel implements IDhClientLevel
if (enableRendering)
{
this.clientside.startRenderer();
this.clientside.startRenderer(clientLevelWrapper);
LOGGER.info("Started DHLevel for " + this.levelWrapper + " with saves at " + this.saveStructure);
}
}
@@ -120,10 +120,7 @@ public class DhClientServerLevel extends DhLevel implements IDhClientLevel, IDhS
// render //
//========//
public void startRenderer(IClientLevelWrapper clientLevel)
{
clientside.startRenderer();
}
public void startRenderer(IClientLevelWrapper clientLevel) { this.clientside.startRenderer(clientLevel); }
public void stopRenderer() { this.clientside.stopRenderer(); }