diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 36205ebd9..dd66c76f3 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -59,6 +59,7 @@ body: label: Mod Version description: The version of the mod you were using when the bug occured options: + - "0.6.2" - "0.6.1" - "0.6.0" - "0.5.1" diff --git a/build.gradle b/build.gradle index 370b42176..7c73f44cf 100644 --- a/build.gradle +++ b/build.gradle @@ -186,6 +186,6 @@ curseforge { changelog = file('changelog.txt') releaseType = project.curse_type mainArtifact jar - addGameVersion '1.18.1' + addGameVersion '1.18.2' } } diff --git a/changelog.txt b/changelog.txt index 981b3af55..3afd6f854 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,11 @@ +0.6.1: +Fixes +- Fix crash when loading block entities for Flywheel to render, most common when exploring the end. +- Fix occasional visual artifacts when enabling optifine shaders. +Technical/API +- Added more debug information to the F3 screen. +- Distance update limiting can now be disabled. + 0.6.0: With this release, Flywheel is no longer needed on servers! Forge finally has client commands, and the /flywheel command now takes advantage of this. diff --git a/gradle.properties b/gradle.properties index ef7e50b34..7989201c7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,10 +2,10 @@ org.gradle.jvmargs = -Xmx3G org.gradle.daemon = false # mod version info -mod_version = 0.6.1 +mod_version = 0.6.2 mc_update_version = 1.18 -minecraft_version = 1.18.1 -forge_version = 39.0.59 +minecraft_version = 1.18.2 +forge_version = 40.0.15 # build dependency versions forgegradle_version = 5.1.+ @@ -13,7 +13,7 @@ mixingradle_version = 0.7-SNAPSHOT mixin_version = 0.8.5 librarian_version = 1.+ cursegradle_version = 1.4.0 -parchment_version = 2022.01.23 +parchment_version = 2022.03.13 # curseforge info projectId = 486392 diff --git a/src/main/java/com/jozufozu/flywheel/Flywheel.java b/src/main/java/com/jozufozu/flywheel/Flywheel.java index 05b0e1b02..63ca7a78f 100644 --- a/src/main/java/com/jozufozu/flywheel/Flywheel.java +++ b/src/main/java/com/jozufozu/flywheel/Flywheel.java @@ -1,8 +1,7 @@ package com.jozufozu.flywheel; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.apache.maven.artifact.versioning.ArtifactVersion; +import org.slf4j.Logger; import com.jozufozu.flywheel.backend.Backend; import com.jozufozu.flywheel.backend.OptifineHandler; @@ -16,6 +15,7 @@ import com.jozufozu.flywheel.core.compile.ProgramCompiler; import com.jozufozu.flywheel.event.ReloadRenderersEvent; import com.jozufozu.flywheel.mixin.PausedPartialTickAccessor; import com.jozufozu.flywheel.vanilla.VanillaInstances; +import com.mojang.logging.LogUtils; import net.minecraft.commands.synchronization.ArgumentTypes; import net.minecraft.commands.synchronization.EmptyArgumentSerializer; @@ -36,7 +36,7 @@ import net.minecraftforge.network.NetworkConstants; public class Flywheel { public static final String ID = "flywheel"; - public static final Logger LOGGER = LogManager.getLogger(Flywheel.class); + public static final Logger LOGGER = LogUtils.getLogger(); private static ArtifactVersion version; public Flywheel() { diff --git a/src/main/java/com/jozufozu/flywheel/backend/Backend.java b/src/main/java/com/jozufozu/flywheel/backend/Backend.java index 46e602dc4..90a853493 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/Backend.java +++ b/src/main/java/com/jozufozu/flywheel/backend/Backend.java @@ -2,14 +2,14 @@ package com.jozufozu.flywheel.backend; import javax.annotation.Nullable; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; +import org.slf4j.Logger; import com.jozufozu.flywheel.api.FlywheelWorld; import com.jozufozu.flywheel.backend.gl.versioned.GlCompat; import com.jozufozu.flywheel.config.FlwConfig; import com.jozufozu.flywheel.config.FlwEngine; import com.jozufozu.flywheel.core.shader.ProgramSpec; +import com.mojang.logging.LogUtils; import net.minecraft.client.Minecraft; import net.minecraft.resources.ResourceLocation; @@ -17,7 +17,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; public class Backend { - public static final Logger LOGGER = LogManager.getLogger(Backend.class); + public static final Logger LOGGER = LogUtils.getLogger(); private static FlwEngine engine; diff --git a/src/main/java/com/jozufozu/flywheel/backend/Loader.java b/src/main/java/com/jozufozu/flywheel/backend/Loader.java index 7d08882d7..94c3628cf 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/Loader.java +++ b/src/main/java/com/jozufozu/flywheel/backend/Loader.java @@ -117,7 +117,7 @@ public class Loader implements ResourceManagerReloadListener { programs.put(specName, spec); } catch (Exception e) { - Backend.LOGGER.error(e); + Backend.LOGGER.error("Could not load program " + location, e); } } } diff --git a/src/main/java/com/jozufozu/flywheel/backend/instancing/ParallelTaskEngine.java b/src/main/java/com/jozufozu/flywheel/backend/instancing/ParallelTaskEngine.java index 316bed471..19f5b2f59 100644 --- a/src/main/java/com/jozufozu/flywheel/backend/instancing/ParallelTaskEngine.java +++ b/src/main/java/com/jozufozu/flywheel/backend/instancing/ParallelTaskEngine.java @@ -6,10 +6,10 @@ import java.util.List; import java.util.concurrent.ConcurrentLinkedDeque; import java.util.concurrent.atomic.AtomicBoolean; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.jozufozu.flywheel.Flywheel; import com.jozufozu.flywheel.backend.instancing.batching.WaitGroup; @@ -18,7 +18,7 @@ import net.minecraft.util.Mth; // https://github.com/CaffeineMC/sodium-fabric/blob/5d364ed5ba63f9067fcf72a078ca310bff4db3e9/src/main/java/me/jellysquid/mods/sodium/client/render/chunk/compile/ChunkBuilder.java public class ParallelTaskEngine implements TaskEngine { - private static final Logger LOGGER = LogManager.getLogger("BatchExecutor"); + private static final Logger LOGGER = LoggerFactory.getLogger("BatchExecutor"); private final AtomicBoolean running = new AtomicBoolean(false); private final WaitGroup wg = new WaitGroup(); @@ -135,11 +135,12 @@ public class ParallelTaskEngine implements TaskEngine { return job; } + // TODO: job context private void processTask(Runnable job) { try { job.run(); } catch (Exception e) { - Flywheel.LOGGER.error(e); + Flywheel.LOGGER.error("Error running job", e); } finally { ParallelTaskEngine.this.wg.done(); } diff --git a/src/main/java/com/jozufozu/flywheel/core/source/error/ErrorBuilder.java b/src/main/java/com/jozufozu/flywheel/core/source/error/ErrorBuilder.java index 2732a97fb..9a28a132f 100644 --- a/src/main/java/com/jozufozu/flywheel/core/source/error/ErrorBuilder.java +++ b/src/main/java/com/jozufozu/flywheel/core/source/error/ErrorBuilder.java @@ -117,7 +117,7 @@ public class ErrorBuilder { return this; } - public CharSequence build() { + public String build() { int maxLength = -1; for (ErrorLine line : lines) { @@ -136,6 +136,6 @@ public class ErrorBuilder { .append('\n'); } - return builder; + return builder.toString(); } } diff --git a/src/main/java/com/jozufozu/flywheel/core/source/error/ErrorReporter.java b/src/main/java/com/jozufozu/flywheel/core/source/error/ErrorReporter.java index fc9a1568d..acac0ccfa 100644 --- a/src/main/java/com/jozufozu/flywheel/core/source/error/ErrorReporter.java +++ b/src/main/java/com/jozufozu/flywheel/core/source/error/ErrorReporter.java @@ -16,7 +16,7 @@ public class ErrorReporter { public static void generateSpanError(Span span, String message) { SourceFile file = span.getSourceFile(); - CharSequence error = ErrorBuilder.error(message) + String error = ErrorBuilder.error(message) .pointAtFile(file) .pointAt(span, 2) .build(); @@ -26,7 +26,7 @@ public class ErrorReporter { public static void generateFileError(SourceFile file, String message) { - CharSequence error = ErrorBuilder.error(message) + String error = ErrorBuilder.error(message) .pointAtFile(file) .build(); diff --git a/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualChunk.java b/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualChunk.java index ec3bb296f..eaed3e59f 100644 --- a/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualChunk.java +++ b/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualChunk.java @@ -1,6 +1,7 @@ package com.jozufozu.flywheel.core.virtual; import java.util.Collection; +import java.util.Collections; import java.util.Map; import java.util.Set; import java.util.stream.Stream; @@ -12,6 +13,7 @@ import com.jozufozu.flywheel.util.Mods; import ca.spottedleaf.starlight.common.chunk.ExtendedChunk; import ca.spottedleaf.starlight.common.light.StarLightEngine; import it.unimi.dsi.fastutil.longs.LongSet; +import it.unimi.dsi.fastutil.longs.LongSets; import it.unimi.dsi.fastutil.shorts.ShortList; import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; @@ -26,7 +28,7 @@ import net.minecraft.world.level.chunk.ChunkStatus; import net.minecraft.world.level.chunk.LevelChunkSection; import net.minecraft.world.level.chunk.UpgradeData; import net.minecraft.world.level.levelgen.Heightmap; -import net.minecraft.world.level.levelgen.feature.StructureFeature; +import net.minecraft.world.level.levelgen.feature.ConfiguredStructureFeature; import net.minecraft.world.level.levelgen.structure.StructureStart; import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.FluidState; @@ -191,35 +193,40 @@ public class VirtualChunk extends ChunkAccess { } @Override - public void addReferenceForFeature(StructureFeature arg0, long arg1) {} - - @Override - public Map, LongSet> getAllReferences() { + @Nullable + public StructureStart getStartForFeature(ConfiguredStructureFeature pStructure) { return null; } @Override - public LongSet getReferencesForFeature(StructureFeature arg0) { - return null; + public void setStartForFeature(ConfiguredStructureFeature pStructure, StructureStart pStart) { } @Override - public StructureStart getStartForFeature(StructureFeature arg0) { - return null; + public Map, StructureStart> getAllStarts() { + return Collections.emptyMap(); } @Override - public void setAllReferences(Map, LongSet> arg0) {} + public void setAllStarts(Map, StructureStart> pStructureStarts) { + } @Override - public void setStartForFeature(StructureFeature arg0, StructureStart arg1) {} + public LongSet getReferencesForFeature(ConfiguredStructureFeature pStructure) { + return LongSets.emptySet(); + } @Override - public void setAllStarts(Map, StructureStart> p_201612_1_) {} + public void addReferenceForFeature(ConfiguredStructureFeature pStructure, long pReference) { + } @Override - public Map, StructureStart> getAllStarts() { - return null; + public Map, LongSet> getAllReferences() { + return Collections.emptyMap(); + } + + @Override + public void setAllReferences(Map, LongSet> pStructureReferences) { } @Override diff --git a/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualChunkSource.java b/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualChunkSource.java index b374260d0..7fa73d38d 100644 --- a/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualChunkSource.java +++ b/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualChunkSource.java @@ -52,7 +52,8 @@ public class VirtualChunkSource extends ChunkSource { } @Override - public void tick(BooleanSupplier pHasTimeLeft) {} + public void tick(BooleanSupplier p_202162_, boolean p_202163_) { + } @Override public int getLoadedChunksCount() { diff --git a/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualRenderWorld.java b/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualRenderWorld.java index d8a55397e..39574d808 100644 --- a/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualRenderWorld.java +++ b/src/main/java/com/jozufozu/flywheel/core/virtual/VirtualRenderWorld.java @@ -15,12 +15,12 @@ import com.jozufozu.flywheel.api.FlywheelWorld; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; +import net.minecraft.core.Holder; import net.minecraft.core.RegistryAccess; import net.minecraft.core.SectionPos; import net.minecraft.core.Vec3i; import net.minecraft.sounds.SoundEvent; import net.minecraft.sounds.SoundSource; -import net.minecraft.tags.TagContainer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.crafting.RecipeManager; @@ -67,7 +67,7 @@ public class VirtualRenderWorld extends Level implements FlywheelWorld { } public VirtualRenderWorld(Level level, Vec3i biomeOffset, int height, int minBuildHeight) { - super((WritableLevelData) level.getLevelData(), level.dimension(), level.dimensionType(), level::getProfiler, + super((WritableLevelData) level.getLevelData(), level.dimension(), level.dimensionTypeRegistration(), level::getProfiler, true, false, 0); this.biomeOffset = biomeOffset; this.level = level; @@ -188,19 +188,19 @@ public class VirtualRenderWorld extends Level implements FlywheelWorld { // BIOME OFFSET @Override - public Biome getBiome(BlockPos pPos) { + public Holder getBiome(BlockPos pPos) { return super.getBiome(pPos.offset(biomeOffset)); } @Override - public Biome getUncachedNoiseBiome(int pX, int pY, int pZ) { + public Holder getUncachedNoiseBiome(int pX, int pY, int pZ) { // Control flow should never reach this method, // so we add biomeOffset in case some other mod calls this directly. return level.getUncachedNoiseBiome(pX + biomeOffset.getX(), pY + biomeOffset.getY(), pZ + biomeOffset.getZ()); } @Override - public Biome getNoiseBiome(int pX, int pY, int pZ) { + public Holder getNoiseBiome(int pX, int pY, int pZ) { // Control flow should never reach this method, // so we add biomeOffset in case some other mod calls this directly. return level.getNoiseBiome(pX + biomeOffset.getX(), pY + biomeOffset.getY(), pZ + biomeOffset.getZ()); @@ -245,11 +245,6 @@ public class VirtualRenderWorld extends Level implements FlywheelWorld { return level.getRecipeManager(); } - @Override - public TagContainer getTagManager() { - return level.getTagManager(); - } - @Override public int getFreeMapId() { return level.getFreeMapId(); diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 75ea63f15..a9f736a89 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader = "javafml" -loaderVersion = "[38,)" +loaderVersion = "[40,)" issueTrackerURL = "https://github.com/Jozufozu/Flywheel/issues" license = "MIT" @@ -16,13 +16,13 @@ A modern engine for modded minecraft.''' [[dependencies.flywheel]] modId = "forge" mandatory = true -versionRange = "[39.0.46,)" +versionRange = "[40.0.0,)" ordering = "NONE" side = "CLIENT" [[dependencies.flywheel]] modId = "minecraft" mandatory = true -versionRange = "[1.18.1,1.19)" +versionRange = "[1.18.2,1.19)" ordering = "NONE" side = "CLIENT"