Add ILevelWrapper.getDimensionName()

This commit is contained in:
James Seibel
2024-09-11 07:14:21 -05:00
parent 554bb89690
commit 45fc36543b
19 changed files with 42 additions and 43 deletions
@@ -28,8 +28,6 @@ import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper;
*/
public interface IDhApiDimensionTypeWrapper extends IDhApiUnsafeWrapper
{
String getDimensionName();
boolean hasCeiling();
boolean hasSkyLight();
@@ -35,6 +35,9 @@ public interface IDhApiLevelWrapper extends IDhApiUnsafeWrapper
{
IDhApiDimensionTypeWrapper getDimensionType();
/** @since API 4.0.0 */
String getDimensionName();
EDhApiLevelType getLevelType();
boolean hasCeiling();
@@ -182,7 +182,7 @@ public class FullDataSourceV2 implements IDataSource<IDhLevel>
boolean isAir = legacyData.mapping.getBlockStateWrapper(FullDataPointUtil.getId(dataPoint)).isAir();
byte blockLight = (byte) FullDataPointUtil.getBlockLight(dataPoint);
if (isAir)
{
// air shouldn't have any light, otherwise down sampling will look weird
@@ -229,7 +229,7 @@ public class FullDataToRenderDataTransformer
if (!brokenPos.contains(fullDataMapping.getPos()))
{
brokenPos.add(fullDataMapping.getPos());
String dimName = level.getLevelWrapper().getDimensionType().getDimensionName();
String dimName = level.getLevelWrapper().getDimensionName();
LOGGER.warn("Unable to get data point with id ["+id+"] " +
"(Max possible ID: ["+fullDataMapping.getMaxValidId()+"]) " +
"for pos ["+fullDataMapping.getPos()+"] in dimension ["+dimName+"]. " +
@@ -121,7 +121,7 @@ public class FullDataSourceProviderV2
DebugRenderer.register(this, Config.Client.Advanced.Debugging.DebugWireframe.showFullDataUpdateStatus);
String dimensionName = level.getLevelWrapper().getDimensionType().getDimensionName();
String dimensionName = level.getLevelWrapper().getDimensionName();
// start migrating any legacy data sources present in the background
this.migrationThreadPool = ThreadUtil.makeRateLimitedThreadPool(1, MIGRATION_THREAD_NAME_PREFIX +"["+dimensionName+"]", Config.Client.Advanced.MultiThreading.runTimeRatioForUpdatePropagatorThreads.get(), Thread.MIN_PRIORITY, (Semaphore)null);
@@ -321,7 +321,7 @@ public class FullDataSourceProviderV2
private void convertLegacyDataSources()
{
String dimensionName = this.level.getLevelWrapper().getDimensionType().getDimensionName();
String dimensionName = this.level.getLevelWrapper().getDimensionName();
LOGGER.info("Attempting to migrate data sources for: ["+dimensionName+"]-["+this.saveDir+"]...");
@@ -424,9 +424,7 @@ public class FullDataSourceProviderV2
{
newDataSource.close();
}
catch (Exception ignore)
{
}
catch (Exception ignore) { }
});
}
catch (Exception e)
@@ -502,7 +500,7 @@ public class FullDataSourceProviderV2
}
this.migrationStartMessageQueued = true;
String dimName = this.level.getLevelWrapper().getDimensionType().getDimensionName();
String dimName = this.level.getLevelWrapper().getDimensionName();
ClientApi.INSTANCE.showChatMessageNextFrame(
"Old Distant Horizons data is being migrated for ["+dimName+"]. \n" +
"While migrating LODs may load slowly \n" +
@@ -513,7 +511,7 @@ public class FullDataSourceProviderV2
private void showMigrationEndMessage(boolean success)
{
String dimName = this.level.getLevelWrapper().getDimensionType().getDimensionName();
String dimName = this.level.getLevelWrapper().getDimensionName();
if (success)
{
@@ -94,7 +94,7 @@ public class GeneratedFullDataSourceProvider extends FullDataSourceProviderV2 im
// don't log shutdown exceptions
if (!(exception instanceof CancellationException || exception.getCause() instanceof CancellationException))
{
LOGGER.error("Uncaught Gen Task Exception at [" + genTaskResult.pos + "], error: ["+ exception.getMessage() + "].", exception);
LOGGER.error("Uncaught Gen Task Exception at ["+genTaskResult.pos+"], error: ["+exception.getMessage()+"].", exception);
}
}
else if (genTaskResult.success)
@@ -140,7 +140,7 @@ public class GeneratedFullDataSourceProvider extends FullDataSourceProviderV2 im
{
boolean oldQueueExists = this.worldGenQueueRef.compareAndSet(null, newWorldGenQueue);
LodUtil.assertTrue(oldQueueExists, "previous world gen queue is still here!");
LOGGER.info("Set world gen queue for level ["+this.level+"].");
LOGGER.info("Set world gen queue for level [" + this.level.getLevelWrapper().getDimensionName() + "].");
}
@Override
@@ -88,7 +88,7 @@ public class ClientOnlySaveStructure extends AbstractSaveStructure
if (newLevelWrapper instanceof IServerKeyedClientLevel)
{
IServerKeyedClientLevel keyedClientLevel = (IServerKeyedClientLevel) newLevelWrapper;
LOGGER.info("Loading level " + newLevelWrapper.getDimensionType().getDimensionName() + " with key: " + keyedClientLevel.getServerLevelKey());
LOGGER.info("Loading level " + newLevelWrapper.getDimensionName() + " with key: " + keyedClientLevel.getServerLevelKey());
// This world was identified by the server directly, so we can know for sure which folder to use.
return new File(getSaveStructureFolderPath() + File.separatorChar + keyedClientLevel.getServerLevelKey());
}
@@ -102,7 +102,7 @@ public class ClientOnlySaveStructure extends AbstractSaveStructure
// create the matcher if one doesn't exist
if (this.subDimMatcher == null || !this.subDimMatcher.isFindingLevel(newClientLevelWrapper))
{
LOGGER.info("Loading level " + newClientLevelWrapper.getDimensionType().getDimensionName());
LOGGER.info("Loading level " + newClientLevelWrapper.getDimensionName());
List<File> levelFolders = this.getDhDataFoldersForDimension(newClientLevelWrapper.getDimensionType());
this.subDimMatcher = new SubDimensionLevelMatcher(newClientLevelWrapper, this.folder, levelFolders);
@@ -144,8 +144,8 @@ public class ClientOnlySaveStructure extends AbstractSaveStructure
else
{
// no valid sub dimension was found, create a new one
LOGGER.info("Default Sub Dimension not found. Creating: [" + level.getDimensionType().getDimensionName() + "]");
return new File(this.folder, level.getDimensionType().getDimensionName());
LOGGER.info("Default Sub Dimension not found. Creating: [" + level.getDimensionName() + "]");
return new File(this.folder, level.getDimensionName().replaceAll(":", "@@"));
}
}
@@ -375,7 +375,7 @@ public class SubDimensionLevelMatcher implements AutoCloseable
}
private File CreateSubDimFolder(String subDimId) { return new File(this.levelsFolder.getPath() + File.separatorChar + this.currentClientLevel.getDimensionType().getDimensionName(), subDimId); }
private File CreateSubDimFolder(String subDimId) { return new File(this.levelsFolder.getPath() + File.separatorChar + this.currentClientLevel.getDimensionName(), subDimId); }
@Override
public void close() { this.matcherThread.shutdownNow(); }
@@ -189,7 +189,7 @@ public class DhClientServerLevel extends AbstractDhLevel implements IDhClientLev
public void addDebugMenuStringsToList(List<String> messageList)
{
// header
String dimName = this.serverLevelWrapper.getDimensionType().getDimensionName();
String dimName = this.serverLevelWrapper.getDimensionName();
boolean rendering = this.clientside.isRendering();
messageList.add("["+dimName+"] rendering: "+(rendering ? "yes" : "no"));
@@ -77,15 +77,15 @@ public class DhServerLevel extends AbstractDhLevel implements IDhServerLevel
public void close()
{
super.close();
serverside.close();
LOGGER.info("Closed DHLevel for {}", getLevelWrapper());
this.serverside.close();
LOGGER.info("Closed DHLevel for {}", this.getLevelWrapper());
}
@Override
public void doWorldGen()
{
boolean shouldDoWorldGen = true; //todo;
boolean isWorldGenRunning = serverside.worldGenModule.isWorldGenRunning();
boolean isWorldGenRunning = this.serverside.worldGenModule.isWorldGenRunning();
if (shouldDoWorldGen && !isWorldGenRunning)
{
// start world gen
@@ -97,26 +97,23 @@ public class DhServerLevel extends AbstractDhLevel implements IDhServerLevel
serverside.worldGenModule.stopWorldGen(serverside.fullDataFileHandler);
}
if (serverside.worldGenModule.isWorldGenRunning())
if (this.serverside.worldGenModule.isWorldGenRunning())
{
serverside.worldGenModule.worldGenTick(new DhBlockPos2D(0, 0)); // todo;
}
}
@Override
public IServerLevelWrapper getServerLevelWrapper() { return serverLevelWrapper; }
public IServerLevelWrapper getServerLevelWrapper() { return this.serverLevelWrapper; }
@Override
public ILevelWrapper getLevelWrapper() { return getServerLevelWrapper(); }
public ILevelWrapper getLevelWrapper() { return this.getServerLevelWrapper(); }
@Override
public FullDataSourceProviderV2 getFullDataProvider() { return this.serverside.fullDataFileHandler; }
@Override
public AbstractSaveStructure getSaveStructure()
{
return serverside.saveStructure;
}
public AbstractSaveStructure getSaveStructure() { return this.serverside.saveStructure; }
@Override
public boolean hasSkyLight() { return this.serverLevelWrapper.hasSkyLight(); }
@@ -148,7 +145,7 @@ public class DhServerLevel extends AbstractDhLevel implements IDhServerLevel
@Override
public void addDebugMenuStringsToList(List<String> messageList)
{
String dimName = this.serverLevelWrapper.getDimensionType().getDimensionName();
String dimName = this.serverLevelWrapper.getDimensionName();
messageList.add("["+dimName+"]");
}
@@ -145,7 +145,7 @@ public class LodQuadTree extends QuadTree<LodRenderSection> implements IDebugRen
}
catch (Exception e)
{
LOGGER.error("Quad Tree tick exception for dimension: " + this.level.getLevelWrapper().getDimensionType().getDimensionName() + ", exception: " + e.getMessage(), e);
LOGGER.error("Quad Tree tick exception for dimension: " + this.level.getLevelWrapper().getDimensionName() + ", exception: " + e.getMessage(), e);
}
finally
{
@@ -385,6 +385,7 @@ public class FullDataSourceV2DTO implements IBaseDTO<Long>
this.checksum = checksum;
this.byteArray = byteArray;
}
}
}
@@ -138,7 +138,7 @@ public class DhApiWorldProxy implements IDhApiWorldProxy
for (IDhLevel dhLevel : world.getAllLoadedLevels())
{
ILevelWrapper levelWrapper = dhLevel.getLevelWrapper();
String levelDimName = levelWrapper.getDimensionType().getDimensionName().toLowerCase();
String levelDimName = levelWrapper.getDimensionName().toLowerCase();
if (levelDimName.contains(soughtDimName))
{
returnList.add(levelWrapper);
@@ -87,7 +87,7 @@ public class DhClientServerWorld extends AbstractDhWorld implements IDhClientWor
LodUtil.assertTrue(serverLevelWrapper != null);
if (!clientLevelWrapper.getDimensionType().equals(serverLevelWrapper.getDimensionType()))
{
LodUtil.assertNotReach("tryGetServerSideWrapper returned a level for a different dimension. ClientLevelWrapper dim: " + clientLevelWrapper.getDimensionType().getDimensionName() + " ServerLevelWrapper dim: " + serverLevelWrapper.getDimensionType().getDimensionName());
LodUtil.assertNotReach("tryGetServerSideWrapper returned a level for a different dimension. ClientLevelWrapper dim: " + clientLevelWrapper.getDimensionName() + " ServerLevelWrapper dim: " + serverLevelWrapper.getDimensionName());
}
@@ -168,7 +168,7 @@ public class DhClientServerWorld extends AbstractDhWorld implements IDhClientWor
// close each level
for (DhClientServerLevel level : levelsToClose)
{
LOGGER.info("Unloading level " + level.getServerLevelWrapper().getDimensionType().getDimensionName());
LOGGER.info("Unloading level " + level.getServerLevelWrapper().getDimensionName());
// level wrapper shouldn't be null, but just in case
IServerLevelWrapper serverLevelWrapper = level.getServerLevelWrapper();
@@ -175,7 +175,7 @@ public class DhClientWorld extends AbstractDhWorld implements IDhClientWorld
for (DhClientLevel dhClientLevel : this.levels.values())
{
LOGGER.info("Unloading level " + dhClientLevel.getLevelWrapper().getDimensionType().getDimensionName());
LOGGER.info("Unloading level " + dhClientLevel.getLevelWrapper().getDimensionName());
// level wrapper shouldn't be null, but just in case
IClientLevelWrapper clientLevelWrapper = dhClientLevel.getClientLevelWrapper();
@@ -199,11 +199,9 @@ public class DhServerWorld extends AbstractDhWorld implements IDhServerWorld
@Override
public void close()
{
// this.networkServer.close();
for (DhServerLevel level : this.levels.values())
{
LOGGER.info("Unloading level " + level.getLevelWrapper().getDimensionType().getDimensionName());
LOGGER.info("Unloading level " + level.getLevelWrapper().getDimensionName());
// level wrapper shouldn't be null, but just in case
IServerLevelWrapper serverLevelWrapper = level.getServerLevelWrapper();
@@ -24,16 +24,14 @@ import com.seibel.distanthorizons.coreapi.interfaces.dependencyInjection.IBindab
public interface IDimensionTypeWrapper extends IDhApiDimensionTypeWrapper, IBindable
{
@Override
String getDimensionName();
@Override
boolean hasCeiling();
@Override
boolean hasSkyLight();
// there's definitely a better way of doing this, but it should work well enough for now
default boolean isTheEnd() { return this.getDimensionName().equalsIgnoreCase("the_end"); }
boolean isTheEnd();
double getTeleportationScale(IDimensionTypeWrapper to);
}
@@ -39,6 +39,9 @@ public interface ILevelWrapper extends IDhApiLevelWrapper, IBindable
@Override
IDimensionTypeWrapper getDimensionType();
@Override
String getDimensionName();
@Override
boolean hasCeiling();
@@ -38,6 +38,9 @@ public class LevelWrapperTest implements IDhApiLevelWrapper
@Override
public IDhApiDimensionTypeWrapper getDimensionType() { return null; }
@Override
public String getDimensionName() { return null; }
@Override
public EDhApiLevelType getLevelType() { return null; }