Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev

Conflicts:
	gradle.properties
	src/main/java/com/jozufozu/flywheel/Flywheel.java
	src/main/resources/META-INF/mods.toml
This commit is contained in:
PepperCode1 2022-03-14 11:22:58 -07:00
commit a6d0dd8a39
14 changed files with 67 additions and 57 deletions

View file

@ -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"

View file

@ -55,14 +55,14 @@ dependencies {
// Fabric API
modImplementation "net.fabricmc.fabric-api:fabric-api:${fabric_version}"
modCompileOnly 'curse.maven:starlight-521783:3599857'
modCompileOnly 'curse.maven:starlight-521783:3667443'
modCompileOnly 'maven.modrinth:iris:1.18.x-v1.1.4'
modCompileOnly 'maven.modrinth:sodium:mc1.18.1-0.4.0-alpha6'
modCompileOnly 'maven.modrinth:iris:1.18.x-v1.2.2'
modCompileOnly 'maven.modrinth:sodium:mc1.18.2-0.4.1'
implementation 'com.google.code.findbugs:jsr305:3.0.2'
modCompileOnly 'maven.modrinth:indium:1.0.2-alpha1+mc1.18'
modCompileOnly 'io.vram:frex-fabric-mc118:6.0.229'
modCompileOnly 'maven.modrinth:indium:1.0.2+mc1.18.2'
modCompileOnly 'io.vram:frex-fabric-mc118:6.0.242'
}
processResources {
@ -153,6 +153,6 @@ curseforge {
changelog = file('changelog.txt')
releaseType = project.curse_type
mainArtifact jar
addGameVersion '1.18.1'
addGameVersion '1.18.2'
}
}

View file

@ -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.

View file

@ -2,16 +2,16 @@ 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
loader_version = 0.12.12
fabric_version = 0.46.1+1.18
minecraft_version = 1.18.2
loader_version = 0.13.3
fabric_version = 0.48.0+1.18.2
# build dependency versions
loom_version = 0.10-SNAPSHOT
cursegradle_version = 1.4.0
parchment_version = 2022.01.23
parchment_version = 2022.03.13
# curseforge info
projectId = 486392

View file

@ -1,7 +1,6 @@
package com.jozufozu.flywheel;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.slf4j.Logger;
import com.jozufozu.flywheel.backend.Backend;
import com.jozufozu.flywheel.backend.Loader;
@ -18,6 +17,7 @@ import com.jozufozu.flywheel.event.ForgeEvents;
import com.jozufozu.flywheel.fabric.event.FlywheelEvents;
import com.jozufozu.flywheel.mixin.PausedPartialTickAccessor;
import com.jozufozu.flywheel.vanilla.VanillaInstances;
import com.mojang.logging.LogUtils;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientEntityEvents;
@ -34,7 +34,7 @@ import net.minecraft.server.packs.PackType;
public class Flywheel implements ClientModInitializer {
public static final String ID = "flywheel";
public static final Logger LOGGER = LogManager.getLogger(Flywheel.class);
public static final Logger LOGGER = LogUtils.getLogger();
private static SemanticVersion version;
@Override
@ -53,12 +53,12 @@ public class Flywheel implements ClientModInitializer {
Backend.init();
FlywheelEvents.RELOAD_RENDERERS.register(ProgramCompiler::invalidateAll);
FlywheelEvents.GATHER_CONTEXT.register(Contexts::flwInit);
ModelLoadingRegistry.INSTANCE.registerModelProvider(PartialModel::onModelRegistry);
ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(PartialModel.ResourceReloadListener.INSTANCE);
FlywheelEvents.RELOAD_RENDERERS.register(ProgramCompiler::invalidateAll);
ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(Loader.ResourceReloadListener.INSTANCE);
WorldRenderEvents.END.register(RenderWork::onRenderWorldLast);

View file

@ -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;

View file

@ -114,7 +114,7 @@ public class Loader {
programs.put(specName, spec);
} catch (Exception e) {
Backend.LOGGER.error(e);
Backend.LOGGER.error("Could not load program " + location, e);
}
}
}

View file

@ -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();
}

View file

@ -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();
}
}

View file

@ -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();

View file

@ -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<StructureFeature<?>, 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<ConfiguredStructureFeature<?, ?>, StructureStart> getAllStarts() {
return Collections.emptyMap();
}
@Override
public void setAllReferences(Map<StructureFeature<?>, LongSet> arg0) {}
public void setAllStarts(Map<ConfiguredStructureFeature<?, ?>, StructureStart> pStructureStarts) {
}
@Override
public void setStartForFeature(StructureFeature<?> arg0, StructureStart<?> arg1) {}
public LongSet getReferencesForFeature(ConfiguredStructureFeature<?, ?> pStructure) {
return LongSets.emptySet();
}
@Override
public void setAllStarts(Map<StructureFeature<?>, StructureStart<?>> p_201612_1_) {}
public void addReferenceForFeature(ConfiguredStructureFeature<?, ?> pStructure, long pReference) {
}
@Override
public Map<StructureFeature<?>, StructureStart<?>> getAllStarts() {
return null;
public Map<ConfiguredStructureFeature<?, ?>, LongSet> getAllReferences() {
return Collections.emptyMap();
}
@Override
public void setAllReferences(Map<ConfiguredStructureFeature<?, ?>, LongSet> pStructureReferences) {
}
@Override

View file

@ -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() {

View file

@ -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<Biome> getBiome(BlockPos pPos) {
return super.getBiome(pPos.offset(biomeOffset));
}
@Override
public Biome getUncachedNoiseBiome(int pX, int pY, int pZ) {
public Holder<Biome> 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<Biome> 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();

View file

@ -33,10 +33,7 @@
"depends": {
"fabricloader": ">=0.11.3",
"fabric": "*",
"minecraft": "1.18.x",
"minecraft": ">=1.18.2",
"java": ">=17"
},
"breaks": {
"iris": "<1.1.4"
}
}