6 Commits
main ... 1.21.5

Author SHA1 Message Date
Martin Prokoph
0d191e2888 port: Spring to Life (1.21.5) 2025-04-21 10:32:53 +02:00
Martin Prokoph
eef6c2aca0 Bump version (again) 2024-12-24 15:03:36 +01:00
Martin Prokoph
c0cdc982e7 Merge branch '1.21.4' of https://github.com/TeamMidnightDust/CullLeaves into 1.21.4 2024-12-24 15:01:41 +01:00
Martin Prokoph
796c2f246b Bump version 2024-12-24 15:01:21 +01:00
Martin Prokoph
e8b62d24e1 Merge pull request #57 from TeamMidnightDust/main
Also apply fixes to 1.21.4
2024-12-24 14:59:41 +01:00
Martin Prokoph
57613f465d Port to 1.21.4 2024-12-24 14:45:48 +01:00
8 changed files with 25 additions and 23 deletions

View File

@@ -1,6 +1,6 @@
plugins {
id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "1.6-SNAPSHOT" apply false
id "dev.architectury.loom" version "1.10-SNAPSHOT" apply false
id "me.shedaniel.unified-publishing" version "0.1.+" apply false
}

View File

@@ -5,20 +5,21 @@ import net.minecraft.block.BlockState;
import net.minecraft.block.LeavesBlock;
import net.minecraft.client.render.VertexConsumer;
import net.minecraft.client.render.block.BlockModelRenderer;
import net.minecraft.client.render.model.BakedModel;
import net.minecraft.client.render.model.BlockModelPart;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.random.Random;
import net.minecraft.world.BlockRenderView;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.List;
@Mixin(BlockModelRenderer.class)
public class MixinBlockModelRenderer {
@Inject(at = @At("HEAD"), method = "render(Lnet/minecraft/world/BlockRenderView;Lnet/minecraft/client/render/model/BakedModel;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;ZLnet/minecraft/util/math/random/Random;JI)V", cancellable = true)
private void cullleaves$cancelRendering(BlockRenderView world, BakedModel model, BlockState state, BlockPos pos, MatrixStack matrices, VertexConsumer vertexConsumer, boolean cull, Random random, long seed, int overlay, CallbackInfo ci) {
@Inject(at = @At("HEAD"), method = "render(Lnet/minecraft/world/BlockRenderView;Ljava/util/List;Lnet/minecraft/block/BlockState;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;ZI)V", cancellable = true)
private void cullleaves$cancelRendering(BlockRenderView world, List<BlockModelPart> parts, BlockState state, BlockPos pos, MatrixStack matrices, VertexConsumer vertexConsumer, boolean cull, int overlay, CallbackInfo ci) {
if (state.getBlock() instanceof LeavesBlock &&
CullLeavesClient.shouldHideBlock(world, pos)) ci.cancel();
}

View File

@@ -5,7 +5,7 @@ import net.caffeinemc.mods.sodium.client.render.chunk.compile.pipeline.BlockRend
import net.caffeinemc.mods.sodium.client.render.frapi.render.AbstractBlockRenderContext;
import net.minecraft.block.BlockState;
import net.minecraft.block.LeavesBlock;
import net.minecraft.client.render.model.BakedModel;
import net.minecraft.client.render.model.BlockStateModel;
import net.minecraft.util.math.BlockPos;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -15,7 +15,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(BlockRenderer.class)
public abstract class MixinBlockRenderer extends AbstractBlockRenderContext {
@Inject(at = @At("HEAD"), method = "renderModel", cancellable = true)
public void cullleaves$cancelRendering(BakedModel model, BlockState state, BlockPos pos, BlockPos origin, CallbackInfo ci) {
public void cullleaves$cancelRendering(BlockStateModel model, BlockState state, BlockPos pos, BlockPos origin, CallbackInfo ci) {
if (state.getBlock() instanceof LeavesBlock && CullLeavesClient.shouldHideBlock(this.level, pos))
ci.cancel();
}

View File

@@ -1,23 +1,23 @@
org.gradle.jvmargs=-Xmx4096M
minecraft_version=1.21.1
yarn_mappings=1.21.1+build.3
minecraft_version=1.21.5
yarn_mappings=1.21.5+build.1
enabled_platforms=fabric,neoforge
archives_base_name=cullleaves
mod_version=4.0.1
mod_version=4.0.4
maven_group=eu.midnightdust
release_type=release
curseforge_id=423254
modrinth_id=GNxdLCoP
midnightlib_version=1.6.3
sodium_version=mc1.21.1-0.6.5
midnightlib_version=1.7.1+1.21.4
sodium_version=mc1.21.5-0.6.13
fabric_loader_version=0.16.9
fabric_api_version=0.110.0+1.21.1
fabric_loader_version=0.16.13
fabric_api_version=0.121.0+1.21.5
neoforge_version=21.1.82
neoforge_version=21.5.52-beta
yarn_mappings_patch_neoforge_version = 1.21+build.4
quilt_loader_version=0.18.9

View File

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
networkTimeout=10000
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@@ -8,7 +8,7 @@ import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.ModList;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.RegisterClientReloadListenersEvent;
import net.neoforged.neoforge.client.event.AddClientReloadListenersEvent;
import net.neoforged.neoforge.event.AddPackFindersEvent;
import net.neoforged.neoforgespi.locating.IModFile;
@@ -36,7 +36,7 @@ public class CullLeavesClientEvents {
}));
}
@SubscribeEvent
public static void onResourceReload(RegisterClientReloadListenersEvent event) {
event.registerReloadListener(CullLeavesClient.ReloadListener.INSTANCE);
public static void onResourceReload(AddClientReloadListenersEvent event) {
event.addListener(Identifier.of(CullLeavesClient.MOD_ID, "resourcepack_options"), CullLeavesClient.ReloadListener.INSTANCE);
}
}

View File

@@ -5,7 +5,7 @@ import net.caffeinemc.mods.sodium.client.render.chunk.compile.pipeline.BlockRend
import net.minecraft.block.BlockState;
import net.minecraft.block.LeavesBlock;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.render.model.BakedModel;
import net.minecraft.client.render.model.BlockStateModel;
import net.minecraft.util.math.BlockPos;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@@ -19,7 +19,7 @@ public abstract class MixinBlockRenderer {
@Unique private static final MinecraftClient cullleaves$client = MinecraftClient.getInstance();
@Inject(at = @At("HEAD"), method = "renderModel", cancellable = true)
public void cullleaves$cancelRendering(BakedModel model, BlockState state, BlockPos pos, BlockPos origin, CallbackInfo ci) {
public void cullleaves$cancelRendering(BlockStateModel model, BlockState state, BlockPos pos, BlockPos origin, CallbackInfo ci) {
if (CullLeavesClient.forceHideInnerLeaves && state.getBlock() instanceof LeavesBlock && CullLeavesClient.shouldHideBlock(cullleaves$client.world, pos))
ci.cancel();
}

View File

@@ -1,5 +1,6 @@
package eu.midnightdust.cullleaves.neoforge.mixin.sodium;
import eu.midnightdust.cullleaves.CullLeavesClient;
import eu.midnightdust.cullleaves.config.CullLeavesConfig;
import net.caffeinemc.mods.sodium.client.gui.SodiumGameOptionPages;
import net.caffeinemc.mods.sodium.client.gui.options.OptionFlag;
@@ -31,7 +32,7 @@ public class MixinSodiumGameOptionPages {
.setControl(TickBoxControl::new)
.setBinding((opts, value) -> {
CullLeavesConfig.enabled = value;
CullLeavesConfig.write("cullleaves");
CullLeavesConfig.write(CullLeavesClient.MOD_ID);
}, opts -> CullLeavesConfig.enabled)
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
.setImpact(OptionImpact.MEDIUM)
@@ -42,7 +43,7 @@ public class MixinSodiumGameOptionPages {
.setControl(TickBoxControl::new)
.setBinding((opts, value) -> {
CullLeavesConfig.cullRoots = value;
CullLeavesConfig.write("cullleaves");
CullLeavesConfig.write(CullLeavesClient.MOD_ID);
}, opts -> CullLeavesConfig.cullRoots)
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
.setImpact(OptionImpact.MEDIUM)