From 5c17e9599bcceb8741b5fd6e563a2eae083c06ec Mon Sep 17 00:00:00 2001 From: coolGi2007 Date: Tue, 5 Apr 2022 16:11:46 +0930 Subject: [PATCH] Fixed building and started some more work on 1.16.5 --- .../common/wrappers/block/TintGetterOverrideFast.java | 2 ++ .../wrappers/block/TintGetterOverrideSmooth.java | 2 ++ .../lod/common/wrappers/chunk/ChunkPosWrapper.java | 4 ++++ .../common/wrappers/config/TexturedButtonWidget.java | 10 ++++++++++ .../wrappers/minecraft/MinecraftClientWrapper.java | 4 ++++ .../seibel/lod/common/wrappers/world/WorldWrapper.java | 4 ++++ .../worldGeneration/BatchGenerationEnvironment.java | 9 +++------ common/src/main/resources/1_16.lod.accesswidener | 3 ++- core | 2 +- .../src/main/java/com/seibel/lod/forge/ForgeMain.java | 1 - gradle.properties | 2 +- 11 files changed, 33 insertions(+), 10 deletions(-) diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideFast.java b/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideFast.java index 93699c48b..0a3809f97 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideFast.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideFast.java @@ -112,10 +112,12 @@ public class TintGetterOverrideFast implements BlockAndTintGetter { return parent.getBlockStates(aABB); } + #if MC_VERSION_1_17_1 || MC_VERSION_1_18_1 || MC_VERSION_1_18_2 @Override public BlockHitResult isBlockInLine(ClipBlockStateContext clipBlockStateContext) { return parent.isBlockInLine(clipBlockStateContext); } + #endif @Override public BlockHitResult clip(ClipContext clipContext) { diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideSmooth.java b/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideSmooth.java index 4653882d1..1daa8dec3 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideSmooth.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/block/TintGetterOverrideSmooth.java @@ -137,10 +137,12 @@ public class TintGetterOverrideSmooth implements BlockAndTintGetter { return parent.getBlockStates(aABB); } + #if MC_VERSION_1_17_1 || MC_VERSION_1_18_1 || MC_VERSION_1_18_2 @Override public BlockHitResult isBlockInLine(ClipBlockStateContext clipBlockStateContext) { return parent.isBlockInLine(clipBlockStateContext); } + #endif @Override public BlockHitResult clip(ClipContext clipContext) { diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkPosWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkPosWrapper.java index 5dfa67f7a..0529e0988 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkPosWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkPosWrapper.java @@ -129,7 +129,11 @@ public class ChunkPosWrapper extends AbstractChunkPosWrapper public AbstractBlockPosWrapper getWorldPosition() { // the parameter here is the y position + #if MC_VERSION_1_17_1 || MC_VERSION_1_18_1 || MC_VERSION_1_18_2 BlockPos blockPos = chunkPos.getMiddleBlockPosition(0); + #elif MC_VERSION_1_16_5 + BlockPos blockPos = chunkPos.getWorldPosition(); + #endif return new BlockPosWrapper(blockPos.getX(), blockPos.getY(), blockPos.getZ()); } diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/config/TexturedButtonWidget.java b/common/src/main/java/com/seibel/lod/common/wrappers/config/TexturedButtonWidget.java index 63df62446..269c5a282 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/config/TexturedButtonWidget.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/config/TexturedButtonWidget.java @@ -2,6 +2,7 @@ package com.seibel.lod.common.wrappers.config; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.Minecraft; import net.minecraft.client.gui.components.ImageButton; import net.minecraft.client.renderer.GameRenderer; import net.minecraft.network.chat.Component; @@ -11,9 +12,12 @@ import net.minecraft.resources.ResourceLocation; * Creates a button with a texture on it */ public class TexturedButtonWidget extends ImageButton { + #if MC_VERSION_1_17_1 || MC_VERSION_1_18_1 || MC_VERSION_1_18_2 public TexturedButtonWidget(int x, int y, int width, int height, int u, int v, ResourceLocation texture, OnPress pressAction) { super(x, y, width, height, u, v, texture, pressAction); } + #endif + public TexturedButtonWidget(int x, int y, int width, int height, int u, int v, int hoveredVOffset, ResourceLocation texture, int textureWidth, int textureHeight, OnPress pressAction) { super(x, y, width, height, u, v, hoveredVOffset, texture, textureWidth, textureHeight, pressAction); } @@ -28,9 +32,15 @@ public class TexturedButtonWidget extends ImageButton { @Override public void renderButton(PoseStack matrices, int mouseX, int mouseY, float delta) { + #if MC_VERSION_1_17_1 || MC_VERSION_1_18_1 || MC_VERSION_1_18_2 RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, WIDGETS_LOCATION); RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, this.alpha); + #elif MC_VERSION_1_16_5 + Minecraft.getInstance().getTextureManager().bind(WIDGETS_LOCATION); + RenderSystem.color4f(1.0F, 1.0F, 1.0F, this.alpha); + #endif + int i = this.getYImage(this.isHovered); RenderSystem.enableBlend(); RenderSystem.defaultBlendFunc(); diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftClientWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftClientWrapper.java index c451d7d48..bbda9f32b 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftClientWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftClientWrapper.java @@ -222,7 +222,11 @@ public class MinecraftClientWrapper implements IMinecraftClientWrapper @Override public ChunkPosWrapper getPlayerChunkPos() { + #if MC_VERSION_1_17_1 || MC_VERSION_1_18_1 || MC_VERSION_1_18_2 ChunkPos playerPos = getPlayer().chunkPosition(); + #elif MC_VERSION_1_16_5 + ChunkPos playerPos = new ChunkPos(getPlayer().blockPosition()); + #endif return new ChunkPosWrapper(playerPos.x, playerPos.z); } diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/world/WorldWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/world/WorldWrapper.java index cdc85e6a0..e4bdf6ed0 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/world/WorldWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/world/WorldWrapper.java @@ -138,7 +138,11 @@ public class WorldWrapper implements IWorldWrapper @Override public short getMinHeight() { + #if MC_VERSION_1_17_1 || MC_VERSION_1_18_1 || MC_VERSION_1_18_2 return (short) world.getMinBuildHeight(); + #elif MC_VERSION_1_16_5 + return (short) 0; + #endif } /** @throws UnsupportedOperationException if the WorldWrapper isn't for a ServerWorld */ diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/BatchGenerationEnvironment.java b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/BatchGenerationEnvironment.java index 3eb42c516..91f9c61bf 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/BatchGenerationEnvironment.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/BatchGenerationEnvironment.java @@ -368,8 +368,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv } if (chunkData == null) { - return new ProtoChunk(chunkPos, UpgradeData.EMPTY - #if MC_VERSION_1_17_1, level #endif + return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level #if MC_VERSION_1_18_1 || MC_VERSION_1_18_2, level.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), null #endif ); } @@ -379,8 +378,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv return ChunkLoader.read(level, lightEngine, chunkPos, chunkData); } catch (Exception e) { LOAD_LOGGER.error("DistantHorizons: Couldn't load chunk {}", chunkPos, e); - return new ProtoChunk(chunkPos, UpgradeData.EMPTY - #if MC_VERSION_1_17_1, level #endif + return new ProtoChunk(chunkPos, UpgradeData.EMPTY, level #if MC_VERSION_1_18_1 || MC_VERSION_1_18_2, level.registryAccess().registryOrThrow(Registry.BIOME_REGISTRY), null #endif ); } @@ -420,8 +418,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv // Continue... } if (target == null) - target = new ProtoChunk(chunkPos, UpgradeData.EMPTY - #if MC_VERSION_1_17_1, params.level #endif + target = new ProtoChunk(chunkPos, UpgradeData.EMPTY, params.level #if MC_VERSION_1_18_1 || MC_VERSION_1_18_2, params.biomes, null #endif ); return target; diff --git a/common/src/main/resources/1_16.lod.accesswidener b/common/src/main/resources/1_16.lod.accesswidener index c65b3a27e..9fc43d639 100644 --- a/common/src/main/resources/1_16.lod.accesswidener +++ b/common/src/main/resources/1_16.lod.accesswidener @@ -9,13 +9,14 @@ accessible field com/mojang/blaze3d/vertex/VertexBuffer vertextBufferId I accessible method net/minecraft/client/renderer/GameRenderer getFov (Lnet/minecraft/client/Camera;FZ)D # pre-render setup -accessible field net/minecraft/client/renderer/LevelRenderer renderChunks Lit/unimi/dsi/fastutil/objects/ObjectArrayList; +accessible field net/minecraft/client/renderer/LevelRenderer renderChunks Lit/unimi/dsi/fastutil/objects/ObjectList; accessible class net/minecraft/client/renderer/LevelRenderer$RenderChunkInfo accessible field net/minecraft/client/renderer/LevelRenderer$RenderChunkInfo chunk Lnet/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk; # used for grabbing vanilla rendered chunks accessible class net/minecraft/client/renderer/LevelRenderer$RenderChunkInfo accessible field net/minecraft/client/renderer/LevelRenderer$RenderChunkInfo chunk Lnet/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk; +#accessible field net/minecraft/world/entity/Entity blockPosition Lnet/minecraft/core/BlockPos; # lighting accessible field net/minecraft/client/renderer/LightTexture lightPixels Lcom/mojang/blaze3d/platform/NativeImage; diff --git a/core b/core index 8296b006b..29aa95437 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit 8296b006b4feb73a5fd34cc919ec9f9f80403967 +Subproject commit 29aa95437ecab0de0474563fa2fb0b34bbfbefd9 diff --git a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java index 6efea6a78..bea621fc3 100644 --- a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java +++ b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java @@ -41,7 +41,6 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.client.model.data.ModelDataMap; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.ExtensionPoint; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; diff --git a/gradle.properties b/gradle.properties index 5bdfc3913..c2ddaaec5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -18,4 +18,4 @@ toml_version=3.6.4 manifold_version=2022.1.7 ##### FOR IDE SUPPORT AND TELL IDE TO USE CERTIAN MC VERSION: SWITCH THIS: -mcVer=1.16.5 \ No newline at end of file +mcVer=1.18.2 \ No newline at end of file