diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2b2e0acab..8097c0218 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -30,7 +30,7 @@ build: stage: build parallel: matrix: - - MC_VER: ["1.16.5", "1.17.1", "1.18.2", "1.19.2", "1.19.4", "1.20.1", "1.20.2"] + - MC_VER: ["1.16.5", "1.17.1", "1.18.2", "1.19.2", "1.19.4", "1.20.1", "1.20.2", "1.20.4"] script: # this both runs the unit tests and assembles the code - ./gradlew clean -PmcVer="${MC_VER}" -PinfoGitCommit="${CI_COMMIT_SHA}" -PinfoGitBranch="${CI_COMMIT_BRANCH}" -PinfoBuildSource="GitLab CI (${CI_PIPELINE_ID})" --gradle-user-home cache/; diff --git a/.gitlab/issue_templates/Bug.md b/.gitlab/issue_templates/Bug.md index a6eb95cc2..09f88a5d9 100644 --- a/.gitlab/issue_templates/Bug.md +++ b/.gitlab/issue_templates/Bug.md @@ -6,13 +6,13 @@ Or click the checkbox once the issue has been created. --> 1. [ ] Check the FAQ to see if your issue has already been reported and has a solution: - [Problems-and-solutions](https://gitlab.com/jeseibel/minecraft-lod-mod/-/wikis/2-frequently-asked-questions/2-problems-and-solutions/Problems-and-Solutions) + [Problems-and-solutions](https://gitlab.com/jeseibel/distant-horizons/-/wikis/2-frequently-asked-questions/2-problems-and-solutions/Problems-and-Solutions) 2. [ ] Make sure you are not using any mods on the incompatible list: - [Mod support FAQ](https://gitlab.com/jeseibel/minecraft-lod-mod/-/wikis/2-frequently-asked-questions/4-mod-support/Mod-Support) + [Mod support FAQ](https://gitlab.com/jeseibel/distant-horizons/-/wikis/2-frequently-asked-questions/4-mod-support/Mod-Support) 3. [ ] Check the existing issues to verify that your bug hasn't already been submitted: - [Issues](https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues/) + [Issues](https://gitlab.com/jeseibel/distant-horizons/-/issues/) 4. [ ] Upload Minecraft's crash report and/or log. \ Minecraft crash reports are located in: `.minecraft/crash-reports` \ diff --git a/.gitlab/issue_templates/FeatureRequest.md b/.gitlab/issue_templates/FeatureRequest.md index cc66352f2..0be5723bf 100644 --- a/.gitlab/issue_templates/FeatureRequest.md +++ b/.gitlab/issue_templates/FeatureRequest.md @@ -1,4 +1,4 @@ -- [ ] Check the existing [feature requests](https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues/?sort=updated_desc&state=opened&label_name%5B%5D=Feature) to verify that your feature hasn't already been suggested. +- [ ] Check the existing [feature requests](https://gitlab.com/jeseibel/distant-horizons/-/issues/?sort=updated_desc&state=opened&label_name%5B%5D=Feature) to verify that your feature hasn't already been suggested. 1. **Describe the feature**: diff --git a/.gitlab/issue_templates/ImprovementRequest.md b/.gitlab/issue_templates/ImprovementRequest.md index 735cb48a7..34153c989 100644 --- a/.gitlab/issue_templates/ImprovementRequest.md +++ b/.gitlab/issue_templates/ImprovementRequest.md @@ -1,3 +1,3 @@ -1. Check the existing [improvement requests](https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues/?sort=updated_desc&state=all&label_name%5B%5D=Improvement) to verify that your improvement hasn't already been suggested. +1. Check the existing [improvement requests](https://gitlab.com/jeseibel/distant-horizons/-/issues/?sort=updated_desc&state=all&label_name%5B%5D=Improvement) to verify that your improvement hasn't already been suggested. 2. **Describe the improvement**: diff --git a/Readme.md b/Readme.md index f37ac9c2a..92244ca27 100644 --- a/Readme.md +++ b/Readme.md @@ -77,10 +77,10 @@ Modmenu: 1.16.22 ### Plugin and Library versions -Fabric loom: 1.1.+\ -Forge gradle (Using Architectury): 3.4-SNAPSHOT\ +Gradle: 8.5\ +Fabric loom: 1.4-SNAPSHOT\ +Architectury loom (Forge gradle replacement): 1.4-SNAPSHOT\ Sponge vanilla gradle: 0.2.1-SNAPSHOT\ -Sponge mixin: 0.8.5\ Java Preprocessor plugin: Manifold Preprocessor
@@ -115,7 +115,7 @@ To switch between different Minecraft versions, change `mcVer=1.?` in the `gradl If running in an IDE, to ensure the IDE noticed the version change, run any gradle command to refresh gradle. (In IntellJ you will also need to do a gradle sync if it didn't happen automatically.) >Note: There may be a `java.nio.file.FileSystemException` thrown when running the command after switching versions. To fix it, either restart your IDE (as your IDE is probably locking a file) or use a tool like LockHunter to unlock the linked file(s). (Generally it is a lib file under `common\build\lib`, `forge\build\lib`, or `fabric\build\lib`). \ > If anyone knows how to solve this issue please let us know here: \ -> https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues/233 +> https://gitlab.com/jeseibel/distant-horizons/-/issues/233
@@ -134,7 +134,7 @@ From the File Explorer: 6. The compiled jar file will be in the folder `Merged` From the command line: -1. `git clone --recurse-submodules https://gitlab.com/jeseibel/minecraft-lod-mod.git` +1. `git clone --recurse-submodules https://gitlab.com/gitlab.com/jeseibel/distant-horizons.git` 2. `cd minecraft-lod-mod` 3. `./gradlew assemble` 4. `./gradlew mergeJars` diff --git a/build.gradle b/build.gradle index b56f1e137..ef06dab95 100644 --- a/build.gradle +++ b/build.gradle @@ -10,11 +10,11 @@ plugins { // Manifold preprocessor id "systems.manifold.manifold-gradle-plugin" version "0.0.2-alpha" - // Provides mc libraries to core +// // Provides mc libraries to core // id "org.spongepowered.gradle.vanilla" version '0.2.1-SNAPSHOT' apply false // Architectury is used here only as a replacement for forge's own loom - id "dev.architectury.loom" version "1.1.+" apply false + id "dev.architectury.loom" version "1.4-SNAPSHOT" apply false } /** @@ -23,55 +23,32 @@ plugins { * @param mcVers array of all MC versions * @param mcIndex array index of the currently active MC version */ -def writeBuildGradlePredefine(List mcVers, int mcIndex) { - ArrayList redefineList = new ArrayList() - - for (int i = 0; i < mcVers.size(); i++) { - String mcStr = mcVers[i].replace(".", "_") - - if (mcIndex < i) { - // exclusive before - // FIXME doesn't function correctly for 1.16.5 (IE the first item in the list) - redefineList.add("PRE_MC_" + mcStr) - } - if (mcIndex <= i) { - // inclusive before - redefineList.add("PRE_AND_MC_" + mcStr) - } - - if (mcIndex == i) { - // exact - redefineList.add("MC_" + mcStr) - } - - if (mcIndex > i) { - // inclusive after - redefineList.add("POST_AND_MC_" + mcStr) - } - if (mcIndex >= i) { - // exclusive after - redefineList.add("POST_MC_" + mcStr) - } - } - +def writeBuildGradlePredefine(List mcVers, int mcIndex) +{ // Build the list of preprocessors to use - StringBuilder sb = new StringBuilder() + StringBuilder sb = new StringBuilder(); - sb.append("# DON'T TOUCH THIS FILE, This is handled by the build script\n") + sb.append("# DON'T TOUCH THIS FILE, This is handled by the build script\n"); + + + for (int i = 0; i < mcVers.size(); i++) + { + String verStr = mcVers[i].replace(".", "_"); + sb.append("MC_" + verStr + "=" + i.toString() + "\n"); + + if (mcIndex == i) + sb.append("MC_VER=" + i.toString() + "\n"); + } + // Check if this is a development build - if (mod_version.toLowerCase().contains("dev")) { + if (mod_version.toLowerCase().contains("dev")) + { // WARNING: only use this for logging, we don't want to have confusion // when a method doesn't work correctly in the release build. - sb.append("DEV_BUILD") - sb.append("=\n") - } - - // Build the MC version preprocessors - for (String redefinedVersion : redefineList) { - sb.append(redefinedVersion) - sb.append("=\n") + sb.append("DEV_BUILD=\n"); } + new File(projectDir, "build.properties").text = sb.toString() } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/forge/LodForgeMethodCaller.java b/common/src/main/java/com/seibel/distanthorizons/common/forge/LodForgeMethodCaller.java index 0d9b8da4a..afa8fa468 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/forge/LodForgeMethodCaller.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/forge/LodForgeMethodCaller.java @@ -22,7 +22,7 @@ package com.seibel.distanthorizons.common.forge; import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftClientWrapper; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.core.Direction; -#if POST_MC_1_19_2 +#if MC_VER >= MC_1_19_2 import net.minecraft.util.RandomSource; #endif import net.minecraft.world.level.ColorResolver; @@ -41,7 +41,7 @@ import java.util.Random; */ public interface LodForgeMethodCaller { - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 List getQuads(MinecraftClientWrapper mc, Block block, BlockState blockState, Direction direction, Random random); // FIXME: For 1.19 #else List getQuads(MinecraftClientWrapper mc, Block block, BlockState blockState, Direction direction, RandomSource random); // FIXME: For 1.19 diff --git a/common/src/main/java/com/seibel/distanthorizons/common/rendering/SeamlessOverdraw.java b/common/src/main/java/com/seibel/distanthorizons/common/rendering/SeamlessOverdraw.java index 264dc636a..e6795c666 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/rendering/SeamlessOverdraw.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/rendering/SeamlessOverdraw.java @@ -19,11 +19,9 @@ package com.seibel.distanthorizons.common.rendering; -#if PRE_MC_1_19_4 - +#if MC_VER < MC_1_19_4 import com.mojang.math.Matrix4f; #else - import org.joml.Matrix4f; #endif import com.seibel.distanthorizons.core.config.Config; @@ -43,7 +41,7 @@ public class SeamlessOverdraw { float[] matrixFloatArray; - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 FloatBuffer matrixFloatBuffer = FloatBuffer.allocate(16); minecraftProjectionMatrix.store(matrixFloatBuffer); matrixFloatArray = matrixFloatBuffer.array(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/McObjectConverter.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/McObjectConverter.java index c11e57c77..b37282f4d 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/McObjectConverter.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/McObjectConverter.java @@ -23,7 +23,7 @@ import java.nio.FloatBuffer; import java.util.function.BiConsumer; import java.util.function.Consumer; -#if PRE_MC_1_19_4 +#if MC_VER < MC_1_19_4 import com.mojang.math.Matrix4f; #else import org.joml.Matrix4f; @@ -54,7 +54,7 @@ public class McObjectConverter /** Taken from Minecraft's com.mojang.math.Matrix4f class from 1.18.2 */ private static void storeMatrix(Matrix4f matrix, FloatBuffer buffer) { - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 matrix.store(buffer); #else // Mojang starts to use joml's Matrix4f libary in 1.19.3 so we copy their store method and use it here if its newer than 1.19.3 @@ -83,7 +83,7 @@ public class McObjectConverter FloatBuffer buffer = FloatBuffer.allocate(16); storeMatrix(mcMatrix, buffer); Mat4f matrix = new Mat4f(buffer); - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 matrix.transpose(); // In 1.19.3 and later, we no longer need to transpose it #endif return matrix; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/VersionConstants.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/VersionConstants.java index 643a23f25..925ae4adb 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/VersionConstants.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/VersionConstants.java @@ -59,7 +59,7 @@ public class VersionConstants implements IVersionConstants @Override public String getMinecraftVersion() { - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 return Minecraft.getInstance().getGame().getVersion().getId(); #else return SharedConstants.getCurrentVersion().getId(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/WrapperFactory.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/WrapperFactory.java index 625ff23bd..0dd89b7a7 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/WrapperFactory.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/WrapperFactory.java @@ -106,8 +106,7 @@ public class WrapperFactory implements IWrapperFactory } } - // MC 1.16, 1.18, 1.19, 1.20 - #if POST_MC_1_17_1 || MC_1_16_5 + #if MC_VER // Always true else if (objectArray.length == 2) { // correct number of parameters from the API @@ -164,8 +163,7 @@ public class WrapperFactory implements IWrapperFactory "Chunk wrapper creation failed. \n" + "Expected parameters: \n"); - // MC 1.16, 1.18, 1.19, 1.20 - #if POST_MC_1_17_1 || MC_1_16_5 + #if MC_VER // Always true message.append("[" + ChunkAccess.class.getName() + "], \n"); message.append("[ServerLevel] or [ClientLevel]. \n"); // Classes are not referenced by names to avoid exception when one is missing #else diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BiomeWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BiomeWrapper.java index df17474c7..7d6667d7e 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BiomeWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BiomeWrapper.java @@ -33,18 +33,10 @@ import org.apache.logging.log4j.Logger; import com.seibel.distanthorizons.core.wrapperInterfaces.world.IBiomeWrapper; import net.minecraft.client.Minecraft; -#if POST_MC_1_17 -import net.minecraft.core.Holder; -import net.minecraft.resources.RegistryOps; -#endif -#if POST_MC_1_19_2 -#endif - - -#if MC_1_16_5 || MC_1_17_1 +#if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 import net.minecraft.core.Registry; -#elif MC_1_18_2 || MC_1_19_2 +#elif MC_VER == MC_1_18_2 || MC_VER == MC_1_19_2 import net.minecraft.core.Holder; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; @@ -56,7 +48,7 @@ import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.biome.Biome; -#if !PRE_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.world.level.biome.Biomes; #endif @@ -66,7 +58,7 @@ public class BiomeWrapper implements IBiomeWrapper { private static final Logger LOGGER = LogManager.getLogger(); - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 public static final ConcurrentMap WRAPPER_BY_BIOME = new ConcurrentHashMap<>(); #else public static final ConcurrentMap, BiomeWrapper> WRAPPER_BY_BIOME = new ConcurrentHashMap<>(); @@ -89,7 +81,7 @@ public class BiomeWrapper implements IBiomeWrapper // properties // - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 public final Biome biome; #else public final Holder biome; @@ -104,7 +96,7 @@ public class BiomeWrapper implements IBiomeWrapper // constructors // //==============// - static public IBiomeWrapper getBiomeWrapper(#if PRE_MC_1_18_2 Biome #else Holder #endif biome, ILevelWrapper levelWrapper) + static public IBiomeWrapper getBiomeWrapper(#if MC_VER < MC_1_18_2 Biome #else Holder #endif biome, ILevelWrapper levelWrapper) { if (biome == null) { @@ -124,7 +116,7 @@ public class BiomeWrapper implements IBiomeWrapper } } - private BiomeWrapper(#if PRE_MC_1_18_2 Biome #else Holder #endif biome, ILevelWrapper levelWrapper) + private BiomeWrapper(#if MC_VER < MC_1_18_2 Biome #else Holder #endif biome, ILevelWrapper levelWrapper) { this.biome = biome; this.serialString = this.serialize(levelWrapper); @@ -145,7 +137,7 @@ public class BiomeWrapper implements IBiomeWrapper return EMPTY_STRING; } - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 return biome.toString(); #else return this.biome.unwrapKey().orElse(Biomes.THE_VOID).registry().toString(); @@ -214,9 +206,9 @@ public class BiomeWrapper implements IBiomeWrapper net.minecraft.core.RegistryAccess registryAccess = ((Level) levelWrapper.getWrappedMcObject()).registryAccess(); ResourceLocation resourceLocation; - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 resourceLocation = registryAccess.registryOrThrow(Registry.BIOME_REGISTRY).getKey(this.biome); - #elif MC_1_18_2 || MC_1_19_2 + #elif MC_VER == MC_1_18_2 || MC_VER == MC_1_19_2 resourceLocation = registryAccess.registryOrThrow(Registry.BIOME_REGISTRY).getKey(this.biome.value()); #else resourceLocation = registryAccess.registryOrThrow(Registries.BIOME).getKey(this.biome.value()); @@ -225,7 +217,7 @@ public class BiomeWrapper implements IBiomeWrapper if (resourceLocation == null) { String biomeName; - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 biomeName = this.biome.toString(); #else biomeName = this.biome.value().toString(); @@ -277,10 +269,10 @@ public class BiomeWrapper implements IBiomeWrapper net.minecraft.core.RegistryAccess registryAccess = level.registryAccess(); boolean success; - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 Biome biome = registryAccess.registryOrThrow(Registry.BIOME_REGISTRY).get(resourceLocation); success = (biome != null); - #elif MC_1_18_2 || MC_1_19_2 + #elif MC_VER == MC_1_18_2 || MC_VER == MC_1_19_2 Biome unwrappedBiome = registryAccess.registryOrThrow(Registry.BIOME_REGISTRY).get(resourceLocation); success = (unwrappedBiome != null); Holder biome = new Holder.Direct<>(unwrappedBiome); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java index a95cf8c41..89cbfcaaa 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/BlockStateWrapper.java @@ -23,7 +23,6 @@ import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.wrapperInterfaces.block.IBlockStateWrapper; import com.seibel.distanthorizons.core.wrapperInterfaces.world.ILevelWrapper; -import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; @@ -33,11 +32,11 @@ import java.io.IOException; import java.util.*; import java.util.concurrent.ConcurrentHashMap; -#if MC_1_16_5 || MC_1_17_1 +#if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 import net.minecraft.core.Registry; import net.minecraft.core.BlockPos; import net.minecraft.world.level.EmptyBlockGetter; -#elif MC_1_18_2 || MC_1_19_2 +#elif MC_VER == MC_1_18_2 || MC_VER == MC_1_19_2 import net.minecraft.client.Minecraft; import net.minecraft.world.level.Level; import net.minecraft.core.BlockPos; @@ -252,7 +251,7 @@ public class BlockStateWrapper implements IBlockStateWrapper @Override public boolean isSolid() { - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 return this.blockState.getMaterial().isSolid(); #else return !this.blockState.getCollisionShape(EmptyBlockGetter.INSTANCE, BlockPos.ZERO).isEmpty(); @@ -267,7 +266,7 @@ public class BlockStateWrapper implements IBlockStateWrapper return false; } - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 return this.blockState.getMaterial().isLiquid() || !this.blockState.getFluidState().isEmpty(); #else return !this.blockState.getFluidState().isEmpty(); @@ -293,15 +292,15 @@ public class BlockStateWrapper implements IBlockStateWrapper // older versions of MC have a static registry - #if !(MC_1_16_5 || MC_1_17_1) + #if MC_VER > MC_1_17_1 Level level = (Level)levelWrapper.getWrappedMcObject(); net.minecraft.core.RegistryAccess registryAccess = level.registryAccess(); #endif ResourceLocation resourceLocation; - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 resourceLocation = Registry.BLOCK.getKey(this.blockState.getBlock()); - #elif MC_1_18_2 || MC_1_19_2 + #elif MC_VER == MC_1_18_2 || MC_VER == MC_1_19_2 resourceLocation = registryAccess.registryOrThrow(Registry.BLOCK_REGISTRY).getKey(this.blockState.getBlock()); #else resourceLocation = registryAccess.registryOrThrow(Registries.BLOCK).getKey(this.blockState.getBlock()); @@ -356,14 +355,14 @@ public class BlockStateWrapper implements IBlockStateWrapper try { - #if !(MC_1_16_5 || MC_1_17_1) + #if MC_VER > MC_1_17_1 Level level = (Level)Objects.requireNonNull(levelWrapper.getWrappedMcObject()); #endif Block block; - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 block = Registry.BLOCK.get(resourceLocation); - #elif MC_1_18_2 || MC_1_19_2 + #elif MC_VER == MC_1_18_2 || MC_VER == MC_1_19_2 net.minecraft.core.RegistryAccess registryAccess = level.registryAccess(); block = registryAccess.registryOrThrow(Registry.BLOCK_REGISTRY).get(resourceLocation); #else diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TextureAtlasSpriteWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TextureAtlasSpriteWrapper.java index b5334f956..3b777e533 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TextureAtlasSpriteWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TextureAtlasSpriteWrapper.java @@ -40,11 +40,11 @@ public class TextureAtlasSpriteWrapper */ public static int getPixelRGBA(TextureAtlasSprite sprite, int frameIndex, int x, int y) { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 return sprite.mainImage[0].getPixelRGBA( x + sprite.framesX[frameIndex] * sprite.getWidth(), y + sprite.framesY[frameIndex] * sprite.getHeight()); - #elif PRE_MC_1_19_4 + #elif MC_VER < MC_1_19_4 if (sprite.animatedTexture != null) { x += sprite.animatedTexture.getFrameX(frameIndex) * sprite.width; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java index 7a8a92e6e..da3e8d4cf 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideFast.java @@ -50,7 +50,7 @@ public class TintGetterOverrideFast implements BlockAndTintGetter private Biome _getBiome(BlockPos pos) { - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 return parent.getBiome(pos).value(); #else return parent.getBiome(pos); @@ -167,7 +167,7 @@ public class TintGetterOverrideFast implements BlockAndTintGetter return parent.getMaxBuildHeight(); } - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 @Override public Optional getBlockEntity(BlockPos blockPos, BlockEntityType blockEntityType) { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java index 94015d4de..240c4e848 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintGetterOverrideSmooth.java @@ -53,7 +53,7 @@ public class TintGetterOverrideSmooth implements BlockAndTintGetter private Biome _getBiome(BlockPos pos) { - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 return parent.getBiome(pos).value(); #else return parent.getBiome(pos); @@ -193,7 +193,7 @@ public class TintGetterOverrideSmooth implements BlockAndTintGetter return parent.getMaxBuildHeight(); } - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 @Override public Optional getBlockEntity(BlockPos blockPos, BlockEntityType blockEntityType) { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintWithoutLevelOverrider.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintWithoutLevelOverrider.java index 4f35469ea..6f425019e 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintWithoutLevelOverrider.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintWithoutLevelOverrider.java @@ -29,7 +29,7 @@ import net.minecraft.world.level.lighting.LevelLightEngine; import net.minecraft.world.level.material.FluidState; import org.jetbrains.annotations.Nullable; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.core.Holder; #endif @@ -46,9 +46,9 @@ public class TintWithoutLevelOverrider implements BlockAndTintGetter { return colorResolver.getColor(_unwrap(biome.biome), blockPos.getX(), blockPos.getZ()); } - private Biome _unwrap(#if POST_MC_1_18_2 Holder #else Biome #endif biome) + private Biome _unwrap(#if MC_VER >= MC_1_18_2 Holder #else Biome #endif biome) { - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 return biome.value(); #else return biome; @@ -84,7 +84,7 @@ public class TintWithoutLevelOverrider implements BlockAndTintGetter } - #if MC_1_17_1 || POST_MC_1_18_2 + #if MC_VER >= MC_1_17_1 @Override public int getHeight() { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintWithoutLevelSmoothOverrider.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintWithoutLevelSmoothOverrider.java index c4f4d4438..04a9b41b1 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintWithoutLevelSmoothOverrider.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/TintWithoutLevelSmoothOverrider.java @@ -30,7 +30,7 @@ import net.minecraft.world.level.lighting.LevelLightEngine; import net.minecraft.world.level.material.FluidState; import org.jetbrains.annotations.Nullable; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.core.Holder; #endif @@ -49,9 +49,9 @@ public class TintWithoutLevelSmoothOverrider implements BlockAndTintGetter { return colorResolver.getColor(_unwrap(biome.biome), blockPos.getX(), blockPos.getZ()); } - private Biome _unwrap(#if POST_MC_1_18_2 Holder #else Biome #endif biome) + private Biome _unwrap(#if MC_VER >= MC_1_18_2 Holder #else Biome #endif biome) { - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 return biome.value(); #else return biome; @@ -116,7 +116,7 @@ public class TintWithoutLevelSmoothOverrider implements BlockAndTintGetter } - #if MC_1_17_1 || POST_MC_1_18_2 + #if MC_VER >= MC_1_17_1 @Override public int getHeight() { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ClientBlockDetailMap.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ClientBlockDetailMap.java index e078d6685..e05b1a966 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ClientBlockDetailMap.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ClientBlockDetailMap.java @@ -29,7 +29,7 @@ import java.util.concurrent.ConcurrentHashMap; public class ClientBlockDetailMap { private final ConcurrentHashMap blockCache = new ConcurrentHashMap<>(); - //private final ConcurrentHashMap<#if PRE_MC_1_18_2 Biome #else Holder #endif, Biome> biomeMap = new ConcurrentHashMap<>(); + //private final ConcurrentHashMap<#if MC_VER < MC_1_18_2 Biome #else Holder #endif, Biome> biomeMap = new ConcurrentHashMap<>(); private final ClientLevelWrapper level; public ClientBlockDetailMap(ClientLevelWrapper level) { this.level = level; } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ClientBlockStateCache.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ClientBlockStateCache.java index a14db741f..9bb61fcac 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ClientBlockStateCache.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ClientBlockStateCache.java @@ -38,7 +38,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.FlowerBlock; import net.minecraft.world.level.block.LeavesBlock; import net.minecraft.world.level.block.RotatedPillarBlock; -#if POST_MC_1_19_2 +#if MC_VER >= MC_1_19_2 import net.minecraft.util.RandomSource; #else import java.util.Random; @@ -60,7 +60,7 @@ public class ClientBlockStateCache private static final HashSet BLOCK_STATES_THAT_NEED_LEVEL = new HashSet<>(); private static final HashSet BROKEN_BLOCK_STATES = new HashSet<>(); - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 public static final Random random = new Random(0); #else public static final RandomSource random = RandomSource.create(); @@ -91,18 +91,20 @@ public class ClientBlockStateCache { Default, Flower, - Leaves; + Leaves, + Chisel; static ColorMode getColorMode(Block b) { if (b instanceof LeavesBlock) return Leaves; if (b instanceof FlowerBlock) return Flower; + if (b.toString().equals("Block{chiselsandbits:chiseled}")) return Chisel; return Default; } } private static int getWidth(TextureAtlasSprite texture) { - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 return texture.getWidth(); #else return texture.contents().width(); @@ -111,7 +113,7 @@ public class ClientBlockStateCache private static int getHeight(TextureAtlasSprite texture) { - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 return texture.getHeight(); #else return texture.contents().height(); @@ -160,7 +162,14 @@ public class ClientBlockStateCache { scale = FLOWER_COLOR_SCALE; } - + //make Chiseled block not render + else if (colorMode == ColorMode.Chisel) + { + r = 0; + g = 0; + b = 0; + a = 0; + } count += scale; alpha += a * a * scale; red += r * r * scale; @@ -211,7 +220,7 @@ public class ClientBlockStateCache needShade = quads.get(0).isShade(); tintIndex = quads.get(0).getTintIndex(); baseColor = calculateColorFromTexture( - #if PRE_MC_1_17_1 quads.get(0).sprite, + #if MC_VER < MC_1_17_1 quads.get(0).sprite, #else quads.get(0).getSprite(), #endif ColorMode.getColorMode(blockState.getBlock())); } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ServerBlockDetailMap.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ServerBlockDetailMap.java index 453761f53..22dfd9ca8 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ServerBlockDetailMap.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/block/cache/ServerBlockDetailMap.java @@ -29,7 +29,7 @@ import net.minecraft.world.level.block.state.BlockState; public class ServerBlockDetailMap { private final ConcurrentHashMap blockCache = new ConcurrentHashMap<>(); - //private final ConcurrentHashMap<#if PRE_MC_1_18_2 Biome #else Holder #endif, Biome> biomeMap = new ConcurrentHashMap<>(); + //private final ConcurrentHashMap<#if MC_VER < MC_1_18_2 Biome #else Holder #endif, Biome> biomeMap = new ConcurrentHashMap<>(); private final ServerLevelWrapper level; public ServerBlockDetailMap(ServerLevelWrapper level) { this.level = level; } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/chunk/ChunkWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/chunk/ChunkWrapper.java index 1bd404c15..0be1866c4 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/chunk/ChunkWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/chunk/ChunkWrapper.java @@ -49,27 +49,27 @@ import org.apache.logging.log4j.Logger; import java.util.*; import java.util.concurrent.ConcurrentLinkedQueue; -#if POST_MC_1_17_1 +#if MC_VER >= MC_1_17_1 import net.minecraft.core.QuartPos; #endif -#if MC_1_16_5 +#if MC_VER == MC_1_16_5 import net.minecraft.world.level.chunk.LevelChunkSection; #endif -#if MC_1_17_1 +#if MC_VER == MC_1_17_1 import net.minecraft.world.level.chunk.LevelChunkSection; #endif -#if MC_1_18_2 +#if MC_VER == MC_1_18_2 import net.minecraft.world.level.chunk.LevelChunkSection; #endif -#if MC_1_19_2 || MC_1_19_4 +#if MC_VER == MC_1_19_2 || MC_VER == MC_1_19_4 import net.minecraft.world.level.chunk.LevelChunkSection; #endif -#if POST_MC_1_20_1 +#if MC_VER >= MC_1_20_1 import net.minecraft.world.level.chunk.LevelChunkSection; import net.minecraft.world.level.lighting.LevelLightEngine; import net.minecraft.core.SectionPos; @@ -102,6 +102,9 @@ public class ChunkWrapper implements IChunkWrapper private boolean useDhLighting; + private int minNonEmptyHeight = Integer.MIN_VALUE; + private int maxNonEmptyHeight = Integer.MAX_VALUE; + /** * Due to vanilla `isClientLightReady()` not being designed for use by a non-render thread, it may return 'true' * before the light engine has ticked, (right after all light changes is marked by the engine to be processed). @@ -148,7 +151,7 @@ public class ChunkWrapper implements IChunkWrapper @Override public int getHeight() { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 return 255; #else return this.chunk.getHeight(); @@ -158,7 +161,7 @@ public class ChunkWrapper implements IChunkWrapper @Override public int getMinBuildHeight() { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 return 0; #else return this.chunk.getMinBuildHeight(); @@ -168,8 +171,18 @@ public class ChunkWrapper implements IChunkWrapper public int getMaxBuildHeight() { return this.chunk.getMaxBuildHeight(); } @Override - public int getMinFilledHeight() + public int getMinNonEmptyHeight() { + if (this.minNonEmptyHeight != Integer.MIN_VALUE) + { + return this.minNonEmptyHeight; + } + + + // default if every section is empty or missing + this.minNonEmptyHeight = this.getMinBuildHeight(); + + // determine the lowest empty section (bottom up) LevelChunkSection[] sections = this.chunk.getSections(); for (int index = 0; index < sections.length; index++) { @@ -178,27 +191,65 @@ public class ChunkWrapper implements IChunkWrapper continue; } - #if MC_1_16_5 - if (!sections[index].isEmpty()) + if (!isChunkSectionEmpty(sections[index])) { - // convert from an index to a block coordinate - return this.chunk.getSections()[index].bottomBlockY() * 16; + this.minNonEmptyHeight = this.getChunkSectionMinHeight(index); + break; } - #elif MC_1_17_1 - if (!sections[index].isEmpty()) - { - // convert from an index to a block coordinate - return this.chunk.getSections()[index].bottomBlockY() * 16; - } - #else - if (!sections[index].hasOnlyAir()) - { - // convert from an index to a block coordinate - return this.chunk.getSectionYFromSectionIndex(index) * 16; - } - #endif } - return Integer.MAX_VALUE; + + return this.minNonEmptyHeight; + } + + + @Override + public int getMaxNonEmptyHeight() + { + if (this.maxNonEmptyHeight != Integer.MAX_VALUE) + { + return this.maxNonEmptyHeight; + } + + + // default if every section is empty or missing + this.maxNonEmptyHeight = this.getMaxBuildHeight(); + + // determine the highest empty section (top down) + LevelChunkSection[] sections = this.chunk.getSections(); + for (int index = sections.length-1; index >= 0; index--) + { + if (sections[index] == null) + { + continue; + } + + if (!isChunkSectionEmpty(sections[index])) + { + this.maxNonEmptyHeight = this.getChunkSectionMinHeight(index) + 16; + break; + } + } + + return this.maxNonEmptyHeight; + } + private static boolean isChunkSectionEmpty(LevelChunkSection section) + { + #if MC_VER == MC_1_16_5 + return section.isEmpty(); + #elif MC_VER == MC_1_17_1 + return section.isEmpty(); + #else + return section.hasOnlyAir(); + #endif + } + private int getChunkSectionMinHeight(int index) + { + // convert from an index to a block coordinate + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 + return this.chunk.getSections()[index].bottomBlockY() * 16; + #else + return this.chunk.getSectionYFromSectionIndex(index) * 16; + #endif } @@ -213,15 +264,15 @@ public class ChunkWrapper implements IChunkWrapper @Override public IBiomeWrapper getBiome(int relX, int relY, int relZ) { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 return BiomeWrapper.getBiomeWrapper(this.chunk.getBiomes().getNoiseBiome( relX >> 2, relY >> 2, relZ >> 2), this.wrappedLevel); - #elif PRE_MC_1_18_2 + #elif MC_VER < MC_1_18_2 return BiomeWrapper.getBiomeWrapper(this.chunk.getBiomes().getNoiseBiome( QuartPos.fromBlock(relX), QuartPos.fromBlock(relY), QuartPos.fromBlock(relZ)), this.wrappedLevel); - #elif PRE_MC_1_18_2 + #elif MC_VER < MC_1_18_2 return BiomeWrapper.getBiomeWrapper(this.chunk.getNoiseBiome( QuartPos.fromBlock(relX), QuartPos.fromBlock(relY), QuartPos.fromBlock(relZ)), this.wrappedLevel); @@ -267,7 +318,7 @@ public class ChunkWrapper implements IChunkWrapper } - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 return false; // MC's lighting engine doesn't work consistently enough to trust for 1.16 or 1.17 #else if (this.chunk instanceof LevelChunk) @@ -377,8 +428,12 @@ public class ChunkWrapper implements IChunkWrapper } } + /** + * FIXME synchronized is necessary for a rare issue where this method is called from two separate threads at the same time + * before the list has finished populating. + */ @Override - public ArrayList getBlockLightPosList() + public synchronized ArrayList getBlockLightPosList() { // only populate the list once if (this.blockLightPosList == null) @@ -386,7 +441,7 @@ public class ChunkWrapper implements IChunkWrapper this.blockLightPosList = new ArrayList<>(); - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 this.chunk.getLights().forEach((blockPos) -> { this.blockLightPosList.add(new DhBlockPos(blockPos.getX(), blockPos.getY(), blockPos.getZ())); @@ -453,7 +508,7 @@ public class ChunkWrapper implements IChunkWrapper public static void syncedUpdateClientLightStatus() { - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 // TODO: Check what to do in 1.18.1 and older // since we don't currently handle this list, @@ -480,16 +535,16 @@ public class ChunkWrapper implements IChunkWrapper LevelChunk levelChunk = (LevelChunk) this.chunk; ClientChunkCache clientChunkCache = ((ClientLevel) levelChunk.getLevel()).getChunkSource(); this.isMcClientLightingCorrect = clientChunkCache.getChunkForLighting(this.chunk.getPos().x, this.chunk.getPos().z) != null && - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER <= MC_1_17_1 levelChunk.isLightCorrect(); - #elif PRE_MC_1_20_1 + #elif MC_VER < MC_1_20_1 levelChunk.isClientLightReady(); #else checkLightSectionsOnChunk(levelChunk, levelChunk.getLevel().getLightEngine()); #endif } } - #if POST_MC_1_20_1 + #if MC_VER >= MC_1_20_1 private static boolean checkLightSectionsOnChunk(LevelChunk chunk, LevelLightEngine engine) { LevelChunkSection[] sections = chunk.getSections(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/ClassicConfigGUI.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/ClassicConfigGUI.java index 0df21fe0c..7577120fb 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/ClassicConfigGUI.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/ClassicConfigGUI.java @@ -35,7 +35,7 @@ import com.seibel.distanthorizons.coreapi.ModInfo; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.Font; -#if PRE_MC_1_20_1 +#if MC_VER < MC_1_20_1 import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.gui.GuiComponent; #else @@ -49,7 +49,7 @@ import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import net.minecraft.client.resources.language.I18n; // translation -#if POST_MC_1_17_1 +#if MC_VER >= MC_1_17_1 import net.minecraft.client.gui.narration.NarratableEntry; #endif import net.minecraft.resources.ResourceLocation; @@ -278,7 +278,7 @@ public class ClassicConfigGUI Objects.requireNonNull(minecraft).setScreen(parent); })); - this.list = new ConfigListWidget(this.minecraft, this.width * 2, this.height, 32, this.height - 32, 25); + this.list = new ConfigListWidget(this.minecraft, this.width * 2, this.height, 32, 32, 25); if (this.minecraft != null && this.minecraft.level != null) this.list.setRenderBackground(false); @@ -379,13 +379,13 @@ public class ClassicConfigGUI } @Override - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 public void render(PoseStack matrices, int mouseX, int mouseY, float delta) #else public void render(GuiGraphics matrices, int mouseX, int mouseY, float delta) #endif { - #if PRE_MC_1_20_2 // 1.20.2 now enables this by default in the `this.list.render` function + #if MC_VER < MC_1_20_2 // 1.20.2 now enables this by default in the `this.list.render` function this.renderBackground(matrices); // Renders background #else super.render(matrices, mouseX, mouseY, delta); @@ -441,7 +441,7 @@ public class ClassicConfigGUI } } } - #if PRE_MC_1_20_2 + #if MC_VER < MC_1_20_2 super.render(matrices, mouseX, mouseY, delta); #endif } @@ -537,9 +537,13 @@ public class ClassicConfigGUI { Font textRenderer; - public ConfigListWidget(Minecraft minecraftClient, int i, int j, int k, int l, int m) + public ConfigListWidget(Minecraft minecraftClient, int canvasWidth, int canvasHeight, int topMargin, int botMargin, int itemSpacing) { - super(minecraftClient, i, j, k, l, m); + #if MC_VER < MC_1_20_4 + super(minecraftClient, canvasWidth, canvasHeight, topMargin, canvasHeight - botMargin, itemSpacing); + #else + super(minecraftClient, canvasWidth, canvasHeight - (topMargin + botMargin), topMargin, itemSpacing); + #endif this.centerListVertically = false; textRenderer = minecraftClient.font; } @@ -601,7 +605,7 @@ public class ClassicConfigGUI } @Override - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) #else public void render(GuiGraphics matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) @@ -623,7 +627,7 @@ public class ClassicConfigGUI indexButton.render(matrices, mouseX, mouseY, tickDelta); } if (text != null && (!text.getString().contains("spacer") || button != null)) - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 GuiComponent.drawString(matrices, textRenderer, text, 12, y + 5, 0xFFFFFF); #else matrices.drawString(textRenderer, text, 12, y + 5, 0xFFFFFF); @@ -638,7 +642,7 @@ public class ClassicConfigGUI // Only for 1.17 and over // Remove in 1.16 and below - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 @Override public List narratables() { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DhScreen.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DhScreen.java index fbeb7f4c3..5309e6565 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DhScreen.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/DhScreen.java @@ -1,7 +1,7 @@ package com.seibel.distanthorizons.common.wrappers.gui; import net.minecraft.client.gui.Font; -#if PRE_MC_1_20_1 +#if MC_VER < MC_1_20_1 import com.mojang.blaze3d.vertex.PoseStack; #else import net.minecraft.client.gui.GuiGraphics; @@ -24,14 +24,14 @@ public class DhScreen extends Screen // addButton in 1.16 and below protected Button addBtn(Button button) { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 return this.addButton(button); #else return this.addRenderableWidget(button); #endif } - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 protected void DhDrawCenteredString(PoseStack guiStack, Font font, Component text, int x, int y, int color) { drawCenteredString(guiStack, font, text, x, y, color); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/GuiHelper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/GuiHelper.java index 1bd0655a1..18274f77c 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/GuiHelper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/GuiHelper.java @@ -5,7 +5,7 @@ import net.minecraft.client.gui.components.Button; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraft.network.chat.TextComponent; import net.minecraft.network.chat.TranslatableComponent; #endif @@ -17,7 +17,7 @@ public class GuiHelper */ public static Button MakeBtn(Component base, int a, int b, int c, int d, Button.OnPress action) { - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 return new Button(a, b, c, d, base, action); #else return Button.builder(base, action).bounds(a, b, c, d).build(); @@ -26,7 +26,7 @@ public class GuiHelper public static MutableComponent TextOrLiteral(String text) { - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 return new TextComponent(text); #else return Component.literal(text); @@ -35,7 +35,7 @@ public class GuiHelper public static MutableComponent TextOrTranslatable(String text) { - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 return new TextComponent(text); #else return Component.translatable(text); @@ -44,7 +44,7 @@ public class GuiHelper public static MutableComponent Translatable(String text, Object... args) { - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 return new TranslatableComponent(text, args); #else return Component.translatable(text, args); @@ -53,7 +53,7 @@ public class GuiHelper public static void SetX(AbstractWidget w, int x) { - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 w.x = x; #else w.setX(x); @@ -62,7 +62,7 @@ public class GuiHelper public static void SetY(AbstractWidget w, int y) { - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 w.y = y; #else w.setY(y); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/MinecraftScreen.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/MinecraftScreen.java index 716c98775..1b3c1298c 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/MinecraftScreen.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/MinecraftScreen.java @@ -4,7 +4,7 @@ import com.mojang.blaze3d.platform.Window; import com.mojang.blaze3d.vertex.PoseStack; import com.seibel.distanthorizons.core.config.gui.AbstractScreen; import net.minecraft.client.Minecraft; -#if POST_MC_1_20_1 +#if MC_VER >= MC_1_20_1 import net.minecraft.client.gui.GuiGraphics; #endif import net.minecraft.client.gui.components.ContainerObjectSelectionList; @@ -28,7 +28,7 @@ public class MinecraftScreen private AbstractScreen screen; - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 public static net.minecraft.network.chat.TranslatableComponent translate(String str, Object... args) { return new net.minecraft.network.chat.TranslatableComponent(str, args); @@ -59,23 +59,23 @@ public class MinecraftScreen screen.scaledHeight = this.height; screen.init(); // Init our own config screen - this.list = new ConfigListWidget(this.minecraft, this.width, this.height, 0, this.height, 25); // Select the area to tint + this.list = new ConfigListWidget(this.minecraft, this.width, this.height, 0, 0, 25); // Select the area to tint if (this.minecraft != null && this.minecraft.level != null) // Check if in game this.list.setRenderBackground(false); // Disable from rendering this.addWidget(this.list); // Add the tint to the things to be rendered } @Override - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 public void render(PoseStack matrices, int mouseX, int mouseY, float delta) #else public void render(GuiGraphics matrices, int mouseX, int mouseY, float delta) #endif { - #if MC_1_20_2 - this.renderBackground(matrices, mouseX, mouseY, delta); // Render background - #else + #if MC_VER < MC_1_20_2 this.renderBackground(matrices); // Render background + #else + this.renderBackground(matrices, mouseX, mouseY, delta); // Render background #endif this.list.render(matrices, mouseX, mouseY, delta); // Renders the items in the render list (currently only used to tint background darker) @@ -131,9 +131,13 @@ public class MinecraftScreen public static class ConfigListWidget extends ContainerObjectSelectionList { - public ConfigListWidget(Minecraft minecraftClient, int i, int j, int k, int l, int m) + public ConfigListWidget(Minecraft minecraftClient, int canvasWidth, int canvasHeight, int topMargin, int botMargin, int itemSpacing) { - super(minecraftClient, i, j, k, l, m); + #if MC_VER < MC_1_20_4 + super(minecraftClient, canvasWidth, canvasHeight, topMargin, canvasHeight - botMargin, itemSpacing); + #else + super(minecraftClient, canvasWidth, canvasHeight - (topMargin + botMargin), topMargin, itemSpacing); + #endif this.centerListVertically = false; } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/TexturedButtonWidget.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/TexturedButtonWidget.java index 866ef61c7..c69a9ad49 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/TexturedButtonWidget.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/TexturedButtonWidget.java @@ -34,17 +34,17 @@ import net.minecraft.client.gui.components.ImageButton; import net.minecraft.network.chat.Component; import net.minecraft.resources.ResourceLocation; -#if POST_MC_1_17_1 +#if MC_VER >= MC_1_17_1 import net.minecraft.client.renderer.GameRenderer; #endif -#if PRE_MC_1_20_1 +#if MC_VER < MC_1_20_1 import com.mojang.blaze3d.vertex.PoseStack; import net.minecraft.client.Minecraft; #else import net.minecraft.client.gui.GuiGraphics; #endif -#if PRE_MC_1_20_2 +#if MC_VER < MC_1_20_2 public class TexturedButtonWidget extends ImageButton #else public class TexturedButtonWidget extends Button @@ -52,7 +52,7 @@ public class TexturedButtonWidget extends Button { public final boolean renderBackground; - #if POST_MC_1_20_2 + #if MC_VER >= MC_1_20_2 private final int u; private final int v; private final int hoveredVOffset; @@ -69,7 +69,7 @@ public class TexturedButtonWidget extends Button } public TexturedButtonWidget(int x, int y, int width, int height, int u, int v, int hoveredVOffset, ResourceLocation texture, int textureWidth, int textureHeight, OnPress pressAction, Component text, boolean renderBackground) { - #if PRE_MC_1_20_2 + #if MC_VER < MC_1_20_2 super(x, y, width, height, u, v, hoveredVOffset, texture, textureWidth, textureHeight, pressAction, text); #else // We don't pass on the text option as otherwise it will render (we normally pass it for narration) @@ -89,13 +89,13 @@ public class TexturedButtonWidget extends Button this.renderBackground = renderBackground; } - #if PRE_MC_1_20_2 - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_20_2 + #if MC_VER < MC_1_19_4 @Override public void renderButton(PoseStack matrices, int mouseX, int mouseY, float delta) { if (this.renderBackground) // Renders the background of the button { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 Minecraft.getInstance().getTextureManager().bind(WIDGETS_LOCATION); RenderSystem.color4f(1.0F, 1.0F, 1.0F, this.alpha); #else @@ -108,7 +108,7 @@ public class TexturedButtonWidget extends Button RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.enableDepthTest(); - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 this.blit(matrices, this.x, this.y, 0, 46 + i * 20, this.width / 2, this.height); this.blit(matrices, this.x + this.width / 2, this.y, 200 - this.width / 2, 46 + i * 20, this.width / 2, this.height); #else @@ -120,7 +120,7 @@ public class TexturedButtonWidget extends Button super.renderButton(matrices, mouseX, mouseY, delta); } #else - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 @Override public void renderWidget(PoseStack matrices, int mouseX, int mouseY, float delta) { @@ -138,7 +138,7 @@ public class TexturedButtonWidget extends Button if (!this.active) i = 0; else if (this.isHovered) i = 2; - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); RenderSystem.enableDepthTest(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/ChangelogScreen.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/ChangelogScreen.java index 5b1f6ba39..1328a5ba9 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/ChangelogScreen.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/ChangelogScreen.java @@ -15,11 +15,11 @@ import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; -#if POST_MC_1_17_1 +#if MC_VER >= MC_1_17_1 import net.minecraft.client.gui.narration.NarratableEntry; #endif -#if PRE_MC_1_20_1 +#if MC_VER < MC_1_20_1 import net.minecraft.client.gui.GuiComponent; #else import net.minecraft.client.gui.GuiGraphics; @@ -134,7 +134,7 @@ public class ChangelogScreen extends DhScreen ); - this.changelogArea = new TextArea(this.minecraft, this.width * 2, this.height, 32, this.height - 32, 10); + this.changelogArea = new TextArea(this.minecraft, this.width * 2, this.height, 32, 32, 10); for (int i = 0; i < changelog.size(); i++) { this.changelogArea.addButton(TextOrLiteral(changelog.get(i))); @@ -144,16 +144,16 @@ public class ChangelogScreen extends DhScreen } @Override - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 public void render(PoseStack matrices, int mouseX, int mouseY, float delta) #else public void render(GuiGraphics matrices, int mouseX, int mouseY, float delta) #endif { - #if MC_1_20_2 - this.renderBackground(matrices, mouseX, mouseY, delta); // Render background - #else + #if MC_VER < MC_1_20_2 this.renderBackground(matrices); // Render background + #else + this.renderBackground(matrices, mouseX, mouseY, delta); // Render background #endif if (!usable) return; @@ -161,7 +161,7 @@ public class ChangelogScreen extends DhScreen // Set the scroll position to the mouse height relative to the screen // This is a bit of a hack as we cannot scroll on this area double scrollAmount = ((double) mouseY) / ((double) this.height) * 1.1 * this.changelogArea.getMaxScroll(); - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 this.changelogArea.setScrollAmount(scrollAmount); #else this.changelogArea.scrollAmount = scrollAmount; @@ -185,9 +185,13 @@ public class ChangelogScreen extends DhScreen { Font textRenderer; - public TextArea(Minecraft minecraftClient, int i, int j, int k, int l, int m) + public TextArea(Minecraft minecraftClient, int canvasWidth, int canvasHeight, int topMargin, int botMargin, int itemSpacing) { - super(minecraftClient, i, j, k, l, m); + #if MC_VER < MC_1_20_4 + super(minecraftClient, canvasWidth, canvasHeight, topMargin, canvasHeight - botMargin, itemSpacing); + #else + super(minecraftClient, canvasWidth, canvasHeight - (topMargin + botMargin), topMargin, itemSpacing); + #endif this.centerListVertically = false; textRenderer = minecraftClient.font; } @@ -221,7 +225,7 @@ public class ChangelogScreen extends DhScreen return new ButtonEntry(text); } - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 @Override public void render(PoseStack matrices, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { @@ -240,7 +244,7 @@ public class ChangelogScreen extends DhScreen { return children; } - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 @Override public List narratables() { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/UpdateModScreen.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/UpdateModScreen.java index 70c8592c7..074e96b21 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/UpdateModScreen.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/gui/updater/UpdateModScreen.java @@ -11,7 +11,7 @@ import com.seibel.distanthorizons.core.jar.JarUtils; import com.seibel.distanthorizons.core.jar.installer.ModrinthGetter; import com.seibel.distanthorizons.core.jar.updater.SelfUpdater; import net.minecraft.client.Minecraft; -#if POST_MC_1_20_1 +#if MC_VER >= MC_1_20_1 import net.minecraft.client.gui.GuiGraphics; #else import com.mojang.blaze3d.vertex.PoseStack; @@ -146,16 +146,16 @@ public class UpdateModScreen extends DhScreen } @Override - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 public void render(PoseStack matrices, int mouseX, int mouseY, float delta) #else public void render(GuiGraphics matrices, int mouseX, int mouseY, float delta) #endif { - #if MC_1_20_2 - this.renderBackground(matrices, mouseX, mouseY, delta); // Render background - #else + #if MC_VER < MC_1_20_2 this.renderBackground(matrices); // Render background + #else + this.renderBackground(matrices, mouseX, mouseY, delta); // Render background #endif diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java index 611172844..f0d3dc654 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftClientWrapper.java @@ -47,7 +47,7 @@ import net.minecraft.client.player.LocalPlayer; import net.minecraft.client.resources.model.ModelManager; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraft.network.chat.TextComponent; #endif import net.minecraft.server.level.ServerLevel; @@ -197,7 +197,7 @@ public class MinecraftClientWrapper implements IMinecraftClientWrapper, IMinecra @Override public DhChunkPos getPlayerChunkPos() { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 ChunkPos playerPos = new ChunkPos(getPlayer().blockPosition()); #else ChunkPos playerPos = getPlayer().chunkPosition(); @@ -262,7 +262,7 @@ public class MinecraftClientWrapper implements IMinecraftClientWrapper, IMinecra { LocalPlayer p = getPlayer(); if (p == null) return; - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 p.sendMessage(new TextComponent(string), getPlayer().getUUID()); #else p.sendSystemMessage(net.minecraft.network.chat.Component.translatable(string)); @@ -282,7 +282,11 @@ public class MinecraftClientWrapper implements IMinecraftClientWrapper, IMinecra { LOGGER.error(ModInfo.READABLE_NAME + " had the following error: [" + errorMessage + "]. Crashing Minecraft...", exception); CrashReport report = new CrashReport(errorMessage, exception); + #if MC_VER < MC_1_20_4 Minecraft.crash(report); + #else + Minecraft.getInstance().delayCrash(report); + #endif } @Override diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java index 5108d556d..6a8ae1318 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/minecraft/MinecraftRenderWrapper.java @@ -39,12 +39,12 @@ import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import com.seibel.distanthorizons.core.render.DhApiRenderProxy; import com.seibel.distanthorizons.core.wrapperInterfaces.misc.ILightMapWrapper; -#if PRE_MC_1_19_4 +#if MC_VER < MC_1_19_4 import com.mojang.math.Vector3f; #else import org.joml.Vector3f; #endif -#if MC_1_20_2 +#if MC_VER >= MC_1_20_2 import net.minecraft.client.renderer.chunk.SectionRenderDispatcher; #endif @@ -67,7 +67,7 @@ import net.minecraft.client.renderer.FogRenderer; import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.core.BlockPos; import net.minecraft.world.effect.MobEffects; -#if PRE_MC_1_17_1 +#if MC_VER < MC_1_17_1 import net.minecraft.tags.FluidTags; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.material.FluidState; @@ -133,7 +133,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper public boolean playerHasBlindingEffect() { return MC.player.getActiveEffectsMap().get(MobEffects.BLINDNESS) != null - #if POST_AND_MC_1_19_2 + #if MC_VER >= MC_1_19_2 || MC.player.getActiveEffectsMap().get(MobEffects.DARKNESS) != null // Deep dark effect #endif ; @@ -151,7 +151,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper @Override public Mat4f getDefaultProjectionMatrix(float partialTicks) { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 return McObjectConverter.Convert(Minecraft.getInstance().gameRenderer.getProjectionMatrix(Minecraft.getInstance().gameRenderer.getMainCamera(), partialTicks, true)); #else return McObjectConverter.Convert(MC.gameRenderer.getProjectionMatrix(MC.gameRenderer.getFov(MC.gameRenderer.getMainCamera(), partialTicks, true))); @@ -161,7 +161,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper @Override public double getGamma() { - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 return MC.options.gamma; #else return MC.options.gamma().get(); @@ -171,7 +171,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper @Override public Color getFogColor(float partialTicks) { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 float[] colorValues = new float[4]; GL15.glGetFloatv(GL15.GL_FOG_COLOR, colorValues); #else @@ -192,7 +192,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper { if (MC.level.dimensionType().hasSkyLight()) { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 Vec3 colorValues = MC.level.getSkyColor(MC.gameRenderer.getMainCamera().getBlockPosition(), MC.getFrameTime()); #else Vec3 colorValues = MC.level.getSkyColor(MC.gameRenderer.getMainCamera().getPosition(), MC.getFrameTime()); @@ -213,7 +213,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper @Override public int getRenderDistance() { - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 //FIXME: How to resolve this? return MC.options.renderDistance; #else @@ -321,25 +321,25 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper { try { - #if MC_1_20_2 + #if MC_VER < MC_1_20_2 LevelRenderer levelRenderer = MC.levelRenderer; - Collection chunks = levelRenderer.visibleSections; + Collection chunks = + #if MC_VER < MC_1_18_2 levelRenderer.renderChunks; + #else levelRenderer.renderChunkStorage.get().renderChunks; #endif return (chunks.stream().map((chunk) -> { - AABB chunkBoundingBox = chunk.getBoundingBox(); + AABB chunkBoundingBox = + #if MC_VER < MC_1_18_2 chunk.chunk.bb; + #else chunk.chunk.getBoundingBox(); #endif return new DhChunkPos(Math.floorDiv((int) chunkBoundingBox.minX, 16), Math.floorDiv((int) chunkBoundingBox.minZ, 16)); }).collect(Collectors.toCollection(HashSet::new))); #else LevelRenderer levelRenderer = MC.levelRenderer; - Collection chunks = - #if PRE_MC_1_18_2 levelRenderer.renderChunks; - #else levelRenderer.renderChunkStorage.get().renderChunks; #endif + Collection chunks = levelRenderer.visibleSections; return (chunks.stream().map((chunk) -> { - AABB chunkBoundingBox = - #if PRE_MC_1_18_2 chunk.chunk.bb; - #else chunk.chunk.getBoundingBox(); #endif + AABB chunkBoundingBox = chunk.getBoundingBox(); return new DhChunkPos(Math.floorDiv((int) chunkBoundingBox.minX, 16), Math.floorDiv((int) chunkBoundingBox.minZ, 16)); }).collect(Collectors.toCollection(HashSet::new))); @@ -371,7 +371,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper @Override public boolean isFogStateSpecial() { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 Camera camera = Minecraft.getInstance().gameRenderer.getMainCamera(); FluidState fluidState = camera.getFluidInCamera(); Entity entity = camera.getEntity(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/misc/ServerPlayerWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/misc/ServerPlayerWrapper.java index 4a28095c6..d14451139 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/misc/ServerPlayerWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/misc/ServerPlayerWrapper.java @@ -34,7 +34,7 @@ public class ServerPlayerWrapper implements IServerPlayerWrapper public IServerLevelWrapper getLevel() { - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 return ServerLevelWrapper.getWrapper(this.serverPlayer.getLevel()); #else return ServerLevelWrapper.getWrapper(this.serverPlayer.serverLevel()); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java index 08ffe1656..989d017bc 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ClientLevelWrapper.java @@ -136,7 +136,7 @@ public class ClientLevelWrapper implements IClientLevelWrapper @Override public int getMinHeight() { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 return 0; #else return this.level.getMinBuildHeight(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java index b6fea22b8..0728a01f3 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/world/ServerLevelWrapper.java @@ -130,7 +130,7 @@ public class ServerLevelWrapper implements IServerLevelWrapper @Override public int getMinHeight() { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 return 0; #else return level.getMinBuildHeight(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/BatchGenerationEnvironment.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/BatchGenerationEnvironment.java index 8d238f508..0ba131419 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/BatchGenerationEnvironment.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/BatchGenerationEnvironment.java @@ -56,7 +56,7 @@ import com.seibel.distanthorizons.common.wrappers.worldGeneration.step.StepStruc import com.seibel.distanthorizons.common.wrappers.worldGeneration.step.StepStructureStart; import com.seibel.distanthorizons.common.wrappers.worldGeneration.step.StepSurface; -#if POST_MC_1_19_4 +#if MC_VER >= MC_1_19_4 import net.minecraft.core.registries.Registries; #else import net.minecraft.core.Registry; @@ -365,9 +365,9 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv private static ProtoChunk EmptyChunk(ServerLevel level, ChunkPos chunkPos) { return new ProtoChunk(chunkPos, UpgradeData.EMPTY - #if POST_MC_1_17_1 , level #endif - #if POST_MC_1_18_2 , level.registryAccess().registryOrThrow( - #if PRE_MC_1_19_4 + #if MC_VER >= MC_1_17_1 , level #endif + #if MC_VER >= MC_1_18_2 , level.registryAccess().registryOrThrow( + #if MC_VER < MC_1_19_4 Registry.BIOME_REGISTRY #else Registries.BIOME @@ -463,8 +463,8 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv if (target == null) { target = new ProtoChunk(chunkPos, UpgradeData.EMPTY - #if POST_MC_1_17_1 , params.level #endif - #if POST_MC_1_18_2 , params.biomes, null #endif + #if MC_VER >= MC_1_17_1 , params.level #endif + #if MC_VER >= MC_1_18_2 , params.biomes, null #endif ); } return target; @@ -507,7 +507,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv ChunkAccess target = wrappedChunk.getChunk(); if (target instanceof LevelChunk) { - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 ((LevelChunk) target).setLoaded(true); #else ((LevelChunk) target).loaded = true; @@ -520,7 +520,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv } boolean isFull = target.getStatus() == ChunkStatus.FULL || target instanceof LevelChunk; - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 boolean isPartial = target.isOldNoiseGeneration(); #endif if (isFull) @@ -528,7 +528,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv LOAD_LOGGER.info("Detected full existing chunk at {}", target.getPos()); genEvent.resultConsumer.accept(wrappedChunk); } - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 else if (isPartial) { LOAD_LOGGER.info("Detected old existing chunk at {}", target.getPos()); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/GlobalParameters.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/GlobalParameters.java index aafc01bb3..ac7e1c639 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/GlobalParameters.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/GlobalParameters.java @@ -31,16 +31,16 @@ import net.minecraft.server.level.ThreadedLevelLightEngine; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.biome.BiomeManager; import net.minecraft.world.level.chunk.ChunkGenerator; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.world.level.chunk.storage.ChunkScanAccess; #endif import net.minecraft.world.level.levelgen.WorldGenSettings; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraft.world.level.levelgen.structure.templatesystem.StructureManager; #else import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplateManager; import net.minecraft.world.level.levelgen.RandomState; -#if POST_MC_1_19_4 +#if MC_VER >= MC_1_19_4 import net.minecraft.world.level.levelgen.WorldOptions; import net.minecraft.core.registries.Registries; #endif @@ -50,13 +50,13 @@ import net.minecraft.world.level.storage.WorldData; public final class GlobalParameters { public final ChunkGenerator generator; - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 public final StructureManager structures; #else public final StructureTemplateManager structures; public final RandomState randomState; #endif - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 public final WorldGenSettings worldGenSettings; #else public final WorldOptions worldOptions; @@ -67,7 +67,7 @@ public final class GlobalParameters public final RegistryAccess registry; public final long worldSeed; public final DataFixer fixerUpper; - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 public final BiomeManager biomeManager; public final ChunkScanAccess chunkScanner; // FIXME: Figure out if this is actually needed #endif @@ -81,7 +81,7 @@ public final class GlobalParameters WorldData worldData = server.getWorldData(); registry = server.registryAccess(); - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 worldGenSettings = worldData.worldGenSettings(); biomes = registry.registryOrThrow(Registry.BIOME_REGISTRY); worldSeed = worldGenSettings.seed(); @@ -90,14 +90,14 @@ public final class GlobalParameters biomes = registry.registryOrThrow(Registries.BIOME); worldSeed = worldOptions.seed(); #endif - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 biomeManager = new BiomeManager(level, BiomeManager.obfuscateSeed(worldSeed)); chunkScanner = level.getChunkSource().chunkScanner(); #endif structures = server.getStructureManager(); generator = level.getChunkSource().getGenerator(); fixerUpper = server.getFixerUpper(); - #if POST_MC_1_19_2 + #if MC_VER >= MC_1_19_2 randomState = level.getChunkSource().randomState(); #endif } diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/ThreadedParameters.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/ThreadedParameters.java index d5e391be5..71cc834c3 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/ThreadedParameters.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/ThreadedParameters.java @@ -25,7 +25,7 @@ import com.seibel.distanthorizons.common.wrappers.worldGeneration.mimicObject.Wo import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.WorldGenLevel; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.world.level.levelgen.structure.StructureCheck; #endif @@ -35,7 +35,7 @@ public final class ThreadedParameters final ServerLevel level; public WorldGenStructFeatManager structFeat = null; - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 public StructureCheck structCheck; #endif boolean isValid = true; @@ -63,9 +63,9 @@ public final class ThreadedParameters previousGlobalParameters = param; this.level = param.level; - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 this.structFeat = new WorldGenStructFeatManager(param.worldGenSettings, level); - #elif PRE_MC_1_19_2 + #elif MC_VER < MC_1_19_2 this.structCheck = this.createStructureCheck(param); #else this.structCheck = new StructureCheck(param.chunkScanner, param.registry, param.structures, @@ -80,15 +80,15 @@ public final class ThreadedParameters public void makeStructFeat(WorldGenLevel genLevel, GlobalParameters param) { - #if PRE_MC_1_19_4 - structFeat = new WorldGenStructFeatManager(param.worldGenSettings, genLevel #if POST_MC_1_18_2 , structCheck #endif ); + #if MC_VER < MC_1_19_4 + structFeat = new WorldGenStructFeatManager(param.worldGenSettings, genLevel #if MC_VER >= MC_1_18_2 , structCheck #endif ); #else structFeat = new WorldGenStructFeatManager(param.worldOptions, genLevel, structCheck); #endif } - #if POST_MC_1_18_2 && PRE_MC_1_19_2 + #if MC_VER >= MC_1_18_2 && MC_VER < MC_1_19_2 public void recreateStructureCheck() { if (previousGlobalParameters != null) diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/ChunkLoader.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/ChunkLoader.java index dda02fa40..7edb2d77e 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/ChunkLoader.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/ChunkLoader.java @@ -37,7 +37,7 @@ import java.util.Objects; import net.minecraft.core.Registry; import net.minecraft.core.SectionPos; -#if POST_MC_1_19_4 +#if MC_VER >= MC_1_19_4 import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.core.registries.Registries; #endif @@ -55,24 +55,24 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.chunk.*; import net.minecraft.world.level.chunk.storage.ChunkSerializer; import net.minecraft.world.level.levelgen.Heightmap; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.world.level.levelgen.blending.BlendingData; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraft.world.level.levelgen.feature.StructureFeature; #endif import net.minecraft.world.level.levelgen.structure.StructureStart; import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSerializationContext; import net.minecraft.world.ticks.LevelChunkTicks; #endif -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.core.Holder; import net.minecraft.core.RegistryAccess; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; #endif #endif -#if MC_1_16_5 || MC_1_17_1 +#if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 import net.minecraft.world.level.material.Fluids; #endif @@ -81,9 +81,9 @@ import net.minecraft.world.level.material.Fluid; public class ChunkLoader { - #if POST_MC_1_19_2 + #if MC_VER >= MC_1_19_2 private static final Codec> BLOCK_STATE_CODEC = PalettedContainer.codecRW(Block.BLOCK_STATE_REGISTRY, BlockState.CODEC, PalettedContainer.Strategy.SECTION_STATES, Blocks.AIR.defaultBlockState()); - #elif POST_MC_1_18_2 + #elif MC_VER >= MC_1_18_2 private static final Codec> BLOCK_STATE_CODEC = PalettedContainer.codec(Block.BLOCK_STATE_REGISTRY, BlockState.CODEC, PalettedContainer.Strategy.SECTION_STATES, Blocks.AIR.defaultBlockState()); #endif private static final String TAG_UPGRADE_DATA = "UpgradeData"; @@ -93,7 +93,7 @@ public class ChunkLoader private static final String FLUID_TICKS_TAG_PRE18 = "LiquidTicks"; private static final ConfigBasedLogger LOGGER = BatchGenerationEnvironment.LOAD_LOGGER; - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 private static BlendingData readBlendingData(CompoundTag chunkData) { BlendingData blendingData = null; @@ -109,16 +109,16 @@ public class ChunkLoader private static LevelChunkSection[] readSections(LevelAccessor level, ChunkPos chunkPos, CompoundTag chunkData) { - #if POST_MC_1_18_2 - #if PRE_MC_1_19_4 + #if MC_VER >= MC_1_18_2 + #if MC_VER < MC_1_19_4 Registry biomes = level.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY); #else Registry biomes = level.registryAccess().registryOrThrow(Registries.BIOME); #endif - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 Codec> biomeCodec = PalettedContainer.codec( biomes, biomes.byNameCodec(), PalettedContainer.Strategy.SECTION_BIOMES, biomes.getOrThrow(Biomes.PLAINS)); - #elif PRE_MC_1_19_2 + #elif MC_VER < MC_1_19_2 Codec>> biomeCodec = PalettedContainer.codec( biomes.asHolderIdMap(), biomes.holderByNameCodec(), PalettedContainer.Strategy.SECTION_BIOMES, biomes.getHolderOrThrow(Biomes.PLAINS)); #else @@ -126,7 +126,7 @@ public class ChunkLoader biomes.asHolderIdMap(), biomes.holderByNameCodec(), PalettedContainer.Strategy.SECTION_BIOMES, biomes.getHolderOrThrow(Biomes.PLAINS)); #endif #endif - int i = #if PRE_MC_1_17_1 16; #else level.getSectionsCount(); #endif + int i = #if MC_VER < MC_1_17_1 16; #else level.getSectionsCount(); #endif LevelChunkSection[] chunkSections = new LevelChunkSection[i]; boolean isLightOn = chunkData.getBoolean("isLightOn"); @@ -139,7 +139,7 @@ public class ChunkLoader CompoundTag tagSection = tagSections.getCompound(j); int sectionYPos = tagSection.getByte("Y"); - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 if (tagSection.contains("Palette", 9) && tagSection.contains("BlockStates", 12)) { LevelChunkSection levelChunkSection = new LevelChunkSection(sectionYPos << 4); @@ -147,7 +147,7 @@ public class ChunkLoader tagSection.getLongArray("BlockStates")); levelChunkSection.recalcBlockCounts(); if (!levelChunkSection.isEmpty()) - chunkSections[#if PRE_MC_1_17_1 sectionYPos #else level.getSectionIndexFromSectionY(sectionYPos) #endif ] + chunkSections[#if MC_VER < MC_1_17_1 sectionYPos #else level.getSectionIndexFromSectionY(sectionYPos) #endif ] = levelChunkSection; } #else @@ -155,7 +155,7 @@ public class ChunkLoader if (sectionId >= 0 && sectionId < chunkSections.length) { PalettedContainer blockStateContainer; - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 PalettedContainer biomeContainer; #else PalettedContainer> biomeContainer; @@ -165,7 +165,7 @@ public class ChunkLoader ? BLOCK_STATE_CODEC.parse(NbtOps.INSTANCE, tagSection.getCompound("block_states")).promotePartial(string -> logErrors(chunkPos, sectionYPos, string)).getOrThrow(false, LOGGER::error) : new PalettedContainer(Block.BLOCK_STATE_REGISTRY, Blocks.AIR.defaultBlockState(), PalettedContainer.Strategy.SECTION_STATES); - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 biomeContainer = tagSection.contains("biomes", 10) ? biomeCodec.parse(NbtOps.INSTANCE, tagSection.getCompound("biomes")).promotePartial(string -> logErrors(chunkPos, sectionYPos, string)).getOrThrow(false, LOGGER::error) : new PalettedContainer(biomes, biomes.getOrThrow(Biomes.PLAINS), PalettedContainer.Strategy.SECTION_BIOMES); @@ -174,7 +174,7 @@ public class ChunkLoader ? biomeCodec.parse(NbtOps.INSTANCE, tagSection.getCompound("biomes")).promotePartial(string -> logErrors(chunkPos, i, (String) string)).getOrThrow(false, LOGGER::error) : new PalettedContainer>(biomes.asHolderIdMap(), biomes.getHolderOrThrow(Biomes.PLAINS), PalettedContainer.Strategy.SECTION_BIOMES); #endif - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 chunkSections[sectionId] = new LevelChunkSection(sectionYPos, blockStateContainer, biomeContainer); #else chunkSections[sectionId] = new LevelChunkSection(blockStateContainer, biomeContainer); @@ -223,7 +223,7 @@ public class ChunkLoader public static LevelChunk read(WorldGenLevel level, ChunkPos chunkPos, CompoundTag chunkData) { - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 CompoundTag tagLevel = chunkData.getCompound("Level"); #else CompoundTag tagLevel = chunkData; @@ -237,12 +237,12 @@ public class ChunkLoader } ChunkStatus.ChunkType chunkType = readChunkType(tagLevel); - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 if (chunkType != ChunkStatus.ChunkType.LEVELCHUNK) return null; #else BlendingData blendingData = readBlendingData(tagLevel); - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 if (chunkType == ChunkStatus.ChunkType.PROTOCHUNK && (blendingData == null || !blendingData.oldNoise())) return null; #else @@ -255,27 +255,27 @@ public class ChunkLoader //================== Read params for making the LevelChunk ================== UpgradeData upgradeData = tagLevel.contains(TAG_UPGRADE_DATA, 10) - ? new UpgradeData(tagLevel.getCompound(TAG_UPGRADE_DATA)#if POST_MC_1_17_1 , level #endif ) + ? new UpgradeData(tagLevel.getCompound(TAG_UPGRADE_DATA)#if MC_VER >= MC_1_17_1 , level #endif ) : UpgradeData.EMPTY; boolean isLightOn = tagLevel.getBoolean("isLightOn"); - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 ChunkBiomeContainer chunkBiomeContainer = new ChunkBiomeContainer( - level.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY)#if POST_MC_1_17_1 , level #endif , + level.getLevel().registryAccess().registryOrThrow(Registry.BIOME_REGISTRY)#if MC_VER >= MC_1_17_1 , level #endif , chunkPos, level.getLevel().getChunkSource().getGenerator().getBiomeSource(), tagLevel.contains("Biomes", 11) ? tagLevel.getIntArray("Biomes") : null); TickList blockTicks = tagLevel.contains(BLOCK_TICKS_TAG_PRE18, 9) ? ChunkTickList.create(tagLevel.getList(BLOCK_TICKS_TAG_PRE18, 10), Registry.BLOCK::getKey, Registry.BLOCK::get) : new ProtoTickList(block -> (block == null || block.defaultBlockState().isAir()), chunkPos, - tagLevel.getList("ToBeTicked", 9)#if POST_MC_1_17_1 , level #endif ); + tagLevel.getList("ToBeTicked", 9)#if MC_VER >= MC_1_17_1 , level #endif ); TickList fluidTicks = tagLevel.contains(FLUID_TICKS_TAG_PRE18, 9) ? ChunkTickList.create(tagLevel.getList(FLUID_TICKS_TAG_PRE18, 10), Registry.FLUID::getKey, Registry.FLUID::get) : new ProtoTickList(fluid -> (fluid == null || fluid == Fluids.EMPTY), chunkPos, - tagLevel.getList("LiquidsToBeTicked", 9)#if POST_MC_1_17_1 , level #endif ); + tagLevel.getList("LiquidsToBeTicked", 9)#if MC_VER >= MC_1_17_1 , level #endif ); #else - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 LevelChunkTicks blockTicks = LevelChunkTicks.load(tagLevel.getList(BLOCK_TICKS_TAG_18, 10), string -> Registry.BLOCK.getOptional(ResourceLocation.tryParse(string)), chunkPos); LevelChunkTicks fluidTicks = LevelChunkTicks.load(tagLevel.getList(FLUID_TICKS_TAG_18, 10), @@ -291,7 +291,7 @@ public class ChunkLoader LevelChunkSection[] levelChunkSections = readSections(level, chunkPos, tagLevel); // ====================== Make the chunk ========================= - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 LevelChunk chunk = new LevelChunk((Level) level.getLevel(), chunkPos, chunkBiomeContainer, upgradeData, blockTicks, fluidTicks, inhabitedTime, levelChunkSections, null); #else diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/DhLitWorldGenRegion.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/DhLitWorldGenRegion.java index 34a27482d..b73e18c43 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/DhLitWorldGenRegion.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/DhLitWorldGenRegion.java @@ -41,7 +41,7 @@ import net.minecraft.util.Mth; import net.minecraft.world.entity.Entity; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.ColorResolver; -#if POST_MC_1_17_1 +#if MC_VER >= MC_1_17_1 import net.minecraft.world.level.LevelHeightAccessor; #endif import net.minecraft.world.level.LightLayer; @@ -73,11 +73,11 @@ public class DhLitWorldGenRegion extends WorldGenRegion */ ReentrantLock getChunkLock = new ReentrantLock(); - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 private ChunkPos overrideCenterPos = null; public void setOverrideCenter(ChunkPos pos) { overrideCenterPos = pos; } - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 @Override public int getCenterX() { @@ -104,7 +104,7 @@ public class DhLitWorldGenRegion extends WorldGenRegion List chunkList, ChunkStatus chunkStatus, int writeRadius, BatchGenerationEnvironment.EmptyChunkGenerator generator) { - super(serverLevel, chunkList #if POST_MC_1_17_1 , chunkStatus, writeRadius #endif ); + super(serverLevel, chunkList #if MC_VER >= MC_1_17_1 , chunkStatus, writeRadius #endif ); this.firstPos = chunkList.get(0).getPos(); this.generator = generator; this.lightEngine = lightEngine; @@ -115,7 +115,7 @@ public class DhLitWorldGenRegion extends WorldGenRegion - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 // Bypass BCLib mixin overrides. @Override public boolean ensureCanWrite(BlockPos blockPos) @@ -130,7 +130,7 @@ public class DhLitWorldGenRegion extends WorldGenRegion { return false; } - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 if (center.isUpgrading()) { LevelHeightAccessor levelHeightAccessor = center.getHeightAccessorForGeneration(); @@ -185,7 +185,7 @@ public class DhLitWorldGenRegion extends WorldGenRegion BlockState blockState = this.getBlockState(blockPos); // This is a bypass for the spawner block since MC complains about not having it - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 if (blockState.getBlock() instanceof SpawnerBlock) { return ((EntityBlock) blockState.getBlock()).newBlockEntity(blockPos, blockState); @@ -269,7 +269,7 @@ public class DhLitWorldGenRegion extends WorldGenRegion ChunkAccess chunk = getChunkAccess(i, j, chunkStatus, bl); if (chunk instanceof LevelChunk) { - chunk = new ImposterProtoChunk((LevelChunk) chunk #if POST_MC_1_18_2 , true #endif ); + chunk = new ImposterProtoChunk((LevelChunk) chunk #if MC_VER >= MC_1_18_2 , true #endif ); } return chunk; } @@ -331,7 +331,7 @@ public class DhLitWorldGenRegion extends WorldGenRegion private Biome _getBiome(BlockPos pos) { - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 return getBiome(pos).value(); #else return getBiome(pos); @@ -340,7 +340,7 @@ public class DhLitWorldGenRegion extends WorldGenRegion public int calculateBlockTint(BlockPos blockPos, ColorResolver colorResolver) { - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 int i = (Minecraft.getInstance()).options.biomeBlendRadius; #else int i = (Minecraft.getInstance()).options.biomeBlendRadius().get(); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/DummyLightEngine.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/DummyLightEngine.java index 106af9f4a..f46b77131 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/DummyLightEngine.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/DummyLightEngine.java @@ -39,7 +39,7 @@ public class DummyLightEngine extends LevelLightEngine } - #if PRE_MC_1_20_1 + #if MC_VER < MC_1_20_1 @Override public void onBlockEmissionIncrease(BlockPos blockPos, int i) { } @@ -63,7 +63,7 @@ public class DummyLightEngine extends LevelLightEngine #endif @Override - public void queueSectionData(LightLayer lightLayer, SectionPos sectionPos, @Nullable DataLayer dataLayer #if PRE_MC_1_20_1 , boolean bl #endif ) { } + public void queueSectionData(LightLayer lightLayer, SectionPos sectionPos, @Nullable DataLayer dataLayer #if MC_VER < MC_1_20_1 , boolean bl #endif ) { } @Override public void checkBlock(BlockPos blockPos) { } @@ -87,7 +87,7 @@ public class DummyLightEngine extends LevelLightEngine @Override public void retainData(ChunkPos chunkPos, boolean bl) { } - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 @Override public int getLightSectionCount() { throw new UnsupportedOperationException("This should never be used!"); } @Override diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/LightGetterAdaptor.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/LightGetterAdaptor.java index b18b8f41b..097962b94 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/LightGetterAdaptor.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/LightGetterAdaptor.java @@ -23,12 +23,12 @@ import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IStarlightAccessor; import net.minecraft.world.level.BlockGetter; -#if POST_MC_1_17_1 +#if MC_VER >= MC_1_17_1 import net.minecraft.world.level.LevelHeightAccessor; #endif import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.LightChunkGetter; -#if POST_MC_1_20_1 +#if MC_VER >= MC_1_20_1 import net.minecraft.world.level.chunk.LightChunk; #endif @@ -50,7 +50,7 @@ public class LightGetterAdaptor implements LightChunkGetter } @Override - public #if PRE_MC_1_20_1 BlockGetter #else LightChunk #endif getChunkForLighting(int chunkX, int chunkZ) + public #if MC_VER < MC_1_20_1 BlockGetter #else LightChunk #endif getChunkForLighting(int chunkX, int chunkZ) { if (genRegion == null) throw new IllegalStateException("World Gen region has not been set!"); @@ -64,7 +64,7 @@ public class LightGetterAdaptor implements LightChunkGetter return shouldReturnNull ? null : (genRegion != null ? genRegion : heightGetter); } - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 public LevelHeightAccessor getLevelHeightAccessor() { return heightGetter; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/RegionFileStorageExternalCache.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/RegionFileStorageExternalCache.java index d5c346c70..edbc1c89f 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/RegionFileStorageExternalCache.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/RegionFileStorageExternalCache.java @@ -1,11 +1,13 @@ package com.seibel.distanthorizons.common.wrappers.worldGeneration.mimicObject; import com.seibel.distanthorizons.common.wrappers.worldGeneration.BatchGenerationEnvironment; +import com.seibel.distanthorizons.core.logging.DhLoggerBuilder; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtIo; import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.chunk.storage.RegionFile; import net.minecraft.world.level.chunk.storage.RegionFileStorage; +import org.apache.logging.log4j.Logger; import javax.annotation.Nullable; import java.io.DataInputStream; @@ -17,9 +19,13 @@ import java.util.concurrent.locks.ReentrantLock; public class RegionFileStorageExternalCache implements AutoCloseable { + private static final Logger LOGGER = DhLoggerBuilder.getLogger(); + public final RegionFileStorage storage; public static final int MAX_CACHE_SIZE = 16; + public static boolean regionCacheNullPointerWarningSent = false; + /** * Present to reduce the chance that we accidentally break underlying MC code that isn't thread safe, * specifically: "it.unimi.dsi.fastutil.longs.Long2ObjectLinkedOpenHashMap.getAndMoveToFirst()" @@ -64,7 +70,7 @@ public class RegionFileStorageExternalCache implements AutoCloseable { this.getRegionFileLock.lock(); - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 rFile = this.storage.getRegionFile(pos); // keeping the region cache size low helps prevent concurrency issues @@ -84,7 +90,7 @@ public class RegionFileStorageExternalCache implements AutoCloseable } catch (ArrayIndexOutOfBoundsException e) { - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 // the file just wasn't cached break; #else @@ -98,6 +104,19 @@ public class RegionFileStorageExternalCache implements AutoCloseable } #endif } + catch (NullPointerException e) + { + // Can sometimes happen when other mods modify the region cache system (IE C2ME) + // instead of blowing up, just use DH's cache instead + + if (!regionCacheNullPointerWarningSent) + { + regionCacheNullPointerWarningSent = true; + LOGGER.warn("Unable to access Minecraft's chunk cache. This may be due to another mod changing said cache. Falling back to DH's internal cache."); + } + + break; + } finally { this.getRegionFileLock.unlock(); @@ -126,7 +145,7 @@ public class RegionFileStorageExternalCache implements AutoCloseable // Otherwise, check if file exist, and if so, add it to the cache Path storageFolderPath; - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 storageFolderPath = this.storage.folder.toPath(); #else storageFolderPath = this.storage.folder; @@ -138,7 +157,7 @@ public class RegionFileStorageExternalCache implements AutoCloseable } Path regionFilePath = storageFolderPath.resolve("r." + pos.getRegionX() + "." + pos.getRegionZ() + ".mca"); - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 rFile = new RegionFile(regionFilePath.toFile(), storageFolderPath.toFile(), false); #else rFile = new RegionFile(regionFilePath, storageFolderPath, false); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/WorldGenStructFeatManager.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/WorldGenStructFeatManager.java index 79259fd36..05c846540 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/WorldGenStructFeatManager.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/mimicObject/WorldGenStructFeatManager.java @@ -37,49 +37,49 @@ import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.levelgen.WorldGenSettings; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; import net.minecraft.world.level.StructureFeatureManager; #else -#if POST_MC_1_19_4 +#if MC_VER >= MC_1_19_4 import net.minecraft.world.level.levelgen.WorldOptions; #endif import net.minecraft.world.level.levelgen.structure.Structure; import net.minecraft.world.level.StructureManager; #endif -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.world.level.levelgen.structure.StructureCheck; #endif import net.minecraft.world.level.levelgen.structure.StructureStart; -#if PRE_MC_1_18_2 +#if MC_VER < MC_1_18_2 import net.minecraft.world.level.levelgen.feature.StructureFeature; #endif -public class WorldGenStructFeatManager extends #if PRE_MC_1_19_2 StructureFeatureManager #else StructureManager #endif +public class WorldGenStructFeatManager extends #if MC_VER < MC_1_19_2 StructureFeatureManager #else StructureManager #endif { final WorldGenLevel genLevel; - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 WorldGenSettings worldGenSettings; #else WorldOptions worldOptions; #endif - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 StructureCheck structureCheck; #endif - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 public WorldGenStructFeatManager( WorldGenSettings worldGenSettings, - WorldGenLevel genLevel #if POST_MC_1_18_2 , StructureCheck structureCheck #endif ) + WorldGenLevel genLevel #if MC_VER >= MC_1_18_2 , StructureCheck structureCheck #endif ) { - super(genLevel, worldGenSettings #if POST_MC_1_18_2 , structureCheck #endif ); + super(genLevel, worldGenSettings #if MC_VER >= MC_1_18_2 , structureCheck #endif ); this.genLevel = genLevel; this.worldGenSettings = worldGenSettings; } @@ -100,8 +100,8 @@ public class WorldGenStructFeatManager extends #if PRE_MC_1_19_2 StructureFeatur { if (worldGenRegion == genLevel) return this; - #if PRE_MC_1_19_4 - return new WorldGenStructFeatManager(worldGenSettings, worldGenRegion #if POST_MC_1_18_2 , structureCheck #endif ); + #if MC_VER < MC_1_19_4 + return new WorldGenStructFeatManager(worldGenSettings, worldGenRegion #if MC_VER >= MC_1_18_2 , structureCheck #endif ); #else return new WorldGenStructFeatManager(worldOptions, worldGenRegion, structureCheck); #endif @@ -113,7 +113,7 @@ public class WorldGenStructFeatManager extends #if PRE_MC_1_19_2 StructureFeatur return genLevel.getChunk(x, z, status, false); } - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 @Override public Stream> startsForFeature( SectionPos sectionPos2, @@ -140,7 +140,7 @@ public class WorldGenStructFeatManager extends #if PRE_MC_1_19_2 StructureFeatur return chunk.hasAnyStructureReferences(); } - #if MC_1_18_1 + #if MC_VER == MC_1_18_1 @Override @SuppressWarnings({ "rawtypes", "unchecked" }) public List> startsForFeature(SectionPos sectionPos, @@ -165,7 +165,7 @@ public class WorldGenStructFeatManager extends #if PRE_MC_1_19_2 StructureFeatur return builder.build(); } #else - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 @Override public List startsForFeature(SectionPos sectionPos, Predicate> predicate) { diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepBiomes.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepBiomes.java index 0ea6286a2..f0ee76c04 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepBiomes.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepBiomes.java @@ -27,12 +27,12 @@ import com.seibel.distanthorizons.common.wrappers.worldGeneration.BatchGeneratio import com.seibel.distanthorizons.common.wrappers.worldGeneration.ThreadedParameters; import net.minecraft.server.level.WorldGenRegion; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 #endif import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.ProtoChunk; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.world.level.levelgen.blending.Blender; #endif @@ -65,12 +65,12 @@ public final class StepBiomes for (ChunkAccess chunk : chunksToDo) { // System.out.println("StepBiomes: "+chunk.getPos()); - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 environment.params.generator.createBiomes(environment.params.biomes, chunk); - #elif PRE_MC_1_19_2 + #elif MC_VER < MC_1_19_2 chunk = environment.joinSync(environment.params.generator.createBiomes(environment.params.biomes, Runnable::run, Blender.of(worldGenRegion), tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk)); - #elif PRE_MC_1_19_4 + #elif MC_VER < MC_1_19_4 chunk = environment.joinSync(environment.params.generator.createBiomes(environment.params.biomes, Runnable::run, environment.params.randomState, Blender.of(worldGenRegion), tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk)); #else diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepFeatures.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepFeatures.java index 8f2b94fb8..65092f701 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepFeatures.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepFeatures.java @@ -32,7 +32,7 @@ import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.ProtoChunk; import net.minecraft.world.level.levelgen.Heightmap; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 #endif public final class StepFeatures @@ -65,7 +65,7 @@ public final class StepFeatures { try { - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 worldGenRegion.setOverrideCenter(chunk.getPos()); environment.params.generator.applyBiomeDecoration(worldGenRegion, tParams.structFeat); #else diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepNoise.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepNoise.java index f2670d97a..1974e385d 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepNoise.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepNoise.java @@ -28,14 +28,14 @@ import com.seibel.distanthorizons.common.wrappers.worldGeneration.ThreadedParame import com.seibel.distanthorizons.core.util.objects.UncheckedInterruptedException; import net.minecraft.server.level.WorldGenRegion; -#if POST_MC_1_17_1 +#if MC_VER >= MC_1_17_1 #endif -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 #endif import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.ProtoChunk; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.world.level.levelgen.blending.Blender; #endif @@ -69,12 +69,12 @@ public final class StepNoise for (ChunkAccess chunk : chunksToDo) { // System.out.println("StepNoise: "+chunk.getPos()); - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 environment.params.generator.fillFromNoise(worldGenRegion, tParams.structFeat, chunk); - #elif PRE_MC_1_18_2 + #elif MC_VER < MC_1_18_2 chunk = environment.joinSync(environment.params.generator.fillFromNoise(Runnable::run, tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk)); - #elif PRE_MC_1_19_2 + #elif MC_VER < MC_1_19_2 chunk = environment.joinSync(environment.params.generator.fillFromNoise(Runnable::run, Blender.of(worldGenRegion), tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk)); #else diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepStructureReference.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepStructureReference.java index e9bc14cfb..76ee86400 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepStructureReference.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepStructureReference.java @@ -27,7 +27,7 @@ import com.seibel.distanthorizons.common.wrappers.worldGeneration.BatchGeneratio import com.seibel.distanthorizons.common.wrappers.worldGeneration.ThreadedParameters; import net.minecraft.server.level.WorldGenRegion; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 #endif import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.chunk.ChunkStatus; diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepStructureStart.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepStructureStart.java index b4d76c08d..63cc74800 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepStructureStart.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepStructureStart.java @@ -77,10 +77,10 @@ public final class StepStructureStart } } - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 if (environment.params.worldGenSettings.generateFeatures()) { - #elif PRE_MC_1_19_4 + #elif MC_VER < MC_1_19_4 if (environment.params.worldGenSettings.generateStructures()) { #else if (environment.params.worldOptions.generateStructures()) @@ -98,10 +98,10 @@ public final class StepStructureStart // and should prevent some concurrency issues STRUCTURE_PLACEMENT_LOCK.lock(); - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 environment.params.generator.createStructures(environment.params.registry, tParams.structFeat, chunk, environment.params.structures, environment.params.worldSeed); - #elif PRE_MC_1_19_4 + #elif MC_VER < MC_1_19_4 environment.params.generator.createStructures(environment.params.registry, environment.params.randomState, tParams.structFeat, chunk, environment.params.structures, environment.params.worldSeed); #else @@ -110,7 +110,7 @@ public final class StepStructureStart tParams.structFeat, chunk, environment.params.structures); #endif - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 try { tParams.structCheck.onStructureLoad(chunk.getPos(), chunk.getAllStarts()); diff --git a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepSurface.java b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepSurface.java index 39c4a6e8d..5978651d8 100644 --- a/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepSurface.java +++ b/common/src/main/java/com/seibel/distanthorizons/common/wrappers/worldGeneration/step/StepSurface.java @@ -61,9 +61,9 @@ public final class StepSurface for (ChunkAccess chunk : chunksToDo) { // System.out.println("StepSurface: "+chunk.getPos()); - #if PRE_MC_1_18_2 + #if MC_VER < MC_1_18_2 environment.params.generator.buildSurfaceAndBedrock(worldGenRegion, chunk); - #elif PRE_MC_1_19_2 + #elif MC_VER < MC_1_19_2 environment.params.generator.buildSurface(worldGenRegion, tParams.structFeat.forWorldGenRegion(worldGenRegion), chunk); #else environment.params.generator.buildSurface(worldGenRegion, tParams.structFeat.forWorldGenRegion(worldGenRegion), environment.params.randomState, chunk); diff --git a/contributing.md b/contributing.md index 13981c4cf..45e1b6118 100644 --- a/contributing.md +++ b/contributing.md @@ -14,7 +14,7 @@ By sending a merge request, you agree to abide by the Distant Horizons [Contribu Contributions to this project are under the [lesser GPL v3 license](LICENSE.txt) Copyright James Seibel, so please include the [license header](license_header.txt) at the top of any new code files. 1. Fork, then clone the repo: \ -`git clone --recurse-submodules https://gitlab.com/jeseibel/minecraft-lod-mod.git` +`git clone --recurse-submodules https://gitlab.com/jeseibel/distant-horizons.git` 2. Set up your dev environment: \ `./gradlew build` @@ -37,13 +37,13 @@ Contributions to this project are under the [lesser GPL v3 license](LICENSE.txt) `./gradlew fabric:runClient` \ When running the game, load or generate a world to confirm Distant Horizons initializes correctly. -9. Push to your fork, make sure to include the Core submodule, and submit a [new merge request](https://gitlab.com/jeseibel/minecraft-lod-mod/-/merge_requests/new). +9. Push to your fork, make sure to include the Core submodule, and submit a [new merge request](https://gitlab.com/jeseibel/distant-horizons/-/merge_requests/new). ## General Guidelines -* Check the existing issue list to verify that a given [bug](https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Bug&first_page_size=100), [feature](https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Feature&first_page_size=100), or [improvement](https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Improvement&first_page_size=100) hasn't already been submitted. +* Check the existing issue list to verify that a given [bug](https://gitlab.com/jeseibel/distant-horizons/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Bug&first_page_size=100), [feature](https://gitlab.com/jeseibel/distant-horizons/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Feature&first_page_size=100), or [improvement](https://gitlab.com/jeseibel/distant-horizons/-/issues/?sort=created_date&state=opened&label_name%5B%5D=Improvement&first_page_size=100) hasn't already been submitted. * Please open an issue if things aren't working as expected. * Open a merge request to: fix bugs, fix documentations, improve an existing system, or complete a feature. * When contributing: diff --git a/coreSubProjects b/coreSubProjects index cb95c45d7..077d72c23 160000 --- a/coreSubProjects +++ b/coreSubProjects @@ -1 +1 @@ -Subproject commit cb95c45d76feba6dab1129c5faf6fca21f7c2232 +Subproject commit 077d72c23b6477426bc5b69286ae23942c39bf9e diff --git a/fabric/build.gradle b/fabric/build.gradle index e477c062f..62e2f9eef 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,5 +1,5 @@ plugins { - id "fabric-loom" version "1.1.+" + id "fabric-loom" version "1.4-SNAPSHOT" } loom { @@ -28,7 +28,7 @@ loom { remapJar { inputFile = shadowJar.archiveFile dependsOn shadowJar - classifier null +// classifier null } configurations { @@ -132,7 +132,7 @@ processResources { runClient { dependsOn(copyCoreResources) dependsOn(copyCommonLoaderResources) - jvmArgs([ "-XX:-OmitStackTraceInFastThrow", minecraftMemoryJavaArg ]) +// jvmArgs([ "-XX:-OmitStackTraceInFastThrow", minecraftMemoryJavaArg ]) finalizedBy(deleteResources) } diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java index 28d0548ed..019b034c0 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricClientProxy.java @@ -199,9 +199,9 @@ public class FabricClientProxy { float[] matrixFloatArray = SeamlessOverdraw.overwriteMinecraftNearFarClipPlanes(renderContext.projectionMatrix(), renderContext.tickDelta()); - #if MC_1_16_5 + #if MC_VER == MC_1_16_5 SeamlessOverdraw.applyLegacyProjectionMatrix(matrixFloatArray); - #elif PRE_MC_1_19_4 + #elif MC_VER < MC_1_19_4 renderContext.projectionMatrix().load(FloatBuffer.wrap(matrixFloatArray)); #else renderContext.projectionMatrix().set(matrixFloatArray); diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java index 00c93851b..931f729a6 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java @@ -59,7 +59,7 @@ public class FabricMain if (Config.Client.Advanced.Graphics.Fog.disableVanillaFog.get() && SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("bclib")) ModAccessorInjector.INSTANCE.get(IBCLibAccessor.class).setRenderCustomFog(false); // Remove BCLib's fog - #if POST_MC_1_20_1 + #if MC_VER >= MC_1_20_1 if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("sodium")) ModAccessorInjector.INSTANCE.get(ISodiumAccessor.class).setFogOcclusion(false); // FIXME: This is a tmp fix for sodium 0.5.0, and 0.5.1. This is fixed in sodium 0.5.2 #endif @@ -123,7 +123,7 @@ public class FabricMain ModAccessorInjector.INSTANCE.bind(IBCLibAccessor.class, new BCLibAccessor()); } - #if MC_1_16_5 || MC_1_18_2 || MC_1_19_2 || MC_1_19_4 || MC_1_20_1 + #if MC_VER != MC_1_17_1 && MC_VER <= MC_1_20_1 // 1.17.1 won't support this since there isn't a matching Iris version if (modChecker.isModLoaded("iris")) { diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientLevel.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientLevel.java index 4343c34a7..59c290576 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientLevel.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientLevel.java @@ -24,7 +24,7 @@ import com.seibel.distanthorizons.common.wrappers.world.ClientLevelWrapper; import com.seibel.distanthorizons.core.api.internal.ClientApi; import com.seibel.distanthorizons.core.api.internal.SharedApi; import net.minecraft.client.multiplayer.ClientLevel; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 #endif import net.minecraft.world.level.chunk.LevelChunk; import org.spongepowered.asm.mixin.Mixin; @@ -44,14 +44,14 @@ public class MixinClientLevel // //Moved to MixinClientPacketListener // @Inject(method = "", at = @At("TAIL")) // private void loadWorldEvent(ClientPacketListener clientPacketListener, ClientLevel.ClientLevelData clientLevelData, ResourceKey resourceKey, -// #if POST_MC_1_18_2 Holder holder, #else DimensionType dimensionType, #endif int i, -// #if POST_MC_1_18_2 int j, #endif Supplier supplier, LevelRenderer levelRenderer, boolean bl, long l, CallbackInfo ci) +// #if MC_VER >= MC_1_18_2 Holder holder, #else DimensionType dimensionType, #endif int i, +// #if MC_VER >= MC_1_18_2 int j, #endif Supplier supplier, LevelRenderer levelRenderer, boolean bl, long l, CallbackInfo ci) // { // ClientApi.INSTANCE.clientLevelLoadEvent(WorldWrapper.getWorldWrapper((ClientLevel)(Object)this)); // } // Moved to overriding the enableChunkLight(...) method over at ClientPacketListener for 1.20+ - #if POST_MC_1_18_2 && PRE_MC_1_20_1 // Only the setLightReady is only available after 1.18. This ensures the light data is ready. + #if MC_VER >= MC_1_18_2 && MC_VER < MC_1_20_1 // Only the setLightReady is only available after 1.18. This ensures the light data is ready. @Inject(method = "setLightReady", at = @At("HEAD")) private void onChunkLightReady(int x, int z, CallbackInfo ci) { diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientPacketListener.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientPacketListener.java index b290d6aad..2e7716b87 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientPacketListener.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinClientPacketListener.java @@ -11,7 +11,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -#if POST_MC_1_20_1 +#if MC_VER >= MC_1_20_1 import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; import net.minecraft.world.level.chunk.LevelChunk; import com.seibel.distanthorizons.common.wrappers.chunk.ChunkWrapper; @@ -31,7 +31,7 @@ public class MixinClientPacketListener @Inject(method = "handleRespawn", at = @At("RETURN")) void onHandleRespawnEnd(CallbackInfo ci) { ClientApi.INSTANCE.clientLevelLoadEvent(ClientLevelWrapper.getWrapper(this.level)); } - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 @Inject(method = "cleanup", at = @At("HEAD")) #else @Inject(method = "close", at = @At("HEAD")) @@ -45,7 +45,7 @@ public class MixinClientPacketListener ClientApi.INSTANCE.onClientOnlyDisconnected(); } - #if POST_MC_1_20_1 + #if MC_VER >= MC_1_20_1 @Inject(method = "enableChunkLight", at = @At("TAIL")) void onEnableChunkLight(LevelChunk chunk, int x, int z, CallbackInfo ci) { diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinFogRenderer.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinFogRenderer.java index ead892c02..3f24f1865 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinFogRenderer.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinFogRenderer.java @@ -35,7 +35,7 @@ import net.minecraft.client.renderer.FogRenderer.FogMode; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; -#if PRE_MC_1_17_1 +#if MC_VER < MC_1_17_1 import net.minecraft.world.level.material.FluidState; #else import net.minecraft.world.level.material.FogType; @@ -50,14 +50,14 @@ public class MixinFogRenderer private static final float A_EVEN_LARGER_VALUE = 42069420694206942069.F; @Inject(at = @At("RETURN"), method = "setupFog") - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 private static void disableSetupFog(Camera camera, FogMode fogMode, float f, boolean bl, CallbackInfo callback) { #else private static void disableSetupFog(Camera camera, FogMode fogMode, float f, boolean bl, float g, CallbackInfo callback) { #endif - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 FluidState fluidState = camera.getFluidInCamera(); boolean cameraNotInFluid = fluidState.isEmpty(); #else @@ -71,7 +71,7 @@ public class MixinFogRenderer && !SingletonInjector.INSTANCE.get(IMinecraftRenderWrapper.class).isFogStateSpecial() && Config.Client.Advanced.Graphics.Fog.disableVanillaFog.get()) { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 RenderSystem.fogStart(A_REALLY_REALLY_BIG_VALUE); RenderSystem.fogEnd(A_EVEN_LARGER_VALUE); #else diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinGameRenderer.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinGameRenderer.java index 27b97fe65..4cc9c68c2 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinGameRenderer.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinGameRenderer.java @@ -16,7 +16,7 @@ public class MixinGameRenderer private static final Logger LOGGER = LogManager.getLogger(MixinGameRenderer.class.getSimpleName()); - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 // FIXME: This I think will dup multiple renderStartupEvent calls... @Inject(method = {"reloadShaders", "preloadUiShader"}, at = @At("TAIL")) public void onStartupShaders(CallbackInfo ci) diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java index 5c687cd4e..4d2f041a2 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinLevelRenderer.java @@ -20,7 +20,7 @@ package com.seibel.distanthorizons.fabric.mixins.client; import com.mojang.blaze3d.vertex.PoseStack; -#if PRE_MC_1_19_4 +#if MC_VER < MC_1_19_4 import com.mojang.math.Matrix4f; #else import net.minecraft.client.Camera; @@ -67,7 +67,7 @@ public class MixinLevelRenderer // Inject rendering at first call to renderChunkLayer // HEAD or RETURN - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 @Inject(at = @At("RETURN"), method = "renderSky(Lcom/mojang/blaze3d/vertex/PoseStack;F)V") private void renderSky(PoseStack matrixStackIn, float partialTicks, CallbackInfo callback) { @@ -84,17 +84,17 @@ public class MixinLevelRenderer } #endif - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/vertex/PoseStack;DDD)V", cancellable = true) private void renderChunkLayer(RenderType renderType, PoseStack matrixStackIn, double xIn, double yIn, double zIn, CallbackInfo callback) - #elif PRE_MC_1_19_4 + #elif MC_VER < MC_1_19_4 @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/vertex/PoseStack;DDDLcom/mojang/math/Matrix4f;)V", cancellable = true) private void renderChunkLayer(RenderType renderType, PoseStack modelViewMatrixStack, double cameraXBlockPos, double cameraYBlockPos, double cameraZBlockPos, Matrix4f projectionMatrix, CallbackInfo callback) - #elif PRE_MC_1_20_2 + #elif MC_VER < MC_1_20_2 @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/vertex/PoseStack;DDDLorg/joml/Matrix4f;)V", cancellable = true) @@ -113,10 +113,10 @@ public class MixinLevelRenderer } } - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 @Inject(at = @At(value = "TAIL", target = "Lnet/minecraft/world/level/lighting/LevelLightEngine;runUpdates(IZZ)I"), method = "renderLevel") public void callAfterRunUpdates(PoseStack poseStack, float partialTick, long finishNanoTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f projectionMatrix, CallbackInfo ci) - #elif PRE_MC_1_20_1 + #elif MC_VER < MC_1_20_1 @Inject(at = @At(value = "TAIL", target = "Lnet/minecraft/world/level/lighting/LevelLightEngine;runUpdates(IZZ)I"), method = "renderLevel") public void callAfterRunUpdates(PoseStack poseStack, float partialTick, long finishNanoTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f projectionMatrix, CallbackInfo ci) #else diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java index 92d79850a..3e7e1c12b 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinMinecraft.java @@ -25,8 +25,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(Minecraft.class) public class MixinMinecraft { - #if PRE_MC_1_20_2 - #if MC_1_20_1 + #if MC_VER < MC_1_20_2 + #if MC_VER == MC_1_20_1 @Redirect( method = "Lnet/minecraft/client/Minecraft;setInitialScreen(Lcom/mojang/realmsclient/client/RealmsClient;Lnet/minecraft/server/packs/resources/ReloadInstance;Lnet/minecraft/client/main/GameConfig$QuickPlayData;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;setScreen(Lnet/minecraft/client/gui/screens/Screen;)V") @@ -61,7 +61,7 @@ public class MixinMinecraft } #endif - #if POST_MC_1_20_2 + #if MC_VER >= MC_1_20_2 @Redirect( method = "Lnet/minecraft/client/Minecraft;onGameLoadFinished(Lnet/minecraft/client/Minecraft$GameLoadCookie;)V", at = @At(value = "INVOKE", target = "Ljava/lang/Runnable;run()V") diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinOptionsScreen.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinOptionsScreen.java index 7fbb823a1..61b805be5 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinOptionsScreen.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinOptionsScreen.java @@ -26,7 +26,7 @@ import com.seibel.distanthorizons.core.config.Config; import net.minecraft.client.gui.screens.OptionsScreen; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraft.network.chat.TranslatableComponent; #endif import net.minecraft.resources.ResourceLocation; @@ -57,7 +57,7 @@ public class MixinOptionsScreen extends Screen private void lodconfig$init(CallbackInfo ci) { if (Config.Client.optionsButton.get()) - this. #if PRE_MC_1_17_1 addButton #else addRenderableWidget #endif + this. #if MC_VER < MC_1_17_1 addButton #else addRenderableWidget #endif (new TexturedButtonWidget( // Where the button is on the screen this.width / 2 - 180, this.height / 6 - 12, @@ -71,7 +71,7 @@ public class MixinOptionsScreen extends Screen // For now it goes to the client option by default (buttonWidget) -> Objects.requireNonNull(minecraft).setScreen(GetConfigScreen.getScreen(this)), // Add a title to the utton - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 new TranslatableComponent(ModInfo.ID + ".title"))); #else Component.translatable(ModInfo.ID + ".title"))); diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinTextureUtil.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinTextureUtil.java index 91e27661c..597d5a609 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinTextureUtil.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/client/MixinTextureUtil.java @@ -16,7 +16,7 @@ import org.spongepowered.asm.mixin.injection.Redirect; public class MixinTextureUtil { @Redirect(method = "Lcom/mojang/blaze3d/platform/TextureUtil;prepareImage(Lcom/mojang/blaze3d/platform/NativeImage$InternalGlFormat;IIII)V", - at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;_texParameter(IIF)V", #if MC_1_16_5 remap = true #else remap = false #endif)) + at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/platform/GlStateManager;_texParameter(IIF)V", #if MC_VER == MC_1_16_5 remap = true #else remap = false #endif)) private static void setLodBias(int target, int pname, float param) { float biasValue = Config.Client.Advanced.Graphics.AdvancedGraphics.lodBias.get().floatValue(); diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/events/MixinServerLevel.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/events/MixinServerLevel.java index a475b61a6..9d02eb99d 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/events/MixinServerLevel.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/events/MixinServerLevel.java @@ -31,7 +31,7 @@ import org.spongepowered.asm.mixin.Mixin; @Deprecated // TODO: Not sure if this is needed anymore public class MixinServerLevel { -// #if PRE_MC_1_17_1 +// #if MC_VER < MC_1_17_1 // @Inject(method = "save", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerChunkCache;save(Z)V", shift = At.Shift.AFTER)) // private void saveWorldEvent(ProgressListener progressListener, boolean bl, boolean bl2, CallbackInfo ci) { // Main.client_proxy.worldSaveEvent(); diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/mods/sodium/MixinSodiumRenderer.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/mods/sodium/MixinSodiumRenderer.java index 13660062b..498fdf8c9 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/mods/sodium/MixinSodiumRenderer.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/mods/sodium/MixinSodiumRenderer.java @@ -2,19 +2,25 @@ package com.seibel.distanthorizons.fabric.mixins.mods.sodium; /* Removed since DH now uses Indium so we can use the Fabric rendering API instead -#if POST_MC_1_20_1 -// Sodium 0.5.1 +#if MC_VER >= MC_1_20_1 +// Sodium 0.5 +import com.mojang.blaze3d.vertex.PoseStack; import com.seibel.distanthorizons.core.api.internal.ClientApi; import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.ISodiumAccessor; import com.seibel.distanthorizons.fabric.wrappers.modAccessor.SodiumAccessor; import me.jellysquid.mods.sodium.client.gl.device.CommandList; +import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer; import me.jellysquid.mods.sodium.client.render.chunk.ChunkRenderMatrices; import me.jellysquid.mods.sodium.client.render.chunk.DefaultChunkRenderer; +import me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager; import me.jellysquid.mods.sodium.client.render.chunk.lists.ChunkRenderListIterable; +import me.jellysquid.mods.sodium.client.render.chunk.lists.SortedRenderLists; +import me.jellysquid.mods.sodium.client.render.chunk.region.RenderRegionManager; import me.jellysquid.mods.sodium.client.render.chunk.terrain.DefaultTerrainRenderPasses; import me.jellysquid.mods.sodium.client.render.chunk.terrain.TerrainRenderPass; import me.jellysquid.mods.sodium.client.render.viewport.CameraTransform; +import net.minecraft.client.renderer.RenderType; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; @@ -25,8 +31,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; public class MixinSodiumRenderer { @Unique SodiumAccessor accessor = null; - - @Inject(remap = false, method = "render", at = @At(value = "INVOKE", target = "Lme/jellysquid/mods/sodium/client/render/chunk/ShaderChunkRenderer;begin(Lme/jellysquid/mods/sodium/client/render/chunk/terrain/TerrainRenderPass;)V", shift = At.Shift.AFTER)) + + @Inject(remap = false, method = "render", at = @At(value = "INVOKE", target = "Lme/jellysquid/mods/sodium/client/render/chunk/ShaderChunkRenderer;begin(Lme/jellysquid/mods/sodium/client/render/chunk/terrain/TerrainRenderPass;)V", shift = At.Shift.AFTER)) private void injectDHLoDRendering(ChunkRenderMatrices matrices, CommandList commandList, ChunkRenderListIterable renderLists, TerrainRenderPass renderPass, CameraTransform camera, CallbackInfo ci) { if (accessor == null) @@ -45,9 +51,11 @@ public class MixinSodiumRenderer accessor.partialTicks); } } + + } -#elif POST_MC_1_17_1 +#elif MC_VER >= MC_1_17_1 // Sodium 0.3 to 0.4 import com.seibel.distanthorizons.core.api.internal.ClientApi; import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector; diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinChunkGenerator.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinChunkGenerator.java index e0d28ec86..14be488cd 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinChunkGenerator.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinChunkGenerator.java @@ -22,7 +22,7 @@ package com.seibel.distanthorizons.fabric.mixins.server; import org.spongepowered.asm.mixin.Mixin; import net.minecraft.world.level.chunk.ChunkGenerator; -#if PRE_MC_1_18_2 +#if MC_VER < MC_1_18_2 import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinChunkMap.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinChunkMap.java index 90033b89a..8544ed05e 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinChunkMap.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinChunkMap.java @@ -55,7 +55,7 @@ public class MixinChunkMap //==================// // some chunks may be missing their biomes, which cause issues when attempting to save them - #if MC_1_16_5 || MC_1_17_1 + #if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 if (chunk.getBiomes() == null) { return; diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinUtilBackgroundThread.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinUtilBackgroundThread.java index 6e58f36af..8bfd986df 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinUtilBackgroundThread.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/MixinUtilBackgroundThread.java @@ -50,7 +50,7 @@ public class MixinUtilBackgroundThread } } - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 @Inject(method = "wrapThreadWithTaskName(Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Runnable;", at = @At("HEAD"), cancellable = true) private static void overrideUtil$wrapThreadWithTaskName(String string, Runnable r, CallbackInfoReturnable ci) @@ -62,7 +62,7 @@ public class MixinUtilBackgroundThread } } #endif - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 @Inject(method = "wrapThreadWithTaskName(Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/util/function/Supplier;", at = @At("HEAD"), cancellable = true) private static void overrideUtil$wrapThreadWithTaskNameForSupplier(String string, Supplier r, CallbackInfoReturnable> ci) diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/unsafe/MixinThreadingDetector.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/unsafe/MixinThreadingDetector.java index b6027388f..24641322f 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/unsafe/MixinThreadingDetector.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/mixins/server/unsafe/MixinThreadingDetector.java @@ -22,7 +22,7 @@ package com.seibel.distanthorizons.fabric.mixins.server.unsafe; import org.spongepowered.asm.mixin.Mixin; //FIXME: Is this still needed? -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.util.ThreadingDetector; import org.spongepowered.asm.mixin.Mutable; diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/BCLibAccessor.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/BCLibAccessor.java index 968a98086..93934f15e 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/BCLibAccessor.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/BCLibAccessor.java @@ -1,8 +1,8 @@ package com.seibel.distanthorizons.fabric.wrappers.modAccessor; import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IBCLibAccessor; -#if MC_1_16_5 || MC_1_17_1 -#elif MC_1_18_2 +#if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 || MC_VER == MC_1_20_4 // These versions either don't have BCLib, or the implementation is different +#elif MC_VER == MC_1_18_2 import ru.bclib.config.ClientConfig; import ru.bclib.config.Configs; #else @@ -17,7 +17,7 @@ public class BCLibAccessor implements IBCLibAccessor public void setRenderCustomFog(boolean newValue) { - #if !(MC_1_16_5 || MC_1_17_1) // 1.16 and 1.17 don't have "ClientConfig.CUSTOM_FOG_RENDERING" + #if !(MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 || MC_VER == MC_1_20_4) // These versions either don't have BCLib, or the implementation is different // Change the value of CUSTOM_FOG_RENDERING in the bclib client config // This disabled fog from rendering within bclib diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/IrisAccessor.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/IrisAccessor.java index 37fe1b2a0..53edafd5e 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/IrisAccessor.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/IrisAccessor.java @@ -19,7 +19,7 @@ package com.seibel.distanthorizons.fabric.wrappers.modAccessor; -#if MC_1_16_5 || MC_1_18_2 || MC_1_19_2 || MC_1_19_4 || MC_1_20_1 +#if MC_VER != MC_1_17_1 && MC_VER <= MC_1_20_1 import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IIrisAccessor; import net.coderbot.iris.Iris; diff --git a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/SodiumAccessor.java b/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/SodiumAccessor.java index 72289277a..7145d673a 100644 --- a/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/SodiumAccessor.java +++ b/fabric/src/main/java/com/seibel/distanthorizons/fabric/wrappers/modAccessor/SodiumAccessor.java @@ -33,7 +33,7 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.ISodiumAcce import com.seibel.distanthorizons.core.wrapperInterfaces.world.IClientLevelWrapper; import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer; import net.minecraft.client.Minecraft; -#if PRE_MC_1_17_1 +#if MC_VER < MC_1_17_1 import net.minecraft.nbt.CompoundTag; import net.minecraft.network.protocol.Packet; import net.minecraft.world.entity.Entity; @@ -60,21 +60,21 @@ public class SodiumAccessor implements ISodiumAccessor return "Sodium-Fabric"; } - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 @Override public HashSet getNormalRenderedChunks() { SodiumWorldRenderer renderer = SodiumWorldRenderer.instance(); LevelHeightAccessor height = Minecraft.getInstance().level; - #if POST_MC_1_20_1 + #if MC_VER >= MC_1_20_1 // TODO: This is just a tmp solution, use a proper solution later return MC_RENDER.getMaximumRenderedChunks().stream().filter((DhChunkPos chunk) -> { return (renderer.isBoxVisible( chunk.getMinBlockX() + 1, height.getMinBuildHeight() + 1, chunk.getMinBlockZ() + 1, chunk.getMinBlockX() + 15, height.getMaxBuildHeight() - 1, chunk.getMinBlockZ() + 15)); }).collect(Collectors.toCollection(HashSet::new)); - #elif POST_MC_1_18_2 + #elif MC_VER >= MC_1_18_2 // 0b11 = Lighted chunk & loaded chunk return renderer.getChunkTracker().getChunks(0b00).filter( (long l) -> { @@ -134,7 +134,7 @@ public class SodiumAccessor implements ISodiumAccessor @Override public void setFogOcclusion(boolean b) { - #if POST_MC_1_20_1 + #if MC_VER >= MC_1_20_1 me.jellysquid.mods.sodium.client.SodiumClientMod.options().performance.useFogOcclusion = b; #endif } diff --git a/forge/build.gradle b/forge/build.gradle index 2a2753f91..0e34fa028 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,4 +1,6 @@ plugins { + // Note: This is only needed for multi-loader projects + // The main architectury loom version is set at the start of the root build.gradle id "architectury-plugin" version "3.4-SNAPSHOT" } @@ -18,6 +20,7 @@ architectury { //} loom { + silentMojangMappingsLicense() // Shut the licencing warning accessWidenerPath = project(":common").file("src/main/resources/${accessWidenerVersion}.distanthorizons.accesswidener") forge { @@ -36,7 +39,7 @@ loom { setConfigName("Forge Client") ideConfigGenerated(true) runDir("../run") - vmArgs("-XX:-OmitStackTraceInFastThrow", minecraftMemoryJavaArg) +// vmArgs("-XX:-OmitStackTraceInFastThrow", minecraftMemoryJavaArg) } server { server() @@ -50,7 +53,7 @@ loom { remapJar { inputFile = shadowJar.archiveFile dependsOn shadowJar - classifier null +// classifier null } diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeClientProxy.java b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeClientProxy.java index 90c39bfcd..66e248f19 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeClientProxy.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeClientProxy.java @@ -37,7 +37,7 @@ import net.minecraft.world.level.LevelAccessor; import net.minecraft.resources.ResourceLocation; import net.minecraft.client.multiplayer.ClientLevel; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraftforge.event.world.ChunkEvent; import net.minecraftforge.event.world.WorldEvent; #else @@ -45,7 +45,7 @@ import net.minecraftforge.event.level.ChunkEvent; import net.minecraftforge.event.level.LevelEvent; #endif -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraftforge.client.event.RenderLevelStageEvent; #endif import net.minecraftforge.event.entity.player.PlayerInteractEvent; @@ -80,7 +80,7 @@ public class ForgeClientProxy private static SimpleChannel multiversePluginChannel; - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 private static LevelAccessor GetEventLevel(WorldEvent e) { return e.getWorld(); } #else private static LevelAccessor GetEventLevel(LevelEvent e) { return e.getLevel(); } @@ -108,7 +108,7 @@ public class ForgeClientProxy //==============// @SubscribeEvent - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 public void clientLevelLoadEvent(WorldEvent.Load event) #else public void clientLevelLoadEvent(LevelEvent.Load event) @@ -116,7 +116,7 @@ public class ForgeClientProxy { LOGGER.info("level load"); - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 LevelAccessor level = event.getWorld(); #else LevelAccessor level = event.getLevel(); @@ -132,7 +132,7 @@ public class ForgeClientProxy ClientApi.INSTANCE.clientLevelLoadEvent(clientLevelWrapper); } @SubscribeEvent - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 public void clientLevelUnloadEvent(WorldEvent.Unload event) #else public void clientLevelUnloadEvent(LevelEvent.Load event) @@ -140,7 +140,7 @@ public class ForgeClientProxy { LOGGER.info("level unload"); - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 LevelAccessor level = event.getWorld(); #else LevelAccessor level = event.getLevel(); @@ -166,7 +166,7 @@ public class ForgeClientProxy { LOGGER.trace("interact or block place event at blockPos: " + event.getPos()); - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 LevelAccessor level = event.getWorld(); #else LevelAccessor level = event.getLevel(); @@ -180,7 +180,7 @@ public class ForgeClientProxy { LOGGER.trace("break or block attack at blockPos: " + event.getPos()); - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 LevelAccessor level = event.getWorld(); #else LevelAccessor level = event.getLevel(); @@ -218,7 +218,7 @@ public class ForgeClientProxy //==============// @SubscribeEvent - public void registerKeyBindings(#if PRE_MC_1_19_2 InputEvent.KeyInputEvent #else InputEvent.Key #endif event) + public void registerKeyBindings(#if MC_VER < MC_1_19_2 InputEvent.KeyInputEvent #else InputEvent.Key #endif event) { if (Minecraft.getInstance().player == null) { @@ -299,15 +299,15 @@ public class ForgeClientProxy //===========// @SubscribeEvent - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 public void afterLevelRenderEvent(RenderLevelStageEvent event) #else public void afterLevelRenderEvent(TickEvent.RenderTickEvent event) #endif { - #if POST_MC_1_20_1 + #if MC_VER >= MC_1_20_1 if (event.getStage() == RenderLevelStageEvent.Stage.AFTER_LEVEL) - #elif POST_MC_1_18_2 + #elif MC_VER >= MC_1_18_2 if (event.getStage() == RenderLevelStageEvent.Stage.AFTER_SOLID_BLOCKS) #else // FIXME: Is this the correct location for 1.16 & 1.17??? diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeMain.java b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeMain.java index 6ee80e4de..4195b2dea 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeMain.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeMain.java @@ -39,7 +39,7 @@ import com.seibel.distanthorizons.forge.wrappers.modAccessor.OptifineAccessor; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.core.Direction; -#if POST_MC_1_19_2 +#if MC_VER >= MC_1_19_2 import net.minecraft.util.RandomSource; #endif import net.minecraft.world.level.ColorResolver; @@ -51,11 +51,11 @@ import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.*; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -#if PRE_MC_1_17_1 +#if MC_VER < MC_1_17_1 import net.minecraftforge.fml.ExtensionPoint; -#elif MC_1_17_1 +#elif MC_VER == MC_1_17_1 import net.minecraftforge.fmlclient.ConfigGuiHandler; -#elif POST_MC_1_18_2 && PRE_MC_1_19_2 +#elif MC_VER >= MC_1_18_2 && MC_VER < MC_1_19_2 import net.minecraftforge.client.ConfigGuiHandler; #else import net.minecraftforge.client.ConfigScreenHandler; @@ -64,7 +64,7 @@ import net.minecraftforge.client.ConfigScreenHandler; import org.apache.logging.log4j.Logger; // these imports change due to forge refactoring classes in 1.19 -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraftforge.client.model.data.ModelDataMap; import java.util.Random; @@ -128,10 +128,10 @@ public class ForgeMain implements LodForgeMethodCaller ModAccessorInjector.INSTANCE.bind(IOptifineAccessor.class, new OptifineAccessor()); } - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.CONFIGGUIFACTORY, () -> (client, parent) -> GetConfigScreen.getScreen(parent)); - #elif MC_1_17_1 || MC_1_18_2 || PRE_MC_1_19_2 + #elif MC_VER >= MC_1_17_1 && MC_VER < MC_1_19_2 ModLoadingContext.get().registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class, () -> new ConfigGuiHandler.ConfigGuiFactory((client, parent) -> GetConfigScreen.getScreen(parent))); #else @@ -169,14 +169,14 @@ public class ForgeMain implements LodForgeMethodCaller LOGGER.info("Mod Post-Initialized"); } - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 private final ModelDataMap modelData = new ModelDataMap.Builder().build(); #else private final ModelData modelData = ModelData.EMPTY; #endif @Override - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 public List getQuads(MinecraftClientWrapper mc, Block block, BlockState blockState, Direction direction, Random random) { return mc.getModelManager().getBlockModelShaper().getBlockModel(block.defaultBlockState()).getQuads(blockState, direction, random, modelData); @@ -184,7 +184,7 @@ public class ForgeMain implements LodForgeMethodCaller #else public List getQuads(MinecraftClientWrapper mc, Block block, BlockState blockState, Direction direction, RandomSource random) { - return mc.getModelManager().getBlockModelShaper().getBlockModel(block.defaultBlockState()).getQuads(blockState, direction, random, modelData #if POST_MC_1_19_2 , RenderType.solid() #endif ); + return mc.getModelManager().getBlockModelShaper().getBlockModel(block.defaultBlockState()).getQuads(blockState, direction, random, modelData #if MC_VER >= MC_1_19_2 , RenderType.solid() #endif ); } #endif diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeServerProxy.java b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeServerProxy.java index 46d2f5c6a..7b5c9b29c 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeServerProxy.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/ForgeServerProxy.java @@ -14,7 +14,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraftforge.event.TickEvent; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraftforge.event.world.ChunkEvent; import net.minecraftforge.event.world.WorldEvent; #else @@ -23,10 +23,10 @@ import net.minecraftforge.event.level.LevelEvent; #endif import net.minecraftforge.eventbus.api.SubscribeEvent; -#if MC_1_16_5 +#if MC_VER == MC_1_16_5 import net.minecraftforge.fml.event.server.FMLServerAboutToStartEvent; import net.minecraftforge.fml.event.server.FMLServerStoppingEvent; -#elif MC_1_17_1 +#elif MC_VER == MC_1_17_1 import net.minecraftforge.fmlserverevents.FMLServerAboutToStartEvent; import net.minecraftforge.fmlserverevents.FMLServerStoppingEvent; #else @@ -41,7 +41,7 @@ import java.util.function.Supplier; public class ForgeServerProxy { - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 private static LevelAccessor GetEventLevel(WorldEvent e) { return e.getWorld(); } #else private static LevelAccessor GetEventLevel(LevelEvent e) { return e.getLevel(); } @@ -81,21 +81,21 @@ public class ForgeServerProxy // ServerWorldLoadEvent @SubscribeEvent - public void dedicatedWorldLoadEvent(#if MC_1_16_5 || MC_1_17_1 FMLServerAboutToStartEvent #else ServerAboutToStartEvent #endif event) + public void dedicatedWorldLoadEvent(#if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 FMLServerAboutToStartEvent #else ServerAboutToStartEvent #endif event) { this.serverApi.serverLoadEvent(this.isDedicated); } // ServerWorldUnloadEvent @SubscribeEvent - public void serverWorldUnloadEvent(#if MC_1_16_5 || MC_1_17_1 FMLServerStoppingEvent #else ServerStoppingEvent #endif event) + public void serverWorldUnloadEvent(#if MC_VER == MC_1_16_5 || MC_VER == MC_1_17_1 FMLServerStoppingEvent #else ServerStoppingEvent #endif event) { this.serverApi.serverUnloadEvent(); } // ServerLevelLoadEvent @SubscribeEvent - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 public void serverLevelLoadEvent(WorldEvent.Load event) #else public void serverLevelLoadEvent(LevelEvent.Load event) @@ -109,7 +109,7 @@ public class ForgeServerProxy // ServerLevelUnloadEvent @SubscribeEvent - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 public void serverLevelUnloadEvent(WorldEvent.Unload event) #else public void serverLevelUnloadEvent(LevelEvent.Unload event) diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinClientPacketListener.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinClientPacketListener.java index 1bb20e3fa..2726de266 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinClientPacketListener.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinClientPacketListener.java @@ -16,7 +16,7 @@ public class MixinClientPacketListener @Inject(method = "handleLogin", at = @At("RETURN")) void onHandleLoginEnd(CallbackInfo ci) { ClientApi.INSTANCE.onClientOnlyConnected(); } - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 @Inject(method = "cleanup", at = @At("HEAD")) #else @Inject(method = "close", at = @At("HEAD")) diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinFogRenderer.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinFogRenderer.java index 597a9850b..db0ed1a9f 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinFogRenderer.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinFogRenderer.java @@ -35,7 +35,7 @@ import net.minecraft.client.renderer.FogRenderer.FogMode; import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.LivingEntity; -#if PRE_MC_1_17_1 +#if MC_VER < MC_1_17_1 import net.minecraft.world.level.material.FluidState; #else import net.minecraft.world.level.material.FogType; @@ -53,10 +53,10 @@ public class MixinFogRenderer @Inject(at = @At("RETURN"), method = "setupFog(Lnet/minecraft/client/Camera;Lnet/minecraft/client/renderer/FogRenderer$FogMode;FZF)V", - remap = #if MC_1_17_1 || MC_1_18_2 false #else true #endif ) // Remap messiness due to this being weird in forge + remap = #if MC_VER == MC_1_17_1 || MC_VER == MC_1_18_2 false #else true #endif ) // Remap messiness due to this being weird in forge private static void disableSetupFog(Camera camera, FogMode fogMode, float f, boolean bl, float partTick, CallbackInfo callback) { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 FluidState fluidState = camera.getFluidInCamera(); boolean cameraNotInFluid = fluidState.isEmpty(); #else @@ -71,7 +71,7 @@ public class MixinFogRenderer && !SingletonInjector.INSTANCE.get(IMinecraftRenderWrapper.class).isFogStateSpecial() && Config.Client.Advanced.Graphics.Fog.disableVanillaFog.get()) { - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 RenderSystem.fogStart(A_REALLY_REALLY_BIG_VALUE); RenderSystem.fogEnd(A_EVEN_LARGER_VALUE); #else diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinGameRenderer.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinGameRenderer.java index 316e89d59..614054ee2 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinGameRenderer.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinGameRenderer.java @@ -16,7 +16,7 @@ public class MixinGameRenderer { private static final Logger LOGGER = LogManager.getLogger(MixinGameRenderer.class.getSimpleName()); - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 // FIXME: This I think will dup multiple renderStartupEvent calls... @Inject(method = {"reloadShaders", "preloadUiShader"}, at = @At("TAIL")) public void onStartupShaders(CallbackInfo ci) diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinLevelRenderer.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinLevelRenderer.java index 2239adb4f..f6223c099 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinLevelRenderer.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinLevelRenderer.java @@ -20,7 +20,7 @@ package com.seibel.distanthorizons.forge.mixins.client; import com.mojang.blaze3d.vertex.PoseStack; -#if PRE_MC_1_19_4 +#if MC_VER < MC_1_19_4 import com.mojang.math.Matrix4f; #else import net.minecraft.client.Camera; @@ -52,7 +52,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import java.nio.FloatBuffer; -#if PRE_MC_1_17_1 +#if MC_VER < MC_1_17_1 import org.lwjgl.opengl.GL15; #endif @@ -84,7 +84,7 @@ public class MixinLevelRenderer throw new NullPointerException("Null cannot be cast to non-null type."); } - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 @Inject(at = @At("RETURN"), method = "renderSky(Lcom/mojang/blaze3d/vertex/PoseStack;F)V") private void renderSky(PoseStack matrixStackIn, float partialTicks, CallbackInfo callback) #else @@ -99,17 +99,17 @@ public class MixinLevelRenderer // TODO: Can we move this to forge's client proxy similarly to how fabric does it - #if PRE_MC_1_17_1 + #if MC_VER < MC_1_17_1 @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/vertex/PoseStack;DDD)V", cancellable = true) private void renderChunkLayer(RenderType renderType, PoseStack matrixStackIn, double xIn, double yIn, double zIn, CallbackInfo callback) - #elif PRE_MC_1_19_4 + #elif MC_VER < MC_1_19_4 @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/vertex/PoseStack;DDDLcom/mojang/math/Matrix4f;)V", cancellable = true) private void renderChunkLayer(RenderType renderType, PoseStack modelViewMatrixStack, double cameraXBlockPos, double cameraYBlockPos, double cameraZBlockPos, Matrix4f projectionMatrix, CallbackInfo callback) - #elif PRE_MC_1_20_2 + #elif MC_VER < MC_1_20_2 @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/vertex/PoseStack;DDDLorg/joml/Matrix4f;)V", cancellable = true) @@ -122,7 +122,7 @@ public class MixinLevelRenderer #endif { // get MC's model view and projection matrices - #if MC_1_16_5 + #if MC_VER == MC_1_16_5 // get the matrices from the OpenGL fixed pipeline float[] mcProjMatrixRaw = new float[16]; GL15.glGetFloatv(GL15.GL_PROJECTION_MATRIX, mcProjMatrixRaw); @@ -149,9 +149,9 @@ public class MixinLevelRenderer { float[] matrixFloatArray = SeamlessOverdraw.overwriteMinecraftNearFarClipPlanes(mcProjectionMatrix, previousPartialTicks); - #if MC_1_16_5 + #if MC_VER == MC_1_16_5 SeamlessOverdraw.applyLegacyProjectionMatrix(matrixFloatArray); - #elif PRE_MC_1_19_4 + #elif MC_VER < MC_1_19_4 projectionMatrix.load(FloatBuffer.wrap(matrixFloatArray)); #else projectionMatrix.set(matrixFloatArray); @@ -165,10 +165,10 @@ public class MixinLevelRenderer } } - #if PRE_MC_1_19_4 + #if MC_VER < MC_1_19_4 @Inject(at = @At(value = "TAIL", target = "Lnet/minecraft/world/level/lighting/LevelLightEngine;runUpdates(IZZ)I"), method = "renderLevel") public void callAfterRunUpdates(PoseStack poseStack, float partialTick, long finishNanoTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f projectionMatrix, CallbackInfo ci) - #elif PRE_MC_1_20_1 + #elif MC_VER < MC_1_20_1 @Inject(at = @At(value = "TAIL", target = "Lnet/minecraft/world/level/lighting/LevelLightEngine;runUpdates(IZZ)I"), method = "renderLevel") public void callAfterRunUpdates(PoseStack poseStack, float partialTick, long finishNanoTime, boolean renderBlockOutline, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f projectionMatrix, CallbackInfo ci) #else diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinMinecraft.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinMinecraft.java index 1aaa81bf7..b8c25e6e1 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinMinecraft.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinMinecraft.java @@ -25,8 +25,8 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(Minecraft.class) public class MixinMinecraft { - #if PRE_MC_1_20_2 - #if MC_1_20_1 + #if MC_VER < MC_1_20_2 + #if MC_VER == MC_1_20_1 @Redirect( method = "Lnet/minecraft/client/Minecraft;setInitialScreen(Lcom/mojang/realmsclient/client/RealmsClient;Lnet/minecraft/server/packs/resources/ReloadInstance;Lnet/minecraft/client/main/GameConfig$QuickPlayData;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;setScreen(Lnet/minecraft/client/gui/screens/Screen;)V") @@ -61,7 +61,7 @@ public class MixinMinecraft } #endif - #if POST_MC_1_20_2 + #if MC_VER >= MC_1_20_2 @Redirect( method = "Lnet/minecraft/client/Minecraft;onGameLoadFinished(Lnet/minecraft/client/Minecraft$GameLoadCookie;)V", at = @At(value = "INVOKE", target = "Ljava/lang/Runnable;run()V") diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinOptionsScreen.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinOptionsScreen.java index af33b5db0..e3af8c9e8 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinOptionsScreen.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/client/MixinOptionsScreen.java @@ -26,7 +26,7 @@ import com.seibel.distanthorizons.core.config.Config; import net.minecraft.client.gui.screens.OptionsScreen; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; -#if PRE_MC_1_19_2 +#if MC_VER < MC_1_19_2 import net.minecraft.network.chat.TranslatableComponent; #endif import net.minecraft.resources.ResourceLocation; @@ -57,7 +57,7 @@ public class MixinOptionsScreen extends Screen private void lodconfig$init(CallbackInfo ci) { if (Config.Client.optionsButton.get()) - this. #if PRE_MC_1_17_1 addButton #else addRenderableWidget #endif + this. #if MC_VER < MC_1_17_1 addButton #else addRenderableWidget #endif (new TexturedButtonWidget( // Where the button is on the screen this.width / 2 - 180, this.height / 6 - 12, @@ -71,7 +71,7 @@ public class MixinOptionsScreen extends Screen // For now it goes to the client option by default (buttonWidget) -> Objects.requireNonNull(minecraft).setScreen(GetConfigScreen.getScreen(this)), // Add a title to the button - #if PRE_MC_1_19_2 + #if MC_VER < MC_1_19_2 new TranslatableComponent(ModInfo.ID + ".title"))); #else Component.translatable(ModInfo.ID + ".title"))); diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinChunkGenerator.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinChunkGenerator.java index 5b15692ce..3541cf2fb 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinChunkGenerator.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinChunkGenerator.java @@ -22,7 +22,7 @@ package com.seibel.distanthorizons.forge.mixins.server; import org.spongepowered.asm.mixin.Mixin; import net.minecraft.world.level.chunk.ChunkGenerator; -#if PRE_MC_1_18_2 +#if MC_VER < MC_1_18_2 import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinTFChunkGenerator.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinTFChunkGenerator.java index 537592d1b..ab203d244 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinTFChunkGenerator.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinTFChunkGenerator.java @@ -3,13 +3,13 @@ package com.seibel.distanthorizons.forge.mixins.server; import net.minecraft.world.level.chunk.ChunkGenerator; import org.spongepowered.asm.mixin.Mixin; -#if MC_1_16_5 +#if MC_VER == MC_1_16_5 @Mixin(ChunkGenerator.class) class MixinTFChunkGenerator { // not currently implemented, attempting to run with the mod enabled in the IDE causes the game to lock up } -#elif PRE_MC_1_17_1 +#elif MC_VER < MC_1_17_1 import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinUtilBackgroundThread.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinUtilBackgroundThread.java index 59904ca04..dee12f792 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinUtilBackgroundThread.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/MixinUtilBackgroundThread.java @@ -50,7 +50,7 @@ public class MixinUtilBackgroundThread } } - #if POST_MC_1_17_1 + #if MC_VER >= MC_1_17_1 @Inject(method = "wrapThreadWithTaskName(Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Runnable;", at = @At("HEAD"), cancellable = true) private static void overrideUtil$wrapThreadWithTaskName(String string, Runnable r, CallbackInfoReturnable ci) @@ -62,7 +62,7 @@ public class MixinUtilBackgroundThread } } #endif - #if POST_MC_1_18_2 + #if MC_VER >= MC_1_18_2 @Inject(method = "wrapThreadWithTaskName(Ljava/lang/String;Ljava/util/function/Supplier;)Ljava/util/function/Supplier;", at = @At("HEAD"), cancellable = true) private static void overrideUtil$wrapThreadWithTaskNameForSupplier(String string, Supplier r, CallbackInfoReturnable> ci) diff --git a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/unsafe/MixinThreadingDetector.java b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/unsafe/MixinThreadingDetector.java index d692a4c49..2cb73c02c 100644 --- a/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/unsafe/MixinThreadingDetector.java +++ b/forge/src/main/java/com/seibel/distanthorizons/forge/mixins/server/unsafe/MixinThreadingDetector.java @@ -20,7 +20,7 @@ package com.seibel.distanthorizons.forge.mixins.server.unsafe; import org.spongepowered.asm.mixin.Mixin; -#if POST_MC_1_18_2 +#if MC_VER >= MC_1_18_2 import net.minecraft.util.ThreadingDetector; import org.spongepowered.asm.mixin.Mutable; diff --git a/gradle.properties b/gradle.properties index bdcfe672d..fbd09c11b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,7 +18,7 @@ mod_issues=https://gitlab.com/jeseibel/distant-horizons/-/issues mod_discord=https://discord.gg/xAB8G4cENx # Global Plugin Versions -manifold_version=2023.1.29 +manifold_version=2023.1.31 nightconfig_version=3.6.6 lz4_version=1.8.0 sqlite_jdbc_version=3.43.0.0 @@ -47,4 +47,4 @@ versionStr= mcVer=1.20.2 # Defines the maximum amount of memory Minecraft is allowed when run in a developement environment -minecraftMemoryJavaArg="-Xmx4G" +#minecraftMemoryJavaArg="-Xmx4G" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e708b1c02..d64cd4917 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9502e869d..e6aba2515 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -# TODO: Wait for forge to fix gradle 8 support, once it did change gradle to a newer version -distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip +networkTimeout=10000 +validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 1b6c78733..1aa94a426 100755 --- a/gradlew +++ b/gradlew @@ -55,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -80,13 +80,11 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum @@ -133,22 +131,29 @@ location of your Java installation." fi else JAVACMD=java - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your Java installation." + fi fi # Increase the maximum file descriptors if we can. if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac case $MAX_FD in #( '' | soft) :;; #( *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -193,11 +198,15 @@ if "$cygwin" || "$msys" ; then done fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ @@ -205,6 +214,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat index 107acd32c..93e3f59f1 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,8 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/settings.gradle b/settings.gradle index b1e6b43cb..7a873a6bb 100644 --- a/settings.gradle +++ b/settings.gradle @@ -23,6 +23,9 @@ pluginManagement { } mavenCentral() gradlePluginPortal() + + // Not needed, but useful for debugging gradle plugins + mavenLocal() } } diff --git a/versionProperties/1.17.1.properties b/versionProperties/1.17.1.properties index 8a8531d51..44be229a8 100644 --- a/versionProperties/1.17.1.properties +++ b/versionProperties/1.17.1.properties @@ -16,7 +16,7 @@ fabric_api_version=0.46.1+1.17 lithium_version= sodium_version=mc1.17.1-0.3.4 iris_version=1.17.x-v1.2.7 - bclib_version=0.5.6 + bclib_version=0.5.5 immersive_portals_version= canvas_version= diff --git a/versionProperties/1.20.4.properties b/versionProperties/1.20.4.properties new file mode 100644 index 000000000..5cec6abec --- /dev/null +++ b/versionProperties/1.20.4.properties @@ -0,0 +1,51 @@ +# 1.20.4 version +java_version=17 +minecraft_version=1.20.4 +parchment_version=1.20.1:2023.09.03 +compatible_minecraft_versions=["1.20.3", "1.20.4"] +accessWidenerVersion=1_20_2 +builds_for=fabric,forge + +# Fabric loader +fabric_loader_version=0.15.1 +fabric_api_version=0.91.2+1.20.4 + # Fabric mod versions + modmenu_version=9.0.0-pre.1 + starlight_version_fabric= + phosphor_version_fabric= + lithium_version= + sodium_version=mc1.20.3-0.5.4 + iris_version=1.6.13+1.20.4 + bclib_version= + immersive_portals_version= + canvas_version= + + fabric_incompatibility_list={ } + fabric_recommend_list={ "indium": "*" } + + # Fabric mod run + # 0 = Don't enable and don't run + # 1 = Can be referenced in code but doesn't run + # 2 = Can be referenced in code and runs in client + enable_starlight=0 + enable_phosphor=0 + enable_sodium=1 + enable_lithium=0 + enable_iris=1 + enable_bclib=0 + enable_immersive_portals=0 + enable_canvas=0 + +# Forge loader +forge_version=49.0.3 + # Forge mod versions + starlight_version_forge= + terraforged_version= + + # Forge mod run + # 0 = Don't enable and don't run + # 1 = Can be referenced in code but doesn't run + # 2 = Can be referenced in code and runs in client + enable_starlight_forge=0 + enable_terraforged=0 + enable_terrafirmacraft=0