diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiDimensionTypeWrapper.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiDimensionTypeWrapper.java index 226ed77a4..44c783425 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiDimensionTypeWrapper.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiDimensionTypeWrapper.java @@ -28,8 +28,6 @@ import com.seibel.distanthorizons.api.interfaces.IDhApiUnsafeWrapper; */ public interface IDhApiDimensionTypeWrapper extends IDhApiUnsafeWrapper { - String getDimensionName(); - boolean hasCeiling(); boolean hasSkyLight(); diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiLevelWrapper.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiLevelWrapper.java index 45bfdb4cb..3bc48f29c 100644 --- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiLevelWrapper.java +++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/world/IDhApiLevelWrapper.java @@ -35,6 +35,9 @@ public interface IDhApiLevelWrapper extends IDhApiUnsafeWrapper { IDhApiDimensionTypeWrapper getDimensionType(); + /** @since API 4.0.0 */ + String getDimensionName(); + EDhApiLevelType getLevelType(); boolean hasCeiling(); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/FullDataSourceV2.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/FullDataSourceV2.java index 2735e76a5..115f403b8 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/FullDataSourceV2.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/FullDataSourceV2.java @@ -182,7 +182,7 @@ public class FullDataSourceV2 implements IDataSource 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 diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/FullDataToRenderDataTransformer.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/FullDataToRenderDataTransformer.java index 48c42149c..ba6cb67fe 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/FullDataToRenderDataTransformer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/transformers/FullDataToRenderDataTransformer.java @@ -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+"]. " + diff --git a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataSourceProviderV2.java b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataSourceProviderV2.java index af105b2e5..873cbbb56 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataSourceProviderV2.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/FullDataSourceProviderV2.java @@ -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) { diff --git a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/GeneratedFullDataSourceProvider.java b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/GeneratedFullDataSourceProvider.java index e970295c9..6771fec20 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/GeneratedFullDataSourceProvider.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/GeneratedFullDataSourceProvider.java @@ -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 diff --git a/core/src/main/java/com/seibel/distanthorizons/core/file/structure/ClientOnlySaveStructure.java b/core/src/main/java/com/seibel/distanthorizons/core/file/structure/ClientOnlySaveStructure.java index deed8d479..cc7aa45ac 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/file/structure/ClientOnlySaveStructure.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/file/structure/ClientOnlySaveStructure.java @@ -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 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(":", "@@")); } } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/file/subDimMatching/SubDimensionLevelMatcher.java b/core/src/main/java/com/seibel/distanthorizons/core/file/subDimMatching/SubDimensionLevelMatcher.java index 91b1c76d6..1442f168f 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/file/subDimMatching/SubDimensionLevelMatcher.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/file/subDimMatching/SubDimensionLevelMatcher.java @@ -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(); } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientServerLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientServerLevel.java index 6a96b0926..3e308447f 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientServerLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientServerLevel.java @@ -189,7 +189,7 @@ public class DhClientServerLevel extends AbstractDhLevel implements IDhClientLev public void addDebugMenuStringsToList(List 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")); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java index fa09eca87..3c538c9b7 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java @@ -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 messageList) { - String dimName = this.serverLevelWrapper.getDimensionType().getDimensionName(); + String dimName = this.serverLevelWrapper.getDimensionName(); messageList.add("["+dimName+"]"); } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/LodQuadTree.java b/core/src/main/java/com/seibel/distanthorizons/core/render/LodQuadTree.java index 1d0b05faa..e04533de4 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/LodQuadTree.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/LodQuadTree.java @@ -145,7 +145,7 @@ public class LodQuadTree extends QuadTree 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 { diff --git a/core/src/main/java/com/seibel/distanthorizons/core/sql/dto/FullDataSourceV2DTO.java b/core/src/main/java/com/seibel/distanthorizons/core/sql/dto/FullDataSourceV2DTO.java index 862ce4942..7b3cf1e0c 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/sql/dto/FullDataSourceV2DTO.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/sql/dto/FullDataSourceV2DTO.java @@ -385,6 +385,7 @@ public class FullDataSourceV2DTO implements IBaseDTO this.checksum = checksum; this.byteArray = byteArray; } + } } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/world/DhApiWorldProxy.java b/core/src/main/java/com/seibel/distanthorizons/core/world/DhApiWorldProxy.java index bc23212f7..b9a943691 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/world/DhApiWorldProxy.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/world/DhApiWorldProxy.java @@ -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); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/world/DhClientServerWorld.java b/core/src/main/java/com/seibel/distanthorizons/core/world/DhClientServerWorld.java index 020f5289f..10cccc3cc 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/world/DhClientServerWorld.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/world/DhClientServerWorld.java @@ -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(); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/world/DhClientWorld.java b/core/src/main/java/com/seibel/distanthorizons/core/world/DhClientWorld.java index d9f752454..a66224e90 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/world/DhClientWorld.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/world/DhClientWorld.java @@ -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(); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/world/DhServerWorld.java b/core/src/main/java/com/seibel/distanthorizons/core/world/DhServerWorld.java index e036733e0..508271a02 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/world/DhServerWorld.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/world/DhServerWorld.java @@ -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(); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IDimensionTypeWrapper.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IDimensionTypeWrapper.java index bf9097608..62b50d2e7 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IDimensionTypeWrapper.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IDimensionTypeWrapper.java @@ -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); } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/ILevelWrapper.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/ILevelWrapper.java index bd55ac822..907c68b25 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/ILevelWrapper.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/ILevelWrapper.java @@ -39,6 +39,9 @@ public interface ILevelWrapper extends IDhApiLevelWrapper, IBindable @Override IDimensionTypeWrapper getDimensionType(); + @Override + String getDimensionName(); + @Override boolean hasCeiling(); diff --git a/core/src/test/java/testItems/worldGeneratorInjection/objects/LevelWrapperTest.java b/core/src/test/java/testItems/worldGeneratorInjection/objects/LevelWrapperTest.java index 2d652cbce..0bcbcaa8d 100644 --- a/core/src/test/java/testItems/worldGeneratorInjection/objects/LevelWrapperTest.java +++ b/core/src/test/java/testItems/worldGeneratorInjection/objects/LevelWrapperTest.java @@ -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; }