diff --git a/Readme.md b/Readme.md
index 91c7fc6c4..bbe312b12 100644
--- a/Readme.md
+++ b/Readme.md
@@ -9,13 +9,13 @@ If you want to see a quick demo, check out a video covering the mod here:

-Forge version: 37.1.0\
-Fabric version: 0.11.6\
-Fabric API version: 0.37.1+1.17
+Forge version: 36.1.0\
+Fabric version: 0.11.3\
+Fabric API version: 0.34.2+1.16
Notes:\
This version has been confirmed to work in Eclipse and Retail Minecraft.\
-(Retail running forge version 1.17.1-37.1.0 and fabric version 1.17.1-0.11.6)
+(Retail running forge version 1.17.1-36.1.0 and fabric version 1.17.1-0.11.3)
## source code installation
@@ -47,7 +47,7 @@ Side note: invalidate caches and restart if required
3. The compiled jar file will be in the folder `fabric/build/libs/` and `forge/build/libs/`
**If in terminal:**
-1. `git clone -b 1.17.1 --recurse-submodules https://gitlab.com/jeseibel/minecraft-lod-mod.git`
+1. `git clone -b 1.16.5_architectury --recurse-submodules https://gitlab.com/jeseibel/minecraft-lod-mod.git`
2. `cd minecraft-lod-mod`
3. `./gradlew assemble` or `./gradlew build`
4. The build should be in `fabric/build/libs/` and `forge/build/libs/`
diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockColorWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockColorWrapper.java
index a5633a2fd..decc9a5c0 100644
--- a/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockColorWrapper.java
+++ b/common/src/main/java/com/seibel/lod/common/wrappers/block/BlockColorWrapper.java
@@ -158,7 +158,8 @@ public class BlockColorWrapper implements IBlockColorWrapper
if (grassInstance() || leavesInstance() || waterIstance())
lookForTint = true;
- int frameIndex = 0; // TODO
+ // generate the block's color
+ for (int frameIndex = 0; frameIndex < texture.getFrameCount(); frameIndex++)
{
// textures normally use u and v instead of x and y
for (int u = 0; u < texture.getWidth(); u++)
@@ -167,7 +168,7 @@ public class BlockColorWrapper implements IBlockColorWrapper
{
tempColor = TextureAtlasSpriteWrapper.getPixelRGBA(texture, frameIndex, u, v);
- if (ColorUtil.getAlpha(TextureAtlasSpriteWrapper.getPixelRGBA(texture, frameIndex, u, v)) == 0)
+ if (texture.isTransparent(frameIndex, u, v))
continue;
if (lookForTint)
diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/block/TextureAtlasSpriteWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/block/TextureAtlasSpriteWrapper.java
index 41bcba5f5..3a8bf87f7 100644
--- a/common/src/main/java/com/seibel/lod/common/wrappers/block/TextureAtlasSpriteWrapper.java
+++ b/common/src/main/java/com/seibel/lod/common/wrappers/block/TextureAtlasSpriteWrapper.java
@@ -19,10 +19,12 @@ public class TextureAtlasSpriteWrapper {
*/
public static int getPixelRGBA(TextureAtlasSprite sprite, int frameIndex, int x, int y) {
if (sprite.animatedTexture != null) {
- x += sprite.animatedTexture.getFrameX(frameIndex) * sprite.width;
- y += sprite.animatedTexture.getFrameY(frameIndex) * sprite.height;
+ x += sprite.animatedTexture.getFrameX(frameIndex) * sprite.getWidth();
+ y += sprite.animatedTexture.getFrameY(frameIndex) * sprite.getHeight();
}
return sprite.mainImage[0].getPixelRGBA(x, y);
+
+// return this.mainImage[0].getPixelRGBA(x + this.framesX[frameIndex] * sprite.getWidth(), y + this.framesY[frameIndex] * sprite.getHeight());
}
}
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 d4fcd8d80..b1576c878 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
@@ -109,7 +109,7 @@ public class ChunkPosWrapper extends AbstractChunkPosWrapper
public AbstractBlockPosWrapper getWorldPosition()
{
// the parameter here is the y position
- BlockPos blockPos = chunkPos.getMiddleBlockPosition(0);
+ BlockPos blockPos = chunkPos.getWorldPosition();
return new BlockPosWrapper(blockPos.getX(), blockPos.getY(), blockPos.getZ());
}
diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/config/ConfigGui.java b/common/src/main/java/com/seibel/lod/common/wrappers/config/ConfigGui.java
index 74a2d64cb..488f20252 100644
--- a/common/src/main/java/com/seibel/lod/common/wrappers/config/ConfigGui.java
+++ b/common/src/main/java/com/seibel/lod/common/wrappers/config/ConfigGui.java
@@ -15,6 +15,7 @@ import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
// Logger (for debug stuff)
import org.apache.logging.log4j.LogManager;
@@ -41,7 +42,6 @@ import net.minecraft.client.gui.components.Button;
import net.minecraft.client.gui.components.ContainerObjectSelectionList;
import net.minecraft.client.gui.components.EditBox;
import net.minecraft.client.gui.components.events.GuiEventListener;
-import net.minecraft.client.gui.narration.NarratableEntry;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.CommonComponents;
import net.minecraft.network.chat.Component;
@@ -248,7 +248,7 @@ public abstract class ConfigGui
info.name = new TranslatableComponent(screenEntry.name());
info.screenButton = true;
- info.gotoScreen = (!info.category.isBlank() ? info.category + "." : "") + field.getName();
+ info.gotoScreen = (!info.category.isEmpty() ? info.category + "." : "") + field.getName();
}
entries.add(info);
}
@@ -263,13 +263,13 @@ public abstract class ConfigGui
info.widget = (BiFunction>) (editBox, button) -> stringValue ->
{
stringValue = stringValue.trim();
- if (!(stringValue.isBlank() || !isNumber || pattern.matcher(stringValue).matches()))
+ if (!(stringValue.isEmpty() || !isNumber || pattern.matcher(stringValue).matches()))
return false;
Number value = 0;
boolean inLimits = false;
info.error = null;
- if (isNumber && !stringValue.isBlank() && !stringValue.equals("-") && !stringValue.equals("."))
+ if (isNumber && !stringValue.isEmpty() && !stringValue.equals("-") && !stringValue.equals("."))
{
value = func.apply(stringValue);
inLimits = value.doubleValue() >= minValue && value.doubleValue() <= maxValue;
@@ -292,7 +292,7 @@ public abstract class ConfigGui
{
if (((List) info.value).size() == info.index)
((List) info.value).add("");
- ((List) info.value).set(info.index, Arrays.stream(info.tempValue.replace("[", "").replace("]", "").split(", ")).toList().get(0));
+ ((List) info.value).set(info.index, Arrays.stream(info.tempValue.replace("[", "").replace("]", "").split(", ")).collect(Collectors.toList()).get(0));
}
return true;
@@ -326,7 +326,7 @@ public abstract class ConfigGui
for (EntryInfo info : entries) {
if (info.field.isAnnotationPresent(ConfigAnnotations.Entry.class)) {
- config.set((info.category.isBlank() ? "" : info.category + ".") + info.field.getName(), info.value);
+ config.set((info.category.isEmpty() ? "" : info.category + ".") + info.field.getName(), info.value);
}
}
@@ -383,9 +383,9 @@ public abstract class ConfigGui
protected ConfigScreen(Screen parent, String category)
{
super(new TranslatableComponent(
- I18n.exists(MOD_NAME + ".config" + (category.isBlank()? "." + category : "") + ".title") ?
+ I18n.exists(MOD_NAME + ".config" + (category.isEmpty()? "." + category : "") + ".title") ?
MOD_NAME + ".config.title" :
- MOD_NAME + ".config" + (category.isBlank() ? "" : "." + category) + ".title")
+ MOD_NAME + ".config" + (category.isEmpty() ? "" : "." + category) + ".title")
);
this.parent = parent;
this.category = category;
@@ -412,12 +412,12 @@ public abstract class ConfigGui
if (!reload)
loadFromFile();
- this.addRenderableWidget(new Button(this.width / 2 - 154, this.height - 28, 150, 20, CommonComponents.GUI_CANCEL, button -> {
+ this.addWidget(new Button(this.width / 2 - 154, this.height - 28, 150, 20, CommonComponents.GUI_CANCEL, button -> {
loadFromFile();
Objects.requireNonNull(minecraft).setScreen(parent);
}));
- Button done = this.addRenderableWidget(new Button(this.width / 2 + 4, this.height - 28, 150, 20, CommonComponents.GUI_DONE, (button) -> {
+ Button done = this.addWidget(new Button(this.width / 2 + 4, this.height - 28, 150, 20, CommonComponents.GUI_DONE, (button) -> {
saveToFile();
Objects.requireNonNull(minecraft).setScreen(parent);
}));
@@ -430,7 +430,7 @@ public abstract class ConfigGui
{
if (info.category.matches(category) && !info.hideOption)
{
- TranslatableComponent name = Objects.requireNonNullElseGet(info.name, () -> new TranslatableComponent(translationPrefix + (!info.category.isBlank() ? info.category + "." : "") + info.field.getName()));
+ TranslatableComponent name = (info.name == null ? new TranslatableComponent(translationPrefix + (!info.category.isEmpty() ? info.category + "." : "") + info.field.getName()) : info.name);
Button resetButton = new Button(this.width - ConfigScreenConfigs.SpaceFromRightScreen - info.width - ConfigScreenConfigs.ButtonWidthSpacing - ConfigScreenConfigs.ResetButtonWidth, 0, ConfigScreenConfigs.ResetButtonWidth, 20, new TextComponent("Reset").withStyle(ChatFormatting.RED), (button -> {
info.value = info.defaultValue;
info.tempValue = info.defaultValue.toString();
@@ -508,8 +508,8 @@ public abstract class ConfigGui
if (list.getHoveredButton(mouseX,mouseY).isPresent()) {
AbstractWidget buttonWidget = list.getHoveredButton(mouseX,mouseY).get();
Component text = ButtonEntry.buttonsWithText.get(buttonWidget);
- TranslatableComponent name = new TranslatableComponent(this.translationPrefix + (info.category.isBlank() ? "" : info.category + ".") + info.field.getName());
- String key = translationPrefix + (info.category.isBlank() ? "" : info.category + ".") + info.field.getName() + ".@tooltip";
+ TranslatableComponent name = new TranslatableComponent(this.translationPrefix + (info.category.isEmpty() ? "" : info.category + ".") + info.field.getName());
+ String key = translationPrefix + (info.category.isEmpty() ? "" : info.category + ".") + info.field.getName() + ".@tooltip";
if (info.error != null && text.equals(name)) renderTooltip(matrices, (Component) info.error.getValue(), mouseX, mouseY);
else if (I18n.exists(key) && text.equals(name)) {
@@ -625,10 +625,10 @@ public abstract class ConfigGui
return children;
}
- @Override
- public List extends NarratableEntry> narratables()
- {
- return children;
- }
+// @Override
+// public List extends NarratableEntry> narratables()
+// {
+// return children;
+// }
}
}
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 9701d9e82..a89d21bec 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
@@ -11,9 +11,9 @@ import net.minecraft.resources.ResourceLocation;
* Creates a button with a texture on it
*/
public class TexturedButtonWidget extends ImageButton {
- 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);
- }
+// 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);
+// }
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);
}
diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java
index dc915bef5..f1735ee75 100644
--- a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java
+++ b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java
@@ -5,12 +5,14 @@ import java.util.HashSet;
import com.mojang.blaze3d.platform.NativeImage;
import com.mojang.blaze3d.systems.RenderSystem;
+import com.mojang.math.Vector3d;
import com.seibel.lod.common.wrappers.WrapperFactory;
import com.seibel.lod.common.wrappers.misc.LightMapWrapper;
import com.seibel.lod.core.handlers.IReflectionHandler;
import com.seibel.lod.core.handlers.ReflectionHandler;
import com.seibel.lod.core.util.LodUtil;
import net.minecraft.client.renderer.LightTexture;
+import org.lwjgl.opengl.GL15;
import org.lwjgl.opengl.GL20;
import com.mojang.math.Vector3f;
@@ -85,7 +87,7 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
@Override
public Mat4f getDefaultProjectionMatrix(float partialTicks)
{
- return McObjectConverter.Convert(GAME_RENDERER.getProjectionMatrix(GAME_RENDERER.getFov(GAME_RENDERER.getMainCamera(), partialTicks, true)));
+ return McObjectConverter.Convert(GAME_RENDERER.getProjectionMatrix(GAME_RENDERER.getMainCamera(), partialTicks, true));
}
@Override
@@ -96,14 +98,15 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
@Override
public Color getFogColor() {
- float[] colorValues = RenderSystem.getShaderFogColor();
+ float[] colorValues = new float[4];
+ GL15.glGetFloatv(GL15.GL_FOG_COLOR, colorValues);
return new Color(colorValues[0], colorValues[1], colorValues[2], colorValues[3]);
}
@Override
public Color getSkyColor() {
if (MC.level.dimensionType().hasSkyLight()) {
- Vec3 colorValues = MC.level.getSkyColor(MC.gameRenderer.getMainCamera().getPosition(), MC.getFrameTime());
+ Vec3 colorValues = MC.level.getSkyColor(MC.gameRenderer.getMainCamera().getBlockPosition(), MC.getFrameTime());
return new Color((float) colorValues.x, (float) colorValues.y, (float) colorValues.z);
} else
return new Color(0, 0, 0);
@@ -149,18 +152,19 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
// Wow, those are some long names!
// go through every RenderInfo to get the compiled chunks
- LevelRenderer renderer = MC.levelRenderer;
- for (LevelRenderer.RenderChunkInfo worldRenderer$LocalRenderInformationContainer : renderer.renderChunks)
- {
- CompiledChunk compiledChunk = worldRenderer$LocalRenderInformationContainer.chunk.getCompiledChunk();
- if (!compiledChunk.hasNoRenderableLayers())
- {
- // add the ChunkPos for every rendered chunk
- BlockPos bpos = worldRenderer$LocalRenderInformationContainer.chunk.getOrigin();
-
- loadedPos.add(new ChunkPosWrapper(bpos));
- }
- }
+ // FIXME[1.16.5]: pls fix
+// LevelRenderer renderer = MC.levelRenderer;
+// for (LevelRenderer.RenderChunkInfo worldRenderer$LocalRenderInformationContainer : renderer.renderChunks)
+// {
+// CompiledChunk compiledChunk = worldRenderer$LocalRenderInformationContainer.chunk.getCompiledChunk();
+// if (!compiledChunk.hasNoRenderableLayers())
+// {
+// // add the ChunkPos for every rendered chunk
+// BlockPos bpos = worldRenderer$LocalRenderInformationContainer.chunk.getOrigin();
+//
+// loadedPos.add(new ChunkPosWrapper(bpos));
+// }
+// }
return loadedPos;
diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftWrapper.java
index 35d48b691..c0624a08e 100644
--- a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftWrapper.java
+++ b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftWrapper.java
@@ -238,8 +238,7 @@ public class MinecraftWrapper implements IMinecraftWrapper
@Override
public ChunkPosWrapper getPlayerChunkPos()
{
- ChunkPos playerPos = getPlayer().chunkPosition();
- return new ChunkPosWrapper(playerPos.x, playerPos.z);
+ return new ChunkPosWrapper(getPlayer().xChunk, getPlayer().zChunk);
}
public Options getOptions()
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 49eb24800..bd1fd38af 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
@@ -137,11 +137,6 @@ public class WorldWrapper implements IWorldWrapper
return world.getHeight();
}
- @Override
- public short getMinHeight() {
- return (short) world.getMinBuildHeight();
- }
-
/** @throws UnsupportedOperationException if the WorldWrapper isn't for a ServerWorld */
@Override
public File getSaveFolder() throws UnsupportedOperationException
diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/LodServerWorld.java b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/LodServerWorld.java
index 4bb09f586..971474caa 100644
--- a/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/LodServerWorld.java
+++ b/common/src/main/java/com/seibel/lod/common/wrappers/worldGeneration/LodServerWorld.java
@@ -52,8 +52,6 @@ import net.minecraft.world.level.chunk.ChunkAccess;
import net.minecraft.world.level.chunk.ChunkSource;
import net.minecraft.world.level.chunk.ChunkStatus;
import net.minecraft.world.level.dimension.DimensionType;
-import net.minecraft.world.level.entity.EntityTypeTest;
-import net.minecraft.world.level.gameevent.GameEvent;
import net.minecraft.world.level.levelgen.Heightmap;
import net.minecraft.world.level.levelgen.feature.StructureFeature;
import net.minecraft.world.level.levelgen.structure.StructureStart;
@@ -134,11 +132,6 @@ public class LodServerWorld implements WorldGenLevel
return state.test(chunk.getBlockState(pos));
}
- @Override
- public boolean isFluidAtPosition(BlockPos blockPos, Predicate predicate) {
- return predicate.test(chunk.getFluidState(blockPos));
- }
-
@Override
public TickList getBlockTicks()
{
@@ -265,13 +258,6 @@ public class LodServerWorld implements WorldGenLevel
throw new UnsupportedOperationException("Not Implemented");
}
- @Nullable
- @Override
- public MinecraftServer getServer() {
- return serverWorld.getServer();
- }
-
-
@Override
public LevelData getLevelData()
{
@@ -286,13 +272,6 @@ public class LodServerWorld implements WorldGenLevel
}
- // TODO: Check if this causes any issues
- @Override
- public void gameEvent(@Nullable Entity entity, GameEvent gameEvent, BlockPos blockPos) {
- throw new UnsupportedOperationException("Not Implemented");
- }
-
-
@Override
public List getEntities(Entity arg0, AABB arg1, Predicate super Entity> arg2)
{
@@ -300,19 +279,10 @@ public class LodServerWorld implements WorldGenLevel
}
@Override
- public List getEntities(EntityTypeTest entityTypeTest, AABB aABB, Predicate super T> predicate) {
+ public List getEntitiesOfClass(Class extends T> class_, AABB aABB, @Nullable Predicate super T> predicate) {
throw new UnsupportedOperationException("Not Implemented");
}
-
- @Override
- public List getEntitiesOfClass(Class arg0, AABB arg1,
- Predicate super T> arg2)
- {
- throw new UnsupportedOperationException("Not Implemented");
- }
-
-
@Override
public List extends Player> players()
{
diff --git a/common/src/main/resources/lod.accesswidener b/common/src/main/resources/lod.accesswidener
index 5b3d8bffd..ff08b3522 100644
--- a/common/src/main/resources/lod.accesswidener
+++ b/common/src/main/resources/lod.accesswidener
@@ -33,4 +33,4 @@ extendable class com/mojang/math/Matrix4f
# hacky stuff
accessible field net/minecraft/world/level/chunk/PalettedContainer lock Ljava/util/concurrent/Semaphore;
-mutable field net/minecraft/world/level/chunk/PalettedContainer lock Ljava/util/concurrent/Semaphore;
+accessible field net/minecraft/world/level/chunk/PalettedContainer lock Ljava/util/concurrent/Semaphore;
diff --git a/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinOptionsScreen.java b/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinOptionsScreen.java
index 46feb066a..ffb9e0848 100644
--- a/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinOptionsScreen.java
+++ b/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinOptionsScreen.java
@@ -33,7 +33,7 @@ public class MixinOptionsScreen extends Screen {
@Inject(at = @At("HEAD"),method = "init")
private void lodconfig$init(CallbackInfo ci) {
if (Config.ShowButton)
- this.addRenderableWidget(new TexturedButtonWidget(
+ this.addWidget(new TexturedButtonWidget(
// Where the button is on the screen
this.width / 2 - 180, this.height / 6 - 12,
// Width and height of the button
diff --git a/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinWorldRenderer.java b/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinWorldRenderer.java
index b19643642..3c41535a0 100644
--- a/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinWorldRenderer.java
+++ b/fabric/src/main/java/com/seibel/lod/fabric/mixins/MixinWorldRenderer.java
@@ -49,8 +49,8 @@ public class MixinWorldRenderer
{
private static float previousPartialTicks = 0;
- @Inject(at = @At("RETURN"), method = "renderClouds(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/math/Matrix4f;FDDD)V")
- private void renderClouds(PoseStack modelViewMatrixStack, Matrix4f projectionMatrix, float partialTicks, double cameraXBlockPos, double cameraYBlockPos, double cameraZBlockPos, CallbackInfo callback)
+ @Inject(at = @At("RETURN"), method = "renderSky(Lcom/mojang/blaze3d/matrix/MatrixStack;F)V")
+ private void renderSky(PoseStack modelViewMatrixStack, Matrix4f projectionMatrix, float partialTicks, double cameraXBlockPos, double cameraYBlockPos, double cameraZBlockPos, CallbackInfo callback)
{
// get the partial ticks since renderChunkLayer doesn't
// have access to them
@@ -58,7 +58,7 @@ public class MixinWorldRenderer
}
// HEAD or RETURN
- @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/vertex/PoseStack;DDDLcom/mojang/math/Matrix4f;)V")
+ @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/matrix/MatrixStack;DDD)V")
private void renderChunkLayer(RenderType renderType, PoseStack modelViewMatrixStack, double cameraXBlockPos, double cameraYBlockPos, double cameraZBlockPos, Matrix4f projectionMatrix, CallbackInfo callback)
{
// only render before solid blocks
diff --git a/fabric/src/main/java/com/seibel/lod/fabric/mixins/unsafe/MixinPalettedContainer.java b/fabric/src/main/java/com/seibel/lod/fabric/mixins/unsafe/MixinPalettedContainer.java
index d1a513bcc..85acf7ef0 100644
--- a/fabric/src/main/java/com/seibel/lod/fabric/mixins/unsafe/MixinPalettedContainer.java
+++ b/fabric/src/main/java/com/seibel/lod/fabric/mixins/unsafe/MixinPalettedContainer.java
@@ -1,7 +1,6 @@
package com.seibel.lod.fabric.mixins.unsafe;
import com.mojang.datafixers.util.Pair;
-import net.minecraft.util.DebugBuffer;
import net.minecraft.world.level.chunk.PalettedContainer;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Final;
diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json
index ba9db7151..273b6a132 100644
--- a/fabric/src/main/resources/fabric.mod.json
+++ b/fabric/src/main/resources/fabric.mod.json
@@ -38,10 +38,10 @@
"accessWidener" : "lod.accesswidener",
"depends": {
- "fabricloader": ">=0.11.3",
+ "fabricloader": "*",
"fabric": "*",
- "minecraft": "1.17.x",
- "java": ">=16"
+ "minecraft": "1.16.5",
+ "java": ">=8"
},
"suggests": {
"another-mod": "*"
diff --git a/fabric/src/main/resources/lod.mixins.json b/fabric/src/main/resources/lod.mixins.json
index e9b520242..b630f401f 100644
--- a/fabric/src/main/resources/lod.mixins.json
+++ b/fabric/src/main/resources/lod.mixins.json
@@ -2,7 +2,7 @@
"required": true,
"minVersion": "0.8",
"package": "com.seibel.lod.fabric.mixins",
- "compatibilityLevel": "JAVA_16",
+ "compatibilityLevel": "JAVA_8",
"mixins": [
"events.MixinServerLevel",
"unsafe.MixinPalettedContainer"
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 dc367dfee..8979735fc 100644
--- a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java
+++ b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java
@@ -34,16 +34,17 @@ import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.client.model.data.ModelDataMap;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent;
+import net.minecraftforge.fml.ExtensionPoint;
import net.minecraftforge.fml.ModLoadingContext;
+import net.minecraftforge.fml.client.ConfigGuiHandler;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.config.ModConfig;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
+import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import net.minecraftforge.fml.loading.FMLEnvironment;
import net.minecraftforge.fml.loading.FMLLoader;
-import net.minecraftforge.fmlclient.ConfigGuiHandler;
-import net.minecraftforge.fmlserverevents.FMLServerStartedEvent;
import java.util.List;
import java.util.Random;
@@ -82,8 +83,8 @@ public class ForgeMain implements LodForgeMethodCaller
private void onClientStart(final FMLClientSetupEvent event)
{
- ModLoadingContext.get().registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class,
- () -> new ConfigGuiHandler.ConfigGuiFactory((client, parent) -> Config.getScreen(parent, "")));
+ ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.CONFIGGUIFACTORY,
+ () -> (client, parent) -> Config.getScreen(parent, ""));
forgeClientProxy = new ForgeClientProxy();
MinecraftForge.EVENT_BUS.register(forgeClientProxy);
}
@@ -91,7 +92,7 @@ public class ForgeMain implements LodForgeMethodCaller
@SubscribeEvent
- public void onServerStarting(FMLServerStartedEvent event)
+ public void onServerStarting(FMLServerStartingEvent event)
{
// this is called when the server starts
}
diff --git a/forge/src/main/java/com/seibel/lod/forge/mixins/MixinOptionsScreen.java b/forge/src/main/java/com/seibel/lod/forge/mixins/MixinOptionsScreen.java
index 8c50cef77..ca1a68ab8 100644
--- a/forge/src/main/java/com/seibel/lod/forge/mixins/MixinOptionsScreen.java
+++ b/forge/src/main/java/com/seibel/lod/forge/mixins/MixinOptionsScreen.java
@@ -32,7 +32,7 @@ public class MixinOptionsScreen extends Screen {
@Inject(at = @At("HEAD"),method = "init")
private void lodconfig$init(CallbackInfo ci) {
if (Config.ShowButton)
- this.addRenderableWidget(new TexturedButtonWidget(
+ this.addWidget(new TexturedButtonWidget(
// Where the button is on the screen
this.width / 2 - 180, this.height / 6 - 12,
// Width and height of the button
diff --git a/forge/src/main/java/com/seibel/lod/forge/mixins/MixinWorldRenderer.java b/forge/src/main/java/com/seibel/lod/forge/mixins/MixinWorldRenderer.java
index bccfa4ea5..665479d3a 100644
--- a/forge/src/main/java/com/seibel/lod/forge/mixins/MixinWorldRenderer.java
+++ b/forge/src/main/java/com/seibel/lod/forge/mixins/MixinWorldRenderer.java
@@ -48,8 +48,8 @@ public class MixinWorldRenderer
{
private static float previousPartialTicks = 0;
- @Inject(at = @At("RETURN"), method = "renderClouds(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/math/Matrix4f;FDDD)V")
- private void renderClouds(PoseStack modelViewMatrixStack, Matrix4f projectionMatrix, float partialTicks, double cameraXBlockPos, double cameraYBlockPos, double cameraZBlockPos, CallbackInfo callback)
+ @Inject(at = @At("RETURN"), method = "renderSky(Lcom/mojang/blaze3d/matrix/MatrixStack;F)V")
+ private void renderSky(PoseStack modelViewMatrixStack, Matrix4f projectionMatrix, float partialTicks, double cameraXBlockPos, double cameraYBlockPos, double cameraZBlockPos, CallbackInfo callback)
{
// get the partial ticks since renderChunkLayer doesn't
// have access to them
@@ -57,7 +57,7 @@ public class MixinWorldRenderer
}
// HEAD or RETURN
- @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/vertex/PoseStack;DDDLcom/mojang/math/Matrix4f;)V")
+ @Inject(at = @At("HEAD"), method = "renderChunkLayer(Lnet/minecraft/client/renderer/RenderType;Lcom/mojang/blaze3d/matrix/MatrixStack;DDD)V")
private void renderChunkLayer(RenderType renderType, PoseStack modelViewMatrixStack, double cameraXBlockPos, double cameraYBlockPos, double cameraZBlockPos, Matrix4f projectionMatrix, CallbackInfo callback)
{
// only render before solid blocks
diff --git a/forge/src/main/resources/lod.mixins.json b/forge/src/main/resources/lod.mixins.json
index 020918b9d..58ebd19e7 100644
--- a/forge/src/main/resources/lod.mixins.json
+++ b/forge/src/main/resources/lod.mixins.json
@@ -1,7 +1,7 @@
{
"required": true,
"package": "com.seibel.lod.forge.mixins",
- "compatibilityLevel": "JAVA_16",
+ "compatibilityLevel": "JAVA_8",
"refmap": "lod.refmap.json",
"client": [
"MixinWorldRenderer",
diff --git a/forge/src/main/resources/pack.mcmeta b/forge/src/main/resources/pack.mcmeta
index 70b6321cb..4fa382386 100644
--- a/forge/src/main/resources/pack.mcmeta
+++ b/forge/src/main/resources/pack.mcmeta
@@ -1,6 +1,6 @@
{
"pack": {
"description": "",
- "pack_format": 7
+ "pack_format": 6
}
}