diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b545eb6..1eb107f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -33,8 +33,8 @@ on: description: "publish curseforge" type: boolean default: true - forge: - description: "forge" + neoforge: + description: "neoforge" type: boolean default: true fabric: @@ -84,7 +84,7 @@ jobs: contents: write strategy: matrix: - loader: [ Forge, Fabric ] + loader: [ NeoForge, Fabric ] website: [ modrinth, curseforge, github_release ] name: ${{ matrix.website }} (${{ matrix.loader }}) @@ -117,7 +117,7 @@ jobs: - name: Publish Github Release uses: Kir-Antipov/mc-publish@v3.3 continue-on-error: true - if: (matrix.website == 'github_release' && inputs.github-release) && ((matrix.loader == 'Forge' && inputs.forge) || (matrix.loader == 'Fabric' && inputs.fabric)) + if: (matrix.website == 'github_release' && inputs.github-release) && ((matrix.loader == 'NeoForge' && inputs.neoforge) || (matrix.loader == 'Fabric' && inputs.fabric)) with: files: | ${{ matrix.loader }}/build/libs/!(*-@(dev|sources|javadoc)).jar @@ -134,7 +134,7 @@ jobs: - name: Publish Modrinth Release uses: Kir-Antipov/mc-publish@v3.3 continue-on-error: true - if : (matrix.website == 'modrinth' && inputs.modrinth) && ((matrix.loader == 'Forge' && inputs.forge) || (matrix.loader == 'Fabric' && inputs.fabric)) + if : (matrix.website == 'modrinth' && inputs.modrinth) && ((matrix.loader == 'NeoForge' && inputs.neoforge) || (matrix.loader == 'Fabric' && inputs.fabric)) with: files: | ${{ matrix.loader }}/build/libs/!(*-@(dev|sources|javadoc)).jar @@ -151,7 +151,7 @@ jobs: - name: Publish Curseforge Release uses: Kir-Antipov/mc-publish@v3.3 continue-on-error: true - if: (matrix.website == 'curseforge' && inputs.curseforge) && ((matrix.loader == 'Forge' && inputs.forge) || (matrix.loader == 'Fabric' && inputs.fabric)) + if: (matrix.website == 'curseforge' && inputs.curseforge) && ((matrix.loader == 'NeoForge' && inputs.neoforge) || (matrix.loader == 'Fabric' && inputs.fabric)) with: files: | ${{ matrix.loader }}/build/libs/!(*-@(dev|sources|javadoc)).jar diff --git a/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/AuxiliaryScreen.java b/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/AuxiliaryScreen.java index 25e9efa..0954cfe 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/AuxiliaryScreen.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/AuxiliaryScreen.java @@ -266,7 +266,7 @@ public void removed() { @Override public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { - renderBackground(guiGraphics); + renderBackground(guiGraphics, mouseX, mouseY, partialTick); super.render(guiGraphics, mouseX, mouseY, partialTick); } diff --git a/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/Eyedropper.java b/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/Eyedropper.java index 593db8a..67cdaeb 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/Eyedropper.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/Eyedropper.java @@ -161,9 +161,9 @@ public void updateCurrentColor() { int rgba = nativeImage.getPixelRGBA(window.getWidth() / 2, window.getHeight() / 2); //fill [red green blue] - currentColor[0] = FastColor.ABGR32.red(rgba); - currentColor[1] = FastColor.ABGR32.green(rgba); - currentColor[2] = FastColor.ABGR32.blue(rgba); + currentColor[0] = FastColor.ABGR32.red(rgba) / 255f; + currentColor[1] = FastColor.ABGR32.green(rgba) / 255f; + currentColor[2] = FastColor.ABGR32.blue(rgba) / 255f; if (Math.abs(closeCount - openCount) >= 5) { throw new RuntimeException(); diff --git a/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/SliderWidget.java b/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/SliderWidget.java index c3255db..5c5154e 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/SliderWidget.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/SliderWidget.java @@ -122,10 +122,10 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } @Override - public boolean mouseScrolled(double mouseX, double mouseY, double delta) { + public boolean mouseScrolled(double mouseX, double mouseY, double scrollX, double scrollY) { var moveFactor = 10 * (isKeyPressed(GLFW.GLFW_KEY_LEFT_SHIFT) ? 0.5 : 1); - trySetActualValue(actualValue + delta * stepSize * moveFactor); - return super.mouseScrolled(mouseX, mouseY, delta); + trySetActualValue(actualValue + scrollY * stepSize * moveFactor); + return super.mouseScrolled(mouseX, mouseY, scrollX, scrollY); } private static boolean isKeyPressed(int key) { diff --git a/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/SuggestionEditBoxWidget.java b/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/SuggestionEditBoxWidget.java index 86136e9..0a906d3 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/SuggestionEditBoxWidget.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/client/auxiliaryScreen/SuggestionEditBoxWidget.java @@ -66,9 +66,7 @@ public void addCandidateListener(BiConsumer consumer) /** * update is complete and call callbacks */ - @Override public void tick() { - super.tick(); var last = isComplete; //check complete change if (ResourceLocation.isValidResourceLocation(this.getValue())) { @@ -94,9 +92,9 @@ public void tick() { } @Override - public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + public void renderWidget(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { //render current by super - super.render(guiGraphics, mouseX, mouseY, partialTick); + super.renderWidget(guiGraphics, mouseX, mouseY, partialTick); //check if suggestion need render if (suggestions != null && suggestions.contains(this.getValue())) return; diff --git a/Common/src/main/java/com/lowdragmc/shimmer/client/light/LightManager.java b/Common/src/main/java/com/lowdragmc/shimmer/client/light/LightManager.java index dd72ac3..9ce2faa 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/client/light/LightManager.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/client/light/LightManager.java @@ -117,12 +117,12 @@ public static String RbVVSHInjection(String s) { """).toString(); s = new StringBuffer(s).insert(s.lastIndexOf("void main()"), getLightShader()).toString(); s = new StringBuffer(s).insert(s.lastIndexOf('}'), Services.PLATFORM.useLightMap() ? """ - v_ColorModulator = color_light_uv(position, vec4(v_ColorModulator, 1.0), ivec2(_vert_light) * 16 ).rgb; + v_Color = color_light_uv(position, v_Color, ivec2(_vert_tex_light_coord)); """ : """ - v_ColorModulator = color_light(position, vec4(v_ColorModulator,1.0) * 16).rgb; + v_Color = color_light(position, v_Color); """).toString(); s = new StringBuffer(s).insert(s.lastIndexOf("}"), """ - isBloom = ((_vert_material >> 4u) & 0x01u) > 0u ? 256.0 : 0.0; + isBloom = ((_material_params >> 4u) & 0x01u) > 0u ? 256.0 : 0.0; """).toString(); return s; } @@ -133,9 +133,9 @@ public static String embeddiumVVSHInjection(String s) { """).toString(); s = new StringBuffer(s).insert(s.lastIndexOf("void main()"), getLightShader()).toString(); s = new StringBuffer(s).insert(s.lastIndexOf('}'), Services.PLATFORM.useLightMap() ? """ - v_Color = color_light_uv(position, v_Color, ivec2(_vert_tex_light_coord) * 16 ).rgba; + v_Color = color_light_uv(position, v_Color, ivec2(_vert_tex_light_coord)); """ : """ - v_Color = color_light(position, v_Color * 16).rgba; + v_Color = color_light(position, v_Color); """).toString(); s = new StringBuffer(s).insert(s.lastIndexOf("}"), """ isBloom = ((_material_params >> 4u) & 0x01u) > 0u ? 256.0 : 0.0; diff --git a/Common/src/main/java/com/lowdragmc/shimmer/client/postprocessing/PostMultiBufferSource.java b/Common/src/main/java/com/lowdragmc/shimmer/client/postprocessing/PostMultiBufferSource.java index a677be3..d12e356 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/client/postprocessing/PostMultiBufferSource.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/client/postprocessing/PostMultiBufferSource.java @@ -3,9 +3,9 @@ import com.mojang.blaze3d.vertex.BufferBuilder; import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; import net.minecraft.Util; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.Sheets; import net.minecraft.client.resources.model.ModelBakery; @@ -15,7 +15,7 @@ * @implNote PostMultiBufferSource, for proper rendering pipeline */ public class PostMultiBufferSource extends MultiBufferSource.BufferSource { - private final static ChunkBufferBuilderPack fixedBufferPack = new ChunkBufferBuilderPack(); + private final static SectionBufferBuilderPack fixedBufferPack = new SectionBufferBuilderPack(); public final static PostMultiBufferSource BUFFER_SOURCE = new PostMultiBufferSource(); private static void put(Object2ObjectLinkedOpenHashMap pMapBuilders, RenderType pRenderType) { @@ -34,7 +34,6 @@ protected PostMultiBufferSource() { put(map, Sheets.shulkerBoxSheet()); put(map, Sheets.signSheet()); put(map, Sheets.chestSheet()); - put(map, RenderType.translucentNoCrumbling()); put(map, RenderType.armorGlint()); put(map, RenderType.armorEntityGlint()); put(map, RenderType.glint()); diff --git a/Common/src/main/java/com/lowdragmc/shimmer/client/postprocessing/PostProcessing.java b/Common/src/main/java/com/lowdragmc/shimmer/client/postprocessing/PostProcessing.java index 5eeceab..6eb0190 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/client/postprocessing/PostProcessing.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/client/postprocessing/PostProcessing.java @@ -158,7 +158,7 @@ private static String BloomMRTFSHInjection(String s) { } public static String RbBloomMRTFSHInjection(String s) { - s = new StringBuffer(s).insert(s.lastIndexOf("in vec3 v_ColorModulator;"), """ + s = new StringBuffer(s).insert(s.lastIndexOf("in vec4 v_Color;"), """ in float isBloom; """).toString(); s = new StringBuffer(s).insert(s.lastIndexOf("void main()"), """ @@ -166,7 +166,7 @@ public static String RbBloomMRTFSHInjection(String s) { """).toString(); s = new StringBuffer(s).insert(s.lastIndexOf('}'), """ if (isBloom > 255.) { - bloomColor = out_FragColor * smoothstep(u_FogEnd,u_FogStart,v_FragDistance); + bloomColor = fragColor * smoothstep(u_FogEnd,u_FogStart,v_FragDistance); } else { bloomColor = vec4(0.); } diff --git a/Common/src/main/java/com/lowdragmc/shimmer/core/IRenderChunk.java b/Common/src/main/java/com/lowdragmc/shimmer/core/IRenderSection.java similarity index 86% rename from Common/src/main/java/com/lowdragmc/shimmer/core/IRenderChunk.java rename to Common/src/main/java/com/lowdragmc/shimmer/core/IRenderSection.java index cbe336b..3f31229 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/core/IRenderChunk.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/core/IRenderSection.java @@ -4,7 +4,7 @@ import java.util.List; -public interface IRenderChunk { +public interface IRenderSection { List getShimmerLights(); void setShimmerLights(List lights); } diff --git a/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/LevelRendererMixin.java b/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/LevelRendererMixin.java index 875d4b9..c238e0b 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/LevelRendererMixin.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/LevelRendererMixin.java @@ -4,10 +4,11 @@ import com.lowdragmc.shimmer.client.light.LightManager; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; import com.lowdragmc.shimmer.client.shader.ReloadShaderManager; -import com.lowdragmc.shimmer.core.IRenderChunk; +import com.lowdragmc.shimmer.core.IRenderSection; import com.lowdragmc.shimmer.platform.Services; import com.mojang.blaze3d.pipeline.RenderTarget; import com.mojang.blaze3d.vertex.PoseStack; +import net.minecraft.client.renderer.chunk.SectionRenderDispatcher; import org.joml.Matrix4f; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.minecraft.client.Camera; @@ -41,7 +42,7 @@ public abstract class LevelRendererMixin { @Shadow @Nullable private ClientLevel level; - @Shadow @Final private ObjectArrayList renderChunksInFrustum; + @Shadow @Final private ObjectArrayList visibleSections; @Inject(method = "renderLevel", at = @At( @@ -52,7 +53,7 @@ private void injectRenderLevel(PoseStack poseStack, float pPartialTick, long pFi PostProcessing.getBlockBloom().renderBlockPost(); } - @Inject(method = "renderChunkLayer", + @Inject(method = "renderSectionLayer", at = @At(value = "HEAD")) private void preRenderChunkLayer(RenderType pRenderType, PoseStack pPoseStack, double pCamX, @@ -64,7 +65,7 @@ private void preRenderChunkLayer(RenderType pRenderType, } } - @Inject(method = "renderChunkLayer", + @Inject(method = "renderSectionLayer", at = @At(value = "RETURN")) private void postRenderChunkLayer(RenderType pRenderType, PoseStack pPoseStack, double pCamX, @@ -95,12 +96,12 @@ private void injectRenderLevelPre(PoseStack pPoseStack, float pPartialTick, long int left = LightManager.INSTANCE.leftBlockLightCount(); FloatBuffer buffer = LightManager.INSTANCE.getBuffer(); buffer.clear(); - for (LevelRenderer.RenderChunkInfo chunkInfo : renderChunksInFrustum) { + for (SectionRenderDispatcher.RenderSection section : visibleSections) { if (left <= blockLightSize) { break; } - if (chunkInfo.chunk instanceof IRenderChunk) { - for (ColorPointLight shimmerLight : ((IRenderChunk) chunkInfo.chunk).getShimmerLights()) { + if (section instanceof IRenderSection) { + for (ColorPointLight shimmerLight : ((IRenderSection) section).getShimmerLights()) { if (left <= blockLightSize) { break; } diff --git a/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/MixinPluginShared.java b/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/MixinPluginShared.java index 632a54c..29f23bf 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/MixinPluginShared.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/MixinPluginShared.java @@ -26,7 +26,7 @@ private static boolean checkOptifine() { //under forge's TransformingClassLoader try { //try not to load the class - var fmlLoaderClass = Class.forName("net.minecraftforge.fml.loading.FMLLoader"); + var fmlLoaderClass = Class.forName("net.neoforged.fml.loading.FMLLoader"); var getGameLayerMethod = fmlLoaderClass.getMethod("getGameLayer"); var gameLayer = getGameLayerMethod.invoke(null); var configurationMethod = gameLayer.getClass().getMethod("configuration"); diff --git a/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RebuildTaskMixin.java b/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RebuildTaskMixin.java index 6544e94..be55a57 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RebuildTaskMixin.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RebuildTaskMixin.java @@ -4,10 +4,10 @@ import com.lowdragmc.shimmer.client.light.ColorPointLight; import com.lowdragmc.shimmer.client.light.LightManager; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; -import com.lowdragmc.shimmer.core.IRenderChunk; -import net.minecraft.client.renderer.ChunkBufferBuilderPack; -import net.minecraft.client.renderer.chunk.ChunkRenderDispatcher; +import com.lowdragmc.shimmer.core.IRenderSection; +import net.minecraft.client.renderer.SectionBufferBuilderPack; import net.minecraft.client.renderer.chunk.RenderChunkRegion; +import net.minecraft.client.renderer.chunk.SectionRenderDispatcher; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.FluidState; @@ -24,9 +24,9 @@ * @date 2022/05/02 * @implNote RebuildTaskMixin, used to compile and save light info to the chunk. */ -@Mixin(ChunkRenderDispatcher.RenderChunk.RebuildTask.class) +@Mixin(SectionRenderDispatcher.RenderSection.RebuildTask.class) public abstract class RebuildTaskMixin { - @SuppressWarnings("target") @Shadow(aliases = {"this$1", "f_112859_", "field_20839"}) @Final ChunkRenderDispatcher.RenderChunk this$1; + @SuppressWarnings("target") @Shadow(aliases = {"this$1", "f_112859_", "field_20839"}) @Final SectionRenderDispatcher.RenderSection this$1; ImmutableList.Builder lights; @Redirect(method = "compile", @@ -48,14 +48,14 @@ private BlockState injectCompile(RenderChunkRegion instance, BlockPos pPos) { } @Inject(method = "compile", at = @At(value = "HEAD")) - private void injectCompilePre(float x, float y, float z, ChunkBufferBuilderPack arg, CallbackInfoReturnable cir) { + private void injectCompilePre(float x, float y, float z, SectionBufferBuilderPack arg, CallbackInfoReturnable cir) { lights = ImmutableList.builder(); } @Inject(method = "compile", at = @At(value = "RETURN")) - private void injectCompilePost(float x, float y, float z, ChunkBufferBuilderPack arg, CallbackInfoReturnable cir) { - if (this$1 instanceof IRenderChunk) { - ((IRenderChunk) this$1).setShimmerLights(lights.build()); + private void injectCompilePost(float x, float y, float z, SectionBufferBuilderPack arg, CallbackInfoReturnable cir) { + if (this$1 instanceof IRenderSection) { + ((IRenderSection) this$1).setShimmerLights(lights.build()); } PostProcessing.cleanBloom(); } diff --git a/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RenderChunkMixin.java b/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RenderSectionMixin.java similarity index 72% rename from Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RenderChunkMixin.java rename to Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RenderSectionMixin.java index cb8adef..8589b7b 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RenderChunkMixin.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/core/mixins/RenderSectionMixin.java @@ -1,8 +1,8 @@ package com.lowdragmc.shimmer.core.mixins; import com.lowdragmc.shimmer.client.light.ColorPointLight; -import com.lowdragmc.shimmer.core.IRenderChunk; -import net.minecraft.client.renderer.chunk.ChunkRenderDispatcher; +import com.lowdragmc.shimmer.core.IRenderSection; +import net.minecraft.client.renderer.chunk.SectionRenderDispatcher; import org.spongepowered.asm.mixin.Mixin; import java.util.Collections; @@ -13,8 +13,8 @@ * @date 2022/05/02 * @implNote RenderChunkMixin, used to compile and save light info to the chunk. */ -@Mixin(ChunkRenderDispatcher.RenderChunk.class) -public abstract class RenderChunkMixin implements IRenderChunk { +@Mixin(SectionRenderDispatcher.RenderSection.class) +public abstract class RenderSectionMixin implements IRenderSection { List shimmerLights = Collections.emptyList(); @Override diff --git a/Common/src/main/java/com/lowdragmc/shimmer/platform/Services.java b/Common/src/main/java/com/lowdragmc/shimmer/platform/Services.java index b18df3f..943ae1e 100644 --- a/Common/src/main/java/com/lowdragmc/shimmer/platform/Services.java +++ b/Common/src/main/java/com/lowdragmc/shimmer/platform/Services.java @@ -15,11 +15,16 @@ public class Services { private static IPlatformHelper load() { String loaderName = ClientBrandRetriever.getClientModName().toLowerCase().trim(); var classLocation = switch (loaderName) { - case "forge" -> "com.lowdragmc.shimmer.forge.platform.ForgePlatformHelper"; + case "neoforge" -> "com.lowdragmc.shimmer.neoforge.platform.NeoForgePlatformHelper"; + case "forge" -> { + ShimmerConstants.LOGGER.warn("forge detected, just works under neoforge"); + ShimmerConstants.LOGGER.warn("behaviour may not be correct"); + yield "com.lowdragmc.shimmer.fabric.platform.ForgePlatformHelper"; + } case "fabric" -> "com.lowdragmc.shimmer.fabric.platform.FabricPlatformHelper"; case "quilt" -> { - ShimmerConstants.LOGGER.warn("quilt detected, just work under fabric"); - ShimmerConstants.LOGGER.warn("behaviour may ne be correct"); + ShimmerConstants.LOGGER.warn("quilt detected, just works under fabric"); + ShimmerConstants.LOGGER.warn("behaviour may not be correct"); yield "com.lowdragmc.shimmer.fabric.platform.FabricPlatformHelper"; } //https://github.com/sp614x/optifine/issues/1631 diff --git a/Common/src/main/resources/shimmer.accesswidener b/Common/src/main/resources/shimmer.accesswidener index 5fe5628..1659afa 100644 --- a/Common/src/main/resources/shimmer.accesswidener +++ b/Common/src/main/resources/shimmer.accesswidener @@ -1,13 +1,11 @@ accessWidener v1 named accessible class com/mojang/blaze3d/pipeline/MainTarget$Dimension -accessible class net/minecraft/client/renderer/LevelRenderer$RenderChunkInfo accessible class net/minecraft/client/gui/components/CycleButton$ValueListSupplier -accessible class net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk$RebuildTask -accessible class net/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk$RebuildTask$CompileResults +accessible class net/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask +accessible class net/minecraft/client/renderer/chunk/SectionRenderDispatcher$RenderSection$RebuildTask$CompileResults accessible method net/minecraft/client/renderer/RenderType create (Ljava/lang/String;Lcom/mojang/blaze3d/vertex/VertexFormat;Lcom/mojang/blaze3d/vertex/VertexFormat$Mode;IZZLnet/minecraft/client/renderer/RenderType$CompositeState;)Lnet/minecraft/client/renderer/RenderType$CompositeRenderType; -accessible field net/minecraft/client/renderer/LevelRenderer$RenderChunkInfo chunk Lnet/minecraft/client/renderer/chunk/ChunkRenderDispatcher$RenderChunk; accessible field com/mojang/blaze3d/vertex/PoseStack poseStack Ljava/util/Deque; accessible field net/minecraft/client/particle/ParticleEngine textureAtlas Lnet/minecraft/client/renderer/texture/TextureAtlas; \ No newline at end of file diff --git a/Common/src/main/resources/shimmer.mixins.json b/Common/src/main/resources/shimmer.mixins.json index 79d9e25..886c0e1 100644 --- a/Common/src/main/resources/shimmer.mixins.json +++ b/Common/src/main/resources/shimmer.mixins.json @@ -20,7 +20,7 @@ "PostPassMixin", "ProgramMixin", "RebuildTaskMixin", - "RenderChunkMixin", + "RenderSectionMixin", "RenderSystemMixin", "RenderTargetMixin", "ShaderInstanceGlslProcessorMixin", diff --git a/Fabric/build.gradle.kts b/Fabric/build.gradle.kts index 19fdbfb..ca71316 100644 --- a/Fabric/build.gradle.kts +++ b/Fabric/build.gradle.kts @@ -33,15 +33,16 @@ dependencies { include("me.shedaniel.cloth:cloth-config-fabric:$cloth_config_version") // Sodium - modImplementation("maven.modrinth:sodium:mc1.20.1-0.5.3") { + modImplementation("maven.modrinth:sodium:mc1.20.4-0.5.8") { exclude(group = "net.fabricmc.fabric-api") } - modImplementation("maven.modrinth:iris:1.6.10+1.20.1") { + modImplementation("maven.modrinth:iris:1.6.17+1.20.4") { exclude(group = "net.fabricmc.fabric-api") } - modImplementation("com.jozufozu.flywheel:flywheel-fabric-$minecraft_version:$fabric_flywheel_version") + // There is no flywheel 1.20.4 version currently + // modImplementation("com.jozufozu.flywheel:flywheel-fabric-$minecraft_version:$fabric_flywheel_version") implementation("org.anarres:jcpp:1.4.14") {isTransitive = false}// for iris implementation("io.github.douira:glsl-transformer:2.0.0-pre13") // for iris diff --git a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/MinecraftMixin.java b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/MinecraftMixin.java index 864e5c1..ff2ab55 100644 --- a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/MinecraftMixin.java +++ b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/MinecraftMixin.java @@ -25,7 +25,7 @@ public class MinecraftMixin { * @param screen * @param ci */ - @Inject(method = "clearLevel(Lnet/minecraft/client/gui/screens/Screen;)V", + @Inject(method = "disconnect(Lnet/minecraft/client/gui/screens/Screen;)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;updateScreenAndTick(Lnet/minecraft/client/gui/screens/Screen;)V", shift = At.Shift.AFTER)) diff --git a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/ChunkBuilderMeshingTaskMixin.java b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/ChunkBuilderMeshingTaskMixin.java index ef6140e..82ab7f2 100644 --- a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/ChunkBuilderMeshingTaskMixin.java +++ b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/ChunkBuilderMeshingTaskMixin.java @@ -4,18 +4,13 @@ import com.lowdragmc.shimmer.client.light.ColorPointLight; import com.lowdragmc.shimmer.client.light.LightManager; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; -import com.lowdragmc.shimmer.core.IRenderChunk; +import com.lowdragmc.shimmer.core.IRenderSection; import me.jellysquid.mods.sodium.client.render.chunk.RenderSection; -import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildBuffers; import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildContext; import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildOutput; -import me.jellysquid.mods.sodium.client.render.chunk.compile.pipeline.BlockRenderCache; -import me.jellysquid.mods.sodium.client.render.chunk.compile.pipeline.BlockRenderContext; import me.jellysquid.mods.sodium.client.render.chunk.compile.tasks.ChunkBuilderMeshingTask; -import me.jellysquid.mods.sodium.client.render.chunk.data.BuiltSectionInfo; import me.jellysquid.mods.sodium.client.util.task.CancellationToken; import me.jellysquid.mods.sodium.client.world.WorldSlice; -import net.minecraft.client.renderer.chunk.VisGraph; import net.minecraft.core.BlockPos; import net.minecraft.world.level.block.state.BlockState; import org.spongepowered.asm.mixin.Final; @@ -26,7 +21,6 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; /** * @author KilaBash @@ -43,8 +37,7 @@ public abstract class ChunkBuilderMeshingTaskMixin { @Redirect(method = "execute(Lme/jellysquid/mods/sodium/client/render/chunk/compile/ChunkBuildContext;Lme/jellysquid/mods/sodium/client/util/task/CancellationToken;)Lme/jellysquid/mods/sodium/client/render/chunk/compile/ChunkBuildOutput;", at = @At(value = "INVOKE", - target = "Lme/jellysquid/mods/sodium/client/world/WorldSlice;getBlockState(III)Lnet/minecraft/world/level/block/state/BlockState;"), - remap = false) + target = "Lme/jellysquid/mods/sodium/client/world/WorldSlice;getBlockState(III)Lnet/minecraft/world/level/block/state/BlockState;")) private BlockState injectChunkCompileAddLight(WorldSlice slice, int x, int y, int z) { var blockState = slice.getBlockState(x, y, z); if (!blockState.isAir()) { @@ -65,7 +58,7 @@ private void injectChunkCompilePre(ChunkBuildContext buildContext, CancellationT @Inject(method = "execute(Lme/jellysquid/mods/sodium/client/render/chunk/compile/ChunkBuildContext;Lme/jellysquid/mods/sodium/client/util/task/CancellationToken;)Lme/jellysquid/mods/sodium/client/render/chunk/compile/ChunkBuildOutput;", at = @At("RETURN"), remap = false) private void injectChunkCompilePost(ChunkBuildContext buildContext, CancellationToken cancellationToken, CallbackInfoReturnable cir) { - if (this.render instanceof IRenderChunk shimmerRenderChunk) { + if (this.render instanceof IRenderSection shimmerRenderChunk) { shimmerRenderChunk.setShimmerLights(shimmer$lights.build()); } shimmer$lights = null; diff --git a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/CompactChunkVertexMixin.java b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/CompactChunkVertexMixin.java index f97a0fc..6626f5c 100644 --- a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/CompactChunkVertexMixin.java +++ b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/CompactChunkVertexMixin.java @@ -1,39 +1,29 @@ package com.lowdragmc.shimmer.fabric.core.mixins.sodium; -import me.jellysquid.mods.sodium.client.render.chunk.terrain.material.Material; +import com.llamalad7.mixinextras.sugar.Local; import me.jellysquid.mods.sodium.client.render.chunk.vertex.format.ChunkVertexEncoder; import me.jellysquid.mods.sodium.client.render.chunk.vertex.format.impl.CompactChunkVertex; +import org.lwjgl.system.MemoryUtil; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(value = CompactChunkVertex.class, remap = false) public abstract class CompactChunkVertexMixin { - @Shadow - private static int encodeDrawParameters(Material par1, int par2) { - throw new RuntimeException(); - } - - @Shadow - private static int encodeLight(int light) { - throw new RuntimeException(); - } - @Redirect(method = "lambda$getEncoder$0", at = @At(value = "INVOKE", target = "Lme/jellysquid/mods/sodium/client/render/chunk/vertex/format/impl/CompactChunkVertex;encodeDrawParameters(Lme/jellysquid/mods/sodium/client/render/chunk/terrain/material/Material;I)I")) - private static int injectMaterialForBloom(Material material, int i, long ptr, Material material1, ChunkVertexEncoder.Vertex vertex, int sectionIndex) { - var origin = encodeDrawParameters(material,i); + @Redirect(method = "lambda$getEncoder$0", at = @At(value = "INVOKE", target = "Lorg/lwjgl/system/MemoryUtil;memPutByte(JB)V", ordinal = 0)) + private static void injectMaterialForBloom(long ptr, byte value, @Local(argsOnly = true) ChunkVertexEncoder.Vertex vertex) { if ((vertex.light & 0x100) != 0) { - origin |= (0x01 << 4); + value |= (0x01 << 4); } - return origin; + MemoryUtil.memPutByte(ptr, value); } - @Redirect(method = "lambda$getEncoder$0", at = @At(value = "INVOKE", target = "Lme/jellysquid/mods/sodium/client/render/chunk/vertex/format/impl/CompactChunkVertex;encodeLight(I)I")) - private static int injectLightForBloom(int light, long ptr, Material material1, ChunkVertexEncoder.Vertex vertex, int sectionIndex) { - if ((light & 0x100) != 0) { - return 15 | 15 << 4; + @Redirect(method = "lambda$getEncoder$0", at = @At(value = "INVOKE", target = "Lorg/lwjgl/system/MemoryUtil;memPutInt(JI)V", ordinal = 1)) + private static void injectLightForBloom(long ptr, int value) { + if ((value & 0x100) != 0) { + value = 15 | 15 << 4; } - return encodeLight(light); + MemoryUtil.memPutInt(ptr, value); } } diff --git a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/RenderSectionMixin.java b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/RenderSectionMixin.java index 523db04..7f91ff6 100644 --- a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/RenderSectionMixin.java +++ b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/RenderSectionMixin.java @@ -1,7 +1,7 @@ package com.lowdragmc.shimmer.fabric.core.mixins.sodium; import com.lowdragmc.shimmer.client.light.ColorPointLight; -import com.lowdragmc.shimmer.core.IRenderChunk; +import com.lowdragmc.shimmer.core.IRenderSection; import me.jellysquid.mods.sodium.client.render.chunk.RenderSection; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Unique; @@ -15,7 +15,7 @@ * @implNote TODO */ @Mixin(RenderSection.class) -public abstract class RenderSectionMixin implements IRenderChunk { +public abstract class RenderSectionMixin implements IRenderSection { @Unique List shimmerLights = Collections.emptyList(); diff --git a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/SodiumWorldRendererMixin.java b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/SodiumWorldRendererMixin.java index b5f8cbb..c8d48a1 100644 --- a/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/SodiumWorldRendererMixin.java +++ b/Fabric/src/main/java/com/lowdragmc/shimmer/fabric/core/mixins/sodium/SodiumWorldRendererMixin.java @@ -1,10 +1,9 @@ package com.lowdragmc.shimmer.fabric.core.mixins.sodium; import com.lowdragmc.shimmer.client.light.LightManager; -import com.lowdragmc.shimmer.core.IRenderChunk; +import com.lowdragmc.shimmer.core.IRenderSection; import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer; import me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager; -import me.jellysquid.mods.sodium.client.render.chunk.lists.ChunkRenderList; import me.jellysquid.mods.sodium.client.render.viewport.Viewport; import net.minecraft.client.Camera; import net.minecraft.world.phys.Vec3; @@ -44,7 +43,7 @@ private void injectCompilePre(Camera camera, Viewport viewport, int frame, boole var section = region.getSection(sectionIterator.nextByteAsInt()); if (section == null) continue; if (left <= blockLightSize) break; - if (section instanceof IRenderChunk shimmerRenderChunk) { + if (section instanceof IRenderSection shimmerRenderChunk) { for (var shimmerLight : shimmerRenderChunk.getShimmerLights()) { if (left <= blockLightSize) break; shimmerLight.uploadBuffer(buffer); diff --git a/Forge/gradle.properties b/Forge/gradle.properties deleted file mode 100644 index 32f842a..0000000 --- a/Forge/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -loom.platform=forge \ No newline at end of file diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/CommonProxy.java b/Forge/src/main/java/com/lowdragmc/shimmer/forge/CommonProxy.java deleted file mode 100644 index c13b312..0000000 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/CommonProxy.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.lowdragmc.shimmer.forge; - -import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.fml.loading.FMLLoader; - -/** - * @author KilaBash - * @date 2022/05/02 - * @implNote com.lowdragmc.shimmer.CommonProxy - */ -public class CommonProxy { - public CommonProxy() { - IEventBus eventBus = FMLJavaModLoadingContext.get().getModEventBus(); - eventBus.register(this); - } - -} diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/ShimmerMod.java b/Forge/src/main/java/com/lowdragmc/shimmer/forge/ShimmerMod.java deleted file mode 100644 index 4dad8c3..0000000 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/ShimmerMod.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.lowdragmc.shimmer.forge; - -import com.lowdragmc.shimmer.ShimmerConstants; -import com.lowdragmc.shimmer.forge.client.ClientProxy; -import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.fml.IExtensionPoint; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.network.NetworkConstants; - -@Mod(ShimmerConstants.MOD_ID) -public class ShimmerMod { - - public ShimmerMod() { - ForgeShimmerConfig.registerConfig(); - ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> NetworkConstants.IGNORESERVERONLY, (a, b) -> true)); - DistExecutor.unsafeRunForDist(() -> ClientProxy::new, () -> CommonProxy::new); - } - - public static boolean isRubidiumLoaded() { - return ModList.get().isLoaded("rubidium"); - } -} diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/event/ForgeShimmerLoadConfigEvent.java b/Forge/src/main/java/com/lowdragmc/shimmer/forge/event/ForgeShimmerLoadConfigEvent.java deleted file mode 100644 index 4cfa166..0000000 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/event/ForgeShimmerLoadConfigEvent.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.lowdragmc.shimmer.forge.event; - -import com.lowdragmc.shimmer.event.ShimmerLoadConfigEvent; -import net.minecraftforge.eventbus.api.Event; -import net.minecraftforge.fml.event.IModBusEvent; - - -public class ForgeShimmerLoadConfigEvent extends Event implements IModBusEvent { - public final ShimmerLoadConfigEvent event; - - public ForgeShimmerLoadConfigEvent(ShimmerLoadConfigEvent event) { - this.event = event; - } - -} diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/event/ForgeShimmerReloadEvent.java b/Forge/src/main/java/com/lowdragmc/shimmer/forge/event/ForgeShimmerReloadEvent.java deleted file mode 100644 index 5554e87..0000000 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/event/ForgeShimmerReloadEvent.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.lowdragmc.shimmer.forge.event; - -import com.lowdragmc.shimmer.event.ShimmerReloadEvent; -import net.minecraftforge.eventbus.api.Event; -import net.minecraftforge.fml.event.IModBusEvent; - -public class ForgeShimmerReloadEvent extends Event implements IModBusEvent { - public final ShimmerReloadEvent event; - - public ForgeShimmerReloadEvent(ShimmerReloadEvent event) { - this.event = event; - } -} diff --git a/Forge/build.gradle.kts b/NeoForge/build.gradle.kts similarity index 64% rename from Forge/build.gradle.kts rename to NeoForge/build.gradle.kts index fca93ff..a954850 100644 --- a/Forge/build.gradle.kts +++ b/NeoForge/build.gradle.kts @@ -2,55 +2,44 @@ plugins { id("com.github.johnrengelman.shadow") } -architectury { - platformSetupLoomIde() - forge() +repositories { + maven ( "https://maven.neoforged.net/releases/" ) } -dependencies { - forge("net.minecraftforge:forge:$forge_version") +architectury { + platformSetupLoomIde() + neoForge() } loom { accessWidenerPath.set(project(":Common").loom.accessWidenerPath) - - forge { - convertAccessWideners.set(true) - extraAccessWideners.add(loom.accessWidenerPath.get().asFile.name) - - mixinConfig("$mod_id.mixins.json") - mixinConfig("$mod_id.forge.mixins.json") - - } - } val common by configurations.creating val shadowCommon by configurations.creating -val developmentForge = configurations.named("developmentForge") +val developmentNeoForge = configurations.named("developmentNeoForge") configurations { compileClasspath.get().extendsFrom(common) runtimeClasspath.get().extendsFrom(common) - developmentForge.get().extendsFrom(common) + developmentNeoForge.get().extendsFrom(common) } dependencies { - forge("net.minecraftforge:forge:$forge_version") + neoForge("net.neoforged:neoforge:$neoforge_version") common(project(path = ":Common", configuration = "namedElements")) { isTransitive = false } - shadowCommon(project(path = ":Common", configuration = "transformProductionForge")) { isTransitive = false } - - include(mixinExtras) - forgeRuntimeLibrary(mixinExtras) + shadowCommon(project(path = ":Common", configuration = "transformProductionNeoForge")) { isTransitive = false } - modImplementation("com.jozufozu.flywheel:flywheel-forge-$minecraft_version:$forge_flywheel_version") + // There is no flywheel 1.20.4 version currently + //modImplementation("com.jozufozu.flywheel:flywheel-forge-$minecraft_version:$forge_flywheel_version") forgeRuntimeLibrary("icyllis.modernui:ModernUI-Core:$modernui_core_version") - modCompileOnly("icyllis.modernui:ModernUI-Forge:${minecraft_version}-${modernui_version}") + modCompileOnly("icyllis.modernui:ModernUI-NeoForge:${minecraft_version}-${modernui_version}") - modImplementation("maven.modrinth:embeddium:0.3.4+mc1.20.1") - modImplementation("maven.modrinth:oculus:1.20.1-1.6.15a") + modImplementation("maven.modrinth:embeddium:0.3.11+mc1.20.4") + // There is no oculus 1.20.4 version currently + modCompileOnly("maven.modrinth:oculus:1.20.1-1.6.15a") } diff --git a/NeoForge/gradle.properties b/NeoForge/gradle.properties new file mode 100644 index 0000000..0d46556 --- /dev/null +++ b/NeoForge/gradle.properties @@ -0,0 +1,2 @@ +loom.platform=neoforge +mod_group_id=com.lowdragmc \ No newline at end of file diff --git a/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/CommonProxy.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/CommonProxy.java new file mode 100644 index 0000000..dcc7c98 --- /dev/null +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/CommonProxy.java @@ -0,0 +1,16 @@ +package com.lowdragmc.shimmer.neoforge; + +import net.neoforged.bus.api.IEventBus; + +/** + * @author KilaBash + * @date 2022/05/02 + * @implNote com.lowdragmc.shimmer.CommonProxy + */ +public class CommonProxy { + + public CommonProxy(IEventBus modBus) { + modBus.register(this); + } + +} diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/ForgeShimmerConfig.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/NeoForgeShimmerConfig.java similarity index 73% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/ForgeShimmerConfig.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/NeoForgeShimmerConfig.java index e9d3de1..6671346 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/ForgeShimmerConfig.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/NeoForgeShimmerConfig.java @@ -1,22 +1,22 @@ -package com.lowdragmc.shimmer.forge; +package com.lowdragmc.shimmer.neoforge; import com.lowdragmc.shimmer.ShimmerConstants; -import net.minecraftforge.common.ForgeConfigSpec; -import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fml.config.ModConfig; +import net.neoforged.neoforge.common.ModConfigSpec; +import net.neoforged.fml.ModLoadingContext; +import net.neoforged.fml.config.ModConfig; -public class ForgeShimmerConfig { - private static ForgeConfigSpec.IntValue UBO_OFFSET; - private static ForgeConfigSpec.BooleanValue BLOCK_BLOOM; - private static ForgeConfigSpec.BooleanValue LIGHT_MAP; - private static ForgeConfigSpec.BooleanValue COLORED_LIGHT_ENABLE; - private static ForgeConfigSpec.BooleanValue BLOOM_ENABLE; - private static ForgeConfigSpec.BooleanValue ADDITIVE_BLEND; - private static ForgeConfigSpec.IntValue BLOOM_COLOR_ATTACHMENT_NUMBER; - private static ForgeConfigSpec.BooleanValue INSERT_SHADER_INFO; - private static ForgeConfigSpec.BooleanValue ENABLE_BUILDIN_SETTING; +public class NeoForgeShimmerConfig { + private static ModConfigSpec.IntValue UBO_OFFSET; + private static ModConfigSpec.BooleanValue BLOCK_BLOOM; + private static ModConfigSpec.BooleanValue LIGHT_MAP; + private static ModConfigSpec.BooleanValue COLORED_LIGHT_ENABLE; + private static ModConfigSpec.BooleanValue BLOOM_ENABLE; + private static ModConfigSpec.BooleanValue ADDITIVE_BLEND; + private static ModConfigSpec.IntValue BLOOM_COLOR_ATTACHMENT_NUMBER; + private static ModConfigSpec.BooleanValue INSERT_SHADER_INFO; + private static ModConfigSpec.BooleanValue ENABLE_BUILDIN_SETTING; - public static ForgeConfigSpec.IntValue getUboOffset() { + public static ModConfigSpec.IntValue getUboOffset() { if (UBO_OFFSET == null) { logAccessUnInit("UBO_OFFSET"); registerConfig(); @@ -24,7 +24,7 @@ public static ForgeConfigSpec.IntValue getUboOffset() { return UBO_OFFSET; } - public static ForgeConfigSpec.BooleanValue getBlockBloom() { + public static ModConfigSpec.BooleanValue getBlockBloom() { if (BLOCK_BLOOM == null) { logAccessUnInit("BLOCK_BLOOM"); registerConfig(); @@ -32,7 +32,7 @@ public static ForgeConfigSpec.BooleanValue getBlockBloom() { return BLOCK_BLOOM; } - public static ForgeConfigSpec.BooleanValue getLightMap() { + public static ModConfigSpec.BooleanValue getLightMap() { if (LIGHT_MAP == null) { logAccessUnInit("LIGHT_MAP"); registerConfig(); @@ -40,7 +40,7 @@ public static ForgeConfigSpec.BooleanValue getLightMap() { return LIGHT_MAP; } - public static ForgeConfigSpec.BooleanValue getColoredLightEnable(){ + public static ModConfigSpec.BooleanValue getColoredLightEnable(){ if (COLORED_LIGHT_ENABLE == null){ logAccessUnInit("COLORED_LIGHT_ENABLE"); registerConfig(); @@ -48,7 +48,7 @@ public static ForgeConfigSpec.BooleanValue getColoredLightEnable(){ return COLORED_LIGHT_ENABLE; } - public static ForgeConfigSpec.BooleanValue getBloomEnable(){ + public static ModConfigSpec.BooleanValue getBloomEnable(){ if (BLOOM_ENABLE == null){ logAccessUnInit("BLOOM_ENABLE"); registerConfig(); @@ -56,7 +56,7 @@ public static ForgeConfigSpec.BooleanValue getBloomEnable(){ return BLOOM_ENABLE; } - public static ForgeConfigSpec.BooleanValue getAdditiveBlend(){ + public static ModConfigSpec.BooleanValue getAdditiveBlend(){ if (ADDITIVE_BLEND == null){ logAccessUnInit("ADDITIVE_BLEND"); registerConfig(); @@ -65,7 +65,7 @@ public static ForgeConfigSpec.BooleanValue getAdditiveBlend(){ } //TODO config hasn't load when we need it, need change - public static ForgeConfigSpec.IntValue getBloomColorAttachmentNumber() { + public static ModConfigSpec.IntValue getBloomColorAttachmentNumber() { if (BLOOM_COLOR_ATTACHMENT_NUMBER == null){ logAccessUnInit("BLOOM_COLOR_ATTACHMENT_NUMBER"); registerConfig(); @@ -74,7 +74,7 @@ public static ForgeConfigSpec.IntValue getBloomColorAttachmentNumber() { } //TODO config hasn't load when we need it, need change - public static ForgeConfigSpec.BooleanValue getInsertShaderInfo(){ + public static ModConfigSpec.BooleanValue getInsertShaderInfo(){ if (INSERT_SHADER_INFO == null){ logAccessUnInit("INSERT_SHADER_INFO"); registerConfig(); @@ -82,7 +82,7 @@ public static ForgeConfigSpec.BooleanValue getInsertShaderInfo(){ return INSERT_SHADER_INFO; } - public static ForgeConfigSpec.BooleanValue getEnableBuildinSetting(){ + public static ModConfigSpec.BooleanValue getEnableBuildinSetting(){ if (ENABLE_BUILDIN_SETTING == null) { logAccessUnInit("ENABLE_BUILDIN_SETTING"); registerConfig(); @@ -100,12 +100,12 @@ private static void logAccessUnInit(String configValueName){ } public static void registerConfig(){ - ForgeConfigSpec.Builder clientBuilder = new ForgeConfigSpec.Builder(); + ModConfigSpec.Builder clientBuilder = new ModConfigSpec.Builder(); registerClientConfig(clientBuilder); ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT,clientBuilder.build()); } - private static void registerClientConfig(ForgeConfigSpec.Builder builder){ + private static void registerClientConfig(ModConfigSpec.Builder builder){ UBO_OFFSET = builder.comment( "setting UBO offset", "-1 for auto setting", diff --git a/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/ShimmerMod.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/ShimmerMod.java new file mode 100644 index 0000000..dcb2eda --- /dev/null +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/ShimmerMod.java @@ -0,0 +1,29 @@ +package com.lowdragmc.shimmer.neoforge; + +import com.lowdragmc.shimmer.ShimmerConstants; +import com.lowdragmc.shimmer.neoforge.client.ClientProxy; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.IExtensionPoint; +import net.neoforged.fml.ModList; +import net.neoforged.fml.ModLoadingContext; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforgespi.Environment; + +@Mod(ShimmerConstants.MOD_ID) +public class ShimmerMod { + + public ShimmerMod(IEventBus modBus) { + NeoForgeShimmerConfig.registerConfig(); + ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> IExtensionPoint.DisplayTest.IGNORESERVERONLY, (a, b) -> true)); + + if (Environment.get().getDist().isClient()) { + new ClientProxy(modBus); + } else { + new CommonProxy(modBus); + } + } + + public static boolean isRubidiumLoaded() { + return ModList.get().isLoaded("rubidium"); + } +} diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/client/ClientProxy.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/client/ClientProxy.java similarity index 80% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/client/ClientProxy.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/client/ClientProxy.java index 2f928f0..0a3db8b 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/client/ClientProxy.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/client/ClientProxy.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.client; +package com.lowdragmc.shimmer.neoforge.client; import com.lowdragmc.shimmer.Configuration; import com.lowdragmc.shimmer.ShimmerConstants; @@ -6,7 +6,6 @@ import com.lowdragmc.shimmer.client.ShimmerRenderTypes; import com.lowdragmc.shimmer.client.auxiliaryScreen.Eyedropper; import com.lowdragmc.shimmer.client.auxiliaryScreen.HsbColorWidget; -import com.lowdragmc.shimmer.client.light.ItemEntityLightSourceManager; import com.lowdragmc.shimmer.client.light.LightCounter; import com.lowdragmc.shimmer.client.light.LightManager; import com.lowdragmc.shimmer.client.model.ShimmerMetadataSection; @@ -14,21 +13,19 @@ import com.lowdragmc.shimmer.client.shader.ReloadShaderManager; import com.lowdragmc.shimmer.client.shader.RenderUtils; import com.lowdragmc.shimmer.client.shader.ShaderSSBO; -import com.lowdragmc.shimmer.comp.iris.ShaderpackInjection; import com.lowdragmc.shimmer.comp.iris.ShaderpackInjections; -import com.lowdragmc.shimmer.forge.CommonProxy; -import com.lowdragmc.shimmer.forge.ShimmerMod; +import com.lowdragmc.shimmer.neoforge.CommonProxy; import com.mojang.blaze3d.vertex.DefaultVertexFormat; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.server.packs.resources.ResourceManagerReloadListener; import net.minecraft.server.packs.resources.ResourceProvider; -import net.minecraftforge.client.event.RegisterClientReloadListenersEvent; -import net.minecraftforge.client.event.RegisterGuiOverlaysEvent; -import net.minecraftforge.client.event.RegisterKeyMappingsEvent; -import net.minecraftforge.client.event.RegisterShadersEvent; -import net.minecraftforge.event.TickEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.neoforge.client.event.RegisterClientReloadListenersEvent; +import net.neoforged.neoforge.client.event.RegisterGuiOverlaysEvent; +import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent; +import net.neoforged.neoforge.client.event.RegisterShadersEvent; import org.jetbrains.annotations.NotNull; /** @@ -38,7 +35,9 @@ */ public class ClientProxy extends CommonProxy implements ResourceManagerReloadListener { - public ClientProxy() { + public ClientProxy(IEventBus modBus) { + super(modBus); + modBus.register(this); LightManager.injectShaders(); PostProcessing.injectShaders(); ShaderpackInjections.injectShaders(); @@ -85,10 +84,10 @@ public void registerKeyBinding(RegisterKeyMappingsEvent event) { @SubscribeEvent public void registerOverlay(RegisterGuiOverlaysEvent event) { - event.registerBelowAll("screen_color_pick_overly", (forgeGui, guiGraphics, partialTick, screenWidth, screenHeight) -> { + event.registerBelowAll(new ResourceLocation(ShimmerConstants.MOD_ID, "screen_color_pick_overly"), (forgeGui, guiGraphics, partialTick, screenWidth, screenHeight) -> { Eyedropper.update(guiGraphics); }); - event.registerBelowAll("screen_shimmer_light_counter",(forgeGui, guiGraphics, partialTick, screenWidth, screenHeight) -> { + event.registerBelowAll(new ResourceLocation(ShimmerConstants.MOD_ID, "screen_shimmer_light_counter"),(forgeGui, guiGraphics, partialTick, screenWidth, screenHeight) -> { LightCounter.Render.update(guiGraphics); }); } diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/client/ForgeEventListener.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/client/NeoForgeEventListener.java similarity index 89% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/client/ForgeEventListener.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/client/NeoForgeEventListener.java index 2fcb85e..9ac0da2 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/client/ForgeEventListener.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/client/NeoForgeEventListener.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.client; +package com.lowdragmc.shimmer.neoforge.client; import com.lowdragmc.shimmer.ShimmerConstants; import com.lowdragmc.shimmer.Utils; @@ -9,7 +9,7 @@ import com.lowdragmc.shimmer.client.light.LightManager; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; import com.lowdragmc.shimmer.client.shader.ReloadShaderManager; -import com.lowdragmc.shimmer.forge.ForgeShimmerConfig; +import com.lowdragmc.shimmer.neoforge.NeoForgeShimmerConfig; import com.lowdragmc.shimmer.platform.Services; import com.lowdragmc.shimmer.renderdoc.RenderDoc; import com.mojang.brigadier.Command; @@ -17,13 +17,13 @@ import net.minecraft.client.Minecraft; import net.minecraft.commands.Commands; import net.minecraft.network.chat.Component; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.event.RegisterClientCommandsEvent; -import net.minecraftforge.event.TickEvent; -import net.minecraftforge.event.level.LevelEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import net.neoforged.neoforge.client.event.RegisterClientCommandsEvent; +import net.neoforged.neoforge.event.TickEvent; +import net.neoforged.neoforge.event.level.LevelEvent; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.Mod; import static net.minecraft.commands.Commands.literal; @@ -34,7 +34,7 @@ */ @Mod.EventBusSubscriber(modid = ShimmerConstants.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT) @OnlyIn(Dist.CLIENT) -public class ForgeEventListener { +public class NeoForgeEventListener { @SubscribeEvent public static void onClientTickPost(TickEvent.ClientTickEvent event) { @@ -79,21 +79,21 @@ public static void onRegisterClientCommands(RegisterClientCommandsEvent event) { .then(Commands.literal("colored_light") .then(Commands.argument("switch_state", BoolArgumentType.bool()).executes( context -> { - ForgeShimmerConfig.getColoredLightEnable().set(context.getArgument("switch_state", Boolean.class)); + NeoForgeShimmerConfig.getColoredLightEnable().set(context.getArgument("switch_state", Boolean.class)); return Command.SINGLE_SUCCESS; } ))) .then(Commands.literal("bloom") .then(Commands.argument("switch_state", BoolArgumentType.bool()).executes( context -> { - ForgeShimmerConfig.getBloomEnable().set(context.getArgument("switch_state", Boolean.class)); + NeoForgeShimmerConfig.getBloomEnable().set(context.getArgument("switch_state", Boolean.class)); return Command.SINGLE_SUCCESS; } ))) .then(Commands.literal("additive_blend") .then(Commands.argument("switch_state", BoolArgumentType.bool()).executes( context -> { - ForgeShimmerConfig.getAdditiveBlend().set(context.getArgument("switch_state", Boolean.class)); + NeoForgeShimmerConfig.getAdditiveBlend().set(context.getArgument("switch_state", Boolean.class)); ReloadShaderManager.reloadShader(); return Command.SINGLE_SUCCESS; } diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/compat/oculus/ForgeOculusHandle.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/compat/oculus/ForgeOculusHandle.java similarity index 97% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/compat/oculus/ForgeOculusHandle.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/compat/oculus/ForgeOculusHandle.java index be34d51..9181b73 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/compat/oculus/ForgeOculusHandle.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/compat/oculus/ForgeOculusHandle.java @@ -1,11 +1,11 @@ -package com.lowdragmc.shimmer.forge.compat.oculus; +package com.lowdragmc.shimmer.neoforge.compat.oculus; import com.lowdragmc.shimmer.ShimmerConstants; import com.lowdragmc.shimmer.client.shader.RenderUtils; import com.lowdragmc.shimmer.client.shader.ShaderSSBO; import com.lowdragmc.shimmer.comp.iris.IrisHandle; import com.lowdragmc.shimmer.core.mixins.MixinPluginShared; -import com.lowdragmc.shimmer.forge.core.mixins.rubidium.ShaderStorageBufferAccessor; +import com.lowdragmc.shimmer.neoforge.core.mixins.rubidium.ShaderStorageBufferAccessor; import net.coderbot.iris.gl.buffer.ShaderStorageBuffer; import net.irisshaders.iris.api.v0.IrisApi; import net.minecraft.client.Minecraft; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/BakedQuadMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/BakedQuadMixin.java similarity index 95% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/BakedQuadMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/BakedQuadMixin.java index fb34819..e4478bc 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/BakedQuadMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/BakedQuadMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins; +package com.lowdragmc.shimmer.neoforge.core.mixins; import com.lowdragmc.shimmer.client.model.ShimmerMetadataSection; import com.lowdragmc.shimmer.core.IBakedQuad; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/ForgeParticleEngineMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/NeoForgeParticleEngineMixin.java similarity index 95% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/ForgeParticleEngineMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/NeoForgeParticleEngineMixin.java index 11f85d6..02007d4 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/ForgeParticleEngineMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/NeoForgeParticleEngineMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins; +package com.lowdragmc.shimmer.neoforge.core.mixins; import com.google.common.collect.Maps; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; @@ -22,16 +22,13 @@ import net.minecraft.client.renderer.LightTexture; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.texture.TextureManager; -import net.minecraft.core.Registry; import net.minecraft.core.particles.ParticleOptions; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.core.registries.Registries; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.packs.resources.PreparableReloadListener; import net.minecraft.server.packs.resources.Resource; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.util.profiling.ProfilerFiller; -import net.minecraftforge.registries.ForgeRegistries; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; @@ -52,7 +49,7 @@ * @implNote ParticleEngineMixin, inject particle postprocessing */ @Mixin(ParticleEngine.class) -public abstract class ForgeParticleEngineMixin implements IParticleEngine { +public abstract class NeoForgeParticleEngineMixin implements IParticleEngine { @Shadow @Nullable protected abstract Particle makeParticle(T pParticleData, double pX, double pY, double pZ, double pXSpeed, double pYSpeed, double pZSpeed); @@ -126,7 +123,7 @@ private void injectReload(PreparableReloadListener.PreparationBarrier $$0, Resou @Inject(method = "createParticle", at = @At(value = "HEAD"), cancellable = true) private void injectCreateParticle(ParticleOptions particleOptions, double x, double y, double z, double sx, double sy, double sz, CallbackInfoReturnable cir) { - ResourceLocation name = ForgeRegistries.PARTICLE_TYPES.getKey(particleOptions.getType()); + ResourceLocation name = BuiltInRegistries.PARTICLE_TYPE.getKey(particleOptions.getType()); if (!ShimmerMixinPlugin.IS_OPT_LOAD) { if (PARTICLE_EFFECT.containsKey(name)) { PostProcessing postProcessing = PostProcessing.getPost(PARTICLE_EFFECT.get(name)); diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/QuadLighterMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/QuadLighterMixin.java similarity index 92% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/QuadLighterMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/QuadLighterMixin.java index 2a96164..9541a4f 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/QuadLighterMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/QuadLighterMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins; +package com.lowdragmc.shimmer.neoforge.core.mixins; import com.llamalad7.mixinextras.injector.ModifyReceiver; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; @@ -6,7 +6,7 @@ import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import net.minecraft.client.renderer.block.model.BakedQuad; -import net.minecraftforge.client.model.lighting.QuadLighter; +import net.neoforged.neoforge.client.model.lighting.QuadLighter; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/ShimmerForgeMixinPlugin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/ShimmerNeoForgeMixinPlugin.java similarity index 91% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/ShimmerForgeMixinPlugin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/ShimmerNeoForgeMixinPlugin.java index 19f3791..4bd6707 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/ShimmerForgeMixinPlugin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/ShimmerNeoForgeMixinPlugin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins; +package com.lowdragmc.shimmer.neoforge.core.mixins; import com.lowdragmc.shimmer.core.mixins.MixinPluginShared; import org.objectweb.asm.tree.ClassNode; @@ -13,7 +13,7 @@ * @date 2022/07/01 * Added to stop Rubidium & Sodium mixins from trying to load if the mod is not installed. Prevents log spam of Mixin Errors */ -public class ShimmerForgeMixinPlugin implements IMixinConfigPlugin , MixinPluginShared { +public class ShimmerNeoForgeMixinPlugin implements IMixinConfigPlugin , MixinPluginShared { @Override public void onLoad(String mixinPackage) { diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/flywheel/LevelRenderMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/flywheel/LevelRenderMixin.java similarity index 95% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/flywheel/LevelRenderMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/flywheel/LevelRenderMixin.java index 86e2d85..2a1b89c 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/flywheel/LevelRenderMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/flywheel/LevelRenderMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.flywheel; +package com.lowdragmc.shimmer.neoforge.core.mixins.flywheel; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; import com.mojang.blaze3d.vertex.PoseStack; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/HeldItemSupplierMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/HeldItemSupplierMixin.java similarity index 95% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/HeldItemSupplierMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/HeldItemSupplierMixin.java index 448fbc0..a41f35d 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/HeldItemSupplierMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/HeldItemSupplierMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.oculus; +package com.lowdragmc.shimmer.neoforge.core.mixins.oculus; import com.lowdragmc.shimmer.client.light.LightManager; import net.minecraft.client.Minecraft; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/ProgramSetMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/ProgramSetMixin.java similarity index 97% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/ProgramSetMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/ProgramSetMixin.java index 3cf5a01..c830c7d 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/ProgramSetMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/ProgramSetMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.oculus; +package com.lowdragmc.shimmer.neoforge.core.mixins.oculus; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.lowdragmc.shimmer.comp.iris.ShaderpackInjection; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/ShaderPropertiesMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/ShaderPropertiesMixin.java similarity index 93% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/ShaderPropertiesMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/ShaderPropertiesMixin.java index 83809c3..846b8df 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/ShaderPropertiesMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/ShaderPropertiesMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.oculus; +package com.lowdragmc.shimmer.neoforge.core.mixins.oculus; import com.lowdragmc.shimmer.comp.iris.IrisHandle; import net.coderbot.iris.shaderpack.ShaderProperties; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/ShaderStorageBufferHolderMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/ShaderStorageBufferHolderMixin.java similarity index 94% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/ShaderStorageBufferHolderMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/ShaderStorageBufferHolderMixin.java index 16ba2ff..b27d6e5 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/ShaderStorageBufferHolderMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/ShaderStorageBufferHolderMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.oculus; +package com.lowdragmc.shimmer.neoforge.core.mixins.oculus; import com.lowdragmc.shimmer.comp.iris.IrisHandle; import net.coderbot.iris.gl.buffer.ShaderStorageBuffer; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/StandardMacrosMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/StandardMacrosMixin.java similarity index 95% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/StandardMacrosMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/StandardMacrosMixin.java index 2d8e7a9..a30b24b 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/oculus/StandardMacrosMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/oculus/StandardMacrosMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.oculus; +package com.lowdragmc.shimmer.neoforge.core.mixins.oculus; import com.lowdragmc.shimmer.ShimmerConstants; import net.coderbot.iris.gl.shader.StandardMacros; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/BlockRendererMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/BlockRendererMixin.java similarity index 95% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/BlockRendererMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/BlockRendererMixin.java index aa13ecc..7e334fd 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/BlockRendererMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/BlockRendererMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import com.llamalad7.mixinextras.injector.ModifyReturnValue; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ChunkBuilderMeshingTaskMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ChunkBuilderMeshingTaskMixin.java similarity index 95% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ChunkBuilderMeshingTaskMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ChunkBuilderMeshingTaskMixin.java index 097fc30..16a555f 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ChunkBuilderMeshingTaskMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ChunkBuilderMeshingTaskMixin.java @@ -1,10 +1,10 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import com.google.common.collect.ImmutableList; import com.lowdragmc.shimmer.client.light.ColorPointLight; import com.lowdragmc.shimmer.client.light.LightManager; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; -import com.lowdragmc.shimmer.core.IRenderChunk; +import com.lowdragmc.shimmer.core.IRenderSection; import me.jellysquid.mods.sodium.client.render.chunk.RenderSection; import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildContext; import me.jellysquid.mods.sodium.client.render.chunk.compile.ChunkBuildOutput; @@ -59,7 +59,7 @@ private void injectChunkCompilePre(ChunkBuildContext buildContext, CancellationT @Inject(method = "execute(Lme/jellysquid/mods/sodium/client/render/chunk/compile/ChunkBuildContext;Lme/jellysquid/mods/sodium/client/util/task/CancellationToken;)Lme/jellysquid/mods/sodium/client/render/chunk/compile/ChunkBuildOutput;", at = @At("RETURN"), remap = false) private void injectChunkCompilePost(ChunkBuildContext buildContext, CancellationToken cancellationToken, CallbackInfoReturnable cir) { - if (this.render instanceof IRenderChunk shimmerRenderChunk) { + if (this.render instanceof IRenderSection shimmerRenderChunk) { shimmerRenderChunk.setShimmerLights(shimmer$lights.build()); } shimmer$lights = null; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/CompactChunkVertexMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/CompactChunkVertexMixin.java similarity index 95% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/CompactChunkVertexMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/CompactChunkVertexMixin.java index d497390..88ea807 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/CompactChunkVertexMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/CompactChunkVertexMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import me.jellysquid.mods.sodium.client.render.chunk.terrain.material.Material; import me.jellysquid.mods.sodium.client.render.chunk.vertex.format.ChunkVertexEncoder; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/FluidRendererMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/FluidRendererMixin.java similarity index 96% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/FluidRendererMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/FluidRendererMixin.java index 2f5cb6e..ef0c5aa 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/FluidRendererMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/FluidRendererMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; import me.jellysquid.mods.sodium.client.model.color.ColorProvider; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ModelQuadUtilMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ModelQuadUtilMixin.java similarity index 92% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ModelQuadUtilMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ModelQuadUtilMixin.java index 95e429d..14b1d7f 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ModelQuadUtilMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ModelQuadUtilMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import me.jellysquid.mods.sodium.client.util.ModelQuadUtil; import org.spongepowered.asm.mixin.Mixin; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/RenderSectionManagerAccessor.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/RenderSectionManagerAccessor.java similarity index 88% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/RenderSectionManagerAccessor.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/RenderSectionManagerAccessor.java index 7638e99..36f7860 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/RenderSectionManagerAccessor.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/RenderSectionManagerAccessor.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager; import me.jellysquid.mods.sodium.client.render.chunk.lists.SortedRenderLists; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/RenderSectionMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/RenderSectionMixin.java similarity index 77% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/RenderSectionMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/RenderSectionMixin.java index 6394d1a..b2d1270 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/RenderSectionMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/RenderSectionMixin.java @@ -1,7 +1,7 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import com.lowdragmc.shimmer.client.light.ColorPointLight; -import com.lowdragmc.shimmer.core.IRenderChunk; +import com.lowdragmc.shimmer.core.IRenderSection; import me.jellysquid.mods.sodium.client.render.chunk.RenderSection; import org.spongepowered.asm.mixin.Mixin; @@ -14,7 +14,7 @@ * @implNote TODO */ @Mixin(RenderSection.class) -public abstract class RenderSectionMixin implements IRenderChunk { +public abstract class RenderSectionMixin implements IRenderSection { List shimmerLights = Collections.emptyList(); @Override diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ShaderChunkRendererMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ShaderChunkRendererMixin.java similarity index 94% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ShaderChunkRendererMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ShaderChunkRendererMixin.java index 814918a..79875be 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ShaderChunkRendererMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ShaderChunkRendererMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import com.lowdragmc.shimmer.client.light.LightManager; import me.jellysquid.mods.sodium.client.gl.shader.GlProgram; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ShaderLoaderMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ShaderLoaderMixin.java similarity index 95% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ShaderLoaderMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ShaderLoaderMixin.java index 957fe32..055cebe 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ShaderLoaderMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ShaderLoaderMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import com.lowdragmc.shimmer.client.light.LightManager; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ShaderStorageBufferAccessor.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ShaderStorageBufferAccessor.java similarity index 87% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ShaderStorageBufferAccessor.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ShaderStorageBufferAccessor.java index 2f65235..b1ba666 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/ShaderStorageBufferAccessor.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/ShaderStorageBufferAccessor.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import net.coderbot.iris.gl.buffer.ShaderStorageBuffer; import net.coderbot.iris.gl.buffer.ShaderStorageInfo; diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/SodiumWorldRendererMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/SodiumWorldRendererMixin.java similarity index 90% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/SodiumWorldRendererMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/SodiumWorldRendererMixin.java index f5f4d88..c19f7aa 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/SodiumWorldRendererMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/SodiumWorldRendererMixin.java @@ -1,10 +1,9 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import com.lowdragmc.shimmer.client.light.LightManager; -import com.lowdragmc.shimmer.core.IRenderChunk; +import com.lowdragmc.shimmer.core.IRenderSection; import me.jellysquid.mods.sodium.client.render.SodiumWorldRenderer; import me.jellysquid.mods.sodium.client.render.chunk.RenderSectionManager; -import me.jellysquid.mods.sodium.client.render.chunk.lists.ChunkRenderList; import me.jellysquid.mods.sodium.client.render.viewport.Viewport; import net.minecraft.client.Camera; import net.minecraft.world.phys.Vec3; @@ -43,7 +42,7 @@ private void injectCompilePre(Camera camera, Viewport viewport, int frame, boole var section = region.getSection(sectionIterator.nextByteAsInt()); if (section == null) continue; if (left <= blockLightSize) break; - if (section instanceof IRenderChunk shimmerRenderChunk) { + if (section instanceof IRenderSection shimmerRenderChunk) { for (var shimmerLight : shimmerRenderChunk.getShimmerLights()) { if (left <= blockLightSize) break; shimmerLight.uploadBuffer(buffer); diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/VanillaLikeChunkVertexMixin.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/VanillaLikeChunkVertexMixin.java similarity index 96% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/VanillaLikeChunkVertexMixin.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/VanillaLikeChunkVertexMixin.java index a8dff0d..c10d7c9 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/core/mixins/rubidium/VanillaLikeChunkVertexMixin.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/core/mixins/rubidium/VanillaLikeChunkVertexMixin.java @@ -1,4 +1,4 @@ -package com.lowdragmc.shimmer.forge.core.mixins.rubidium; +package com.lowdragmc.shimmer.neoforge.core.mixins.rubidium; import me.jellysquid.mods.sodium.client.render.chunk.terrain.material.Material; import me.jellysquid.mods.sodium.client.render.chunk.vertex.format.ChunkVertexEncoder; diff --git a/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/event/NeoForgeShimmerLoadConfigEvent.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/event/NeoForgeShimmerLoadConfigEvent.java new file mode 100644 index 0000000..c98fa86 --- /dev/null +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/event/NeoForgeShimmerLoadConfigEvent.java @@ -0,0 +1,15 @@ +package com.lowdragmc.shimmer.neoforge.event; + +import com.lowdragmc.shimmer.event.ShimmerLoadConfigEvent; +import net.neoforged.bus.api.Event; +import net.neoforged.fml.event.IModBusEvent; + + +public class NeoForgeShimmerLoadConfigEvent extends Event implements IModBusEvent { + public final ShimmerLoadConfigEvent event; + + public NeoForgeShimmerLoadConfigEvent(ShimmerLoadConfigEvent event) { + this.event = event; + } + +} diff --git a/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/event/NeoForgeShimmerReloadEvent.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/event/NeoForgeShimmerReloadEvent.java new file mode 100644 index 0000000..431a737 --- /dev/null +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/event/NeoForgeShimmerReloadEvent.java @@ -0,0 +1,13 @@ +package com.lowdragmc.shimmer.neoforge.event; + +import com.lowdragmc.shimmer.event.ShimmerReloadEvent; +import net.neoforged.bus.api.Event; +import net.neoforged.fml.event.IModBusEvent; + +public class NeoForgeShimmerReloadEvent extends Event implements IModBusEvent { + public final ShimmerReloadEvent event; + + public NeoForgeShimmerReloadEvent(ShimmerReloadEvent event) { + this.event = event; + } +} diff --git a/Forge/src/main/java/com/lowdragmc/shimmer/forge/platform/ForgePlatformHelper.java b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/platform/NeoForgePlatformHelper.java similarity index 71% rename from Forge/src/main/java/com/lowdragmc/shimmer/forge/platform/ForgePlatformHelper.java rename to NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/platform/NeoForgePlatformHelper.java index aee6bb3..3d4f2c3 100644 --- a/Forge/src/main/java/com/lowdragmc/shimmer/forge/platform/ForgePlatformHelper.java +++ b/NeoForge/src/main/java/com/lowdragmc/shimmer/neoforge/platform/NeoForgePlatformHelper.java @@ -1,28 +1,28 @@ -package com.lowdragmc.shimmer.forge.platform; +package com.lowdragmc.shimmer.neoforge.platform; import com.lowdragmc.shimmer.event.ShimmerLoadConfigEvent; import com.lowdragmc.shimmer.event.ShimmerReloadEvent; -import com.lowdragmc.shimmer.forge.ForgeShimmerConfig; +import com.lowdragmc.shimmer.neoforge.NeoForgeShimmerConfig; import com.lowdragmc.shimmer.client.postprocessing.PostParticle; import com.lowdragmc.shimmer.client.postprocessing.PostProcessing; -import com.lowdragmc.shimmer.forge.event.ForgeShimmerLoadConfigEvent; -import com.lowdragmc.shimmer.forge.event.ForgeShimmerReloadEvent; +import com.lowdragmc.shimmer.neoforge.event.NeoForgeShimmerLoadConfigEvent; +import com.lowdragmc.shimmer.neoforge.event.NeoForgeShimmerReloadEvent; import com.lowdragmc.shimmer.platform.services.IPlatformHelper; import com.mojang.blaze3d.pipeline.RenderTarget; import net.minecraft.client.particle.Particle; import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.level.material.Fluid; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; -import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; -import net.minecraftforge.common.ForgeConfig; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.fml.ModLoader; -import net.minecraftforge.fml.loading.FMLConfig; -import net.minecraftforge.fml.loading.FMLLoader; -import net.minecraftforge.fml.loading.FMLPaths; -import net.minecraftforge.forgespi.language.IModInfo; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.api.distmarker.OnlyIn; +import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions; +import net.neoforged.neoforge.common.NeoForgeConfig; +import net.neoforged.fml.ModList; +import net.neoforged.fml.ModLoader; +import net.neoforged.fml.loading.FMLConfig; +import net.neoforged.fml.loading.FMLLoader; +import net.neoforged.fml.loading.FMLPaths; +import net.neoforged.neoforgespi.language.IModInfo; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL30; import org.lwjgl.opengl.GL31; @@ -34,11 +34,11 @@ * @author HypherionSA * @date 2022/06/09 */ -public class ForgePlatformHelper implements IPlatformHelper { +public class NeoForgePlatformHelper implements IPlatformHelper { @Override public String getPlatformName() { - return "Forge"; + return "NeoForge"; } @Override @@ -63,7 +63,7 @@ public boolean isStencilEnabled(RenderTarget target) { @Override public boolean useCombinedDepthStencilAttachment() { - return ForgeConfig.CLIENT.useCombinedDepthStencilAttachment.get(); + return NeoForgeConfig.CLIENT.useCombinedDepthStencilAttachment.get(); } @Override @@ -73,7 +73,7 @@ public void enableStencil(RenderTarget renderTarget) { @Override public int getUniformBufferObjectOffset() { - int configValue = ForgeShimmerConfig.getUboOffset().get(); + int configValue = NeoForgeShimmerConfig.getUboOffset().get(); if (configValue == -1) { if (ModList.get().isLoaded("modernui")) { return 6; @@ -87,12 +87,12 @@ public int getUniformBufferObjectOffset() { @Override public boolean useBlockBloom() { - return ForgeShimmerConfig.getBlockBloom().get(); + return NeoForgeShimmerConfig.getBlockBloom().get(); } @Override public boolean useLightMap() { - return ForgeShimmerConfig.getLightMap().get(); + return NeoForgeShimmerConfig.getLightMap().get(); } @OnlyIn(Dist.CLIENT) @@ -114,28 +114,28 @@ public boolean isLoadingStateValid() { @Override public boolean isColoredLightEnable() { - return ForgeShimmerConfig.getColoredLightEnable().get(); + return NeoForgeShimmerConfig.getColoredLightEnable().get(); } @Override public boolean isBloomEnable() { - return ForgeShimmerConfig.getBloomEnable().get(); + return NeoForgeShimmerConfig.getBloomEnable().get(); } @Override public boolean isAdditiveBlend() { - return ForgeShimmerConfig.getAdditiveBlend().get(); + return NeoForgeShimmerConfig.getAdditiveBlend().get(); } @Override public ShimmerLoadConfigEvent postLoadConfigurationEvent(ShimmerLoadConfigEvent event) { - ModLoader.get().postEvent(new ForgeShimmerLoadConfigEvent(event)); + ModLoader.get().postEvent(new NeoForgeShimmerLoadConfigEvent(event)); return event; } @Override public ShimmerReloadEvent postReloadEvent(ShimmerReloadEvent event){ - ModLoader.get().postEvent(new ForgeShimmerReloadEvent(event)); + ModLoader.get().postEvent(new NeoForgeShimmerReloadEvent(event)); return event; } @@ -176,7 +176,7 @@ public boolean isRenderDocEnable() { @Override public boolean enableBuildinSetting() { - return ForgeShimmerConfig.getEnableBuildinSetting().get(); + return NeoForgeShimmerConfig.getEnableBuildinSetting().get(); } } diff --git a/Forge/src/main/resources/META-INF/mods.toml b/NeoForge/src/main/resources/META-INF/mods.toml similarity index 68% rename from Forge/src/main/resources/META-INF/mods.toml rename to NeoForge/src/main/resources/META-INF/mods.toml index 1e8e777..596a3db 100644 --- a/Forge/src/main/resources/META-INF/mods.toml +++ b/NeoForge/src/main/resources/META-INF/mods.toml @@ -1,5 +1,5 @@ modLoader="javafml" -loaderVersion="[43,)" +loaderVersion="[1,)" license="MIT" issueTrackerURL="https://github.com/Low-Drag-MC/Shimmer/issues" @@ -13,16 +13,21 @@ credits="hypherionsa" authors="KilaBash, zomb_676" description='''Shimemr, make rendering vivid''' +[[mixins]] +config = "shimmer.mixins.json" +[[mixins]] +config = "shimmer.neoforge.mixins.json" + [[dependencies.shimmer]] -modId="forge" -mandatory=true -versionRange="[43,)" +modId="neoforge" +type="required" +versionRange="[1,)" ordering="NONE" side="BOTH" [[dependencies.shimmer]] modId="minecraft" -mandatory=true -versionRange="[1.20,1.21)" +type="required" +versionRange="[1.20.4,1.20.5)" ordering="NONE" side="BOTH" diff --git a/Forge/src/main/resources/pack.mcmeta b/NeoForge/src/main/resources/pack.mcmeta similarity index 100% rename from Forge/src/main/resources/pack.mcmeta rename to NeoForge/src/main/resources/pack.mcmeta diff --git a/Forge/src/main/resources/shimmer.forge.mixins.json b/NeoForge/src/main/resources/shimmer.neoforge.mixins.json similarity index 83% rename from Forge/src/main/resources/shimmer.forge.mixins.json rename to NeoForge/src/main/resources/shimmer.neoforge.mixins.json index 072b303..406f7a7 100644 --- a/Forge/src/main/resources/shimmer.forge.mixins.json +++ b/NeoForge/src/main/resources/shimmer.neoforge.mixins.json @@ -1,12 +1,12 @@ { "required": true, "minVersion": "0.8", - "package": "com.lowdragmc.shimmer.forge.core.mixins", + "package": "com.lowdragmc.shimmer.neoforge.core.mixins", "compatibilityLevel": "JAVA_17", - "plugin": "com.lowdragmc.shimmer.forge.core.mixins.ShimmerForgeMixinPlugin", + "plugin": "com.lowdragmc.shimmer.neoforge.core.mixins.ShimmerNeoForgeMixinPlugin", "client": [ "BakedQuadMixin", - "ForgeParticleEngineMixin", + "NeoForgeParticleEngineMixin", "QuadLighterMixin", "flywheel.LevelRenderMixin", "oculus.HeldItemSupplierMixin", diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index cdc431b..2d65372 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -7,7 +7,7 @@ repositories { gradlePluginPortal() maven("https://maven.architectury.dev/") maven("https://maven.fabricmc.net/") - maven("https://maven.minecraftforge.net/") + maven("https://maven.neoforged.net/releases/") } dependencies { diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts index 6ac3c44..95344a7 100644 --- a/buildSrc/settings.gradle.kts +++ b/buildSrc/settings.gradle.kts @@ -2,7 +2,7 @@ pluginManagement{ repositories { maven ( "https://maven.fabricmc.net/" ) maven ( "https://maven.architectury.dev/" ) - maven ( "https://maven.minecraftforge.net/" ) + maven ( "https://maven.neoforged.net/releases/" ) gradlePluginPortal() } } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/Constant.kt b/buildSrc/src/main/kotlin/Constant.kt index df247d8..5ee44ca 100644 --- a/buildSrc/src/main/kotlin/Constant.kt +++ b/buildSrc/src/main/kotlin/Constant.kt @@ -6,20 +6,20 @@ const val mod_author = "KilaBash" const val mod_id = "shimmer" //Common -const val minecraft_version = "1.20.1" -const val parchment_version = "1.20.1:2023.07.30" -const val enabled_platforms = "fabric,forge" +const val minecraft_version = "1.20.4" +const val parchment_version = "1.20.4-2024.02.25" +const val enabled_platforms = "fabric,neoforge" //Fabric -const val fabric_loader_version = "0.15.0" -const val fabric_api_version = "0.91.0+$minecraft_version" +const val fabric_loader_version = "0.15.7" +const val fabric_api_version = "0.96.4+$minecraft_version" const val cloth_config_version = "11.1.106" -const val mod_menu_version = "7.1.0" +const val mod_menu_version = "9.0.0" //Forge -const val forge_version = "$minecraft_version-47.1.43" -const val modernui_core_version = "3.7.1" -const val modernui_version = "3.7.1.3" +const val neoforge_version = "20.4.203" +const val modernui_core_version = "3.10.0" +const val modernui_version = "3.10.0.6" //Project const val version_major = 0.2 @@ -30,6 +30,7 @@ const val maven_group = "com.lowdragmc.shimmer" const val mixinExtras = "com.github.LlamaLad7:MixinExtras:0.1.1" +// There is no flywheel 1.20.4 version currently const val fabric_flywheel_version = "0.6.9-1" const val forge_flywheel_version = "0.6.10-7" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37aef8d..3499ded 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 4273cc7..a222ee7 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -3,18 +3,18 @@ pluginManagement { mavenCentral() maven ( "https://maven.fabricmc.net/" ) maven ( "https://maven.architectury.dev/" ) - maven ( "https://maven.minecraftforge.net/" ) + maven ( "https://maven.neoforged.net/releases/" ) gradlePluginPortal() } plugins{ id("architectury-plugin") version ("3.4-SNAPSHOT") apply false - id("dev.architectury.loom") version ("1.2-SNAPSHOT") apply false + id("dev.architectury.loom") version ("1.5-SNAPSHOT") apply false id("com.github.johnrengelman.shadow").version("8.1.1").apply(false) } } include("Common") include("Fabric") -include("Forge") +include("NeoForge") rootProject.name = "Shimmer"