release: v4.1.1

- Port to 1.21.11 (Mounts of Mayhem)
- Add support for Sodium 0.8.0
- Update to MidnightLib 1.9.2
This commit is contained in:
Martin Prokoph
2025-12-12 13:35:15 +01:00
parent d50656d2af
commit 01e61acba2
23 changed files with 494 additions and 70 deletions

View File

@@ -1,3 +1,8 @@
## CullLeaves v4.1.1
- Port to 1.21.11 (Mounts of Mayhem)
- Add support for Sodium 0.8.0
- Update to MidnightLib 1.9.2
# Cull Leaves v4.1.0
- Setup a **multiversion** build environment
- CullLeaves will now always be up-to-date on all relevant versions of Minecraft

View File

@@ -25,6 +25,9 @@ repositories {
// MidnightLib
maven("https://maven.midnightdust.eu/releases/")
// Sodium
maven("https://maven.caffeinemc.net/releases")
}
dependencies {
minecraft("com.mojang:minecraft:$minecraft")
@@ -47,7 +50,11 @@ dependencies {
}
if (loader == "neoforge") {
"neoForge"("net.neoforged:neoforge:${mod.dep("neoforge_loader")}")
modCompileOnly("maven.modrinth:sodium:${mod.dep("sodium_version")}-neoforge")
if (minecraft == "1.21.11")
modCompileOnly("net.caffeinemc:sodium-neoforge-mod:0.8.0+mc1.21.11")
else
modCompileOnly("maven.modrinth:sodium:${mod.dep("sodium_version")}-neoforge")
}
mappings (loom.officialMojangMappings())
}
@@ -218,6 +225,10 @@ stonecutter {
constants {
arrayOf("fabric", "neoforge", "forge").forEach { it -> put(it, loader == it) }
}
replacements.string {
direction = eval(current.version, ">=1.21.11")
replace("ResourceLocation", "Identifier")
}
replacements.string {
direction = eval(current.version, ">=1.21")
replace("new ResourceLocation", "ResourceLocation.fromNamespaceAndPath")

View File

@@ -7,7 +7,7 @@ org.gradle.parallel=false
#org.gradle.configureondemand=true
# Mod properties
mod.version=4.1.0
mod.version=4.1.1
mod.group=eu.midnightdust
mod.id=cullleaves
mod.name=CullLeaves
@@ -29,7 +29,7 @@ deps.neoforge_loader=[VERSIONED]
deps.neoforge_patch=[VERSIONED]
# Mod dependencies
deps.midnightlib_version=1.9.0
deps.midnightlib_version=1.9.2
deps.sodium_version=mc1.21.8-0.7.0
# Publishing

View File

@@ -22,10 +22,10 @@ stonecutter {
for (version in versions) vers("$version-$loader", version)
}
//i would recommend to use neoforge for mc > 1.20.1, i haven't tested template for forge on versions higher than that
mc("fabric","1.20.1", "1.21.1", "1.21.5", "1.21.8", "1.21.10")
mc("fabric","1.20.1", "1.21.1", "1.21.5", "1.21.8", "1.21.10", "1.21.11")
mc("forge","1.20.1")
//WARNING: neoforge uses mods.toml instead of neoforge.mods.toml for versions 1.20.4 (?) and earlier
mc("neoforge", "1.21.1", "1.21.5", "1.21.8", "1.21.10")
mc("neoforge", "1.21.1", "1.21.5", "1.21.8", "1.21.10", "1.21.11")
}
create(rootProject)
}

View File

@@ -7,7 +7,7 @@ import eu.midnightdust.lib.config.MidnightConfig;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.resources.Identifier;
import net.minecraft.server.packs.PackType;
import net.minecraft.server.packs.resources.ResourceManager;
@@ -137,15 +137,15 @@ public class CullLeavesClient /*? fabric {*/ implements ModInitializer /*?}*/ {
public void onInitialize() {
MidnightConfig.init(CullLeavesClient.MOD_ID, CullLeavesConfig.class);
FabricLoader.getInstance().getModContainer("cullleaves").ifPresent(modContainer -> {
ResourceManagerHelper.registerBuiltinResourcePack(ResourceLocation.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "smartleaves"), modContainer, ResourcePackActivationType.NORMAL);
ResourceManagerHelper.registerBuiltinResourcePack(Identifier.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "smartleaves"), modContainer, ResourcePackActivationType.NORMAL);
});
//? if >= 1.21.9 {
ResourceLoader.get(PackType.CLIENT_RESOURCES).registerReloader(ResourceLocation.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "resourcepack_options"), CullLeavesClient.ReloadListener.INSTANCE);
ResourceLoader.get(PackType.CLIENT_RESOURCES).registerReloader(Identifier.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "resourcepack_options"), CullLeavesClient.ReloadListener.INSTANCE);
//?} else {
/*ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(new SimpleSynchronousResourceReloadListener() {
@Override
public ResourceLocation getFabricId() {
return ResourceLocation.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "resourcepack_options");
public Identifier getFabricId() {
return Identifier.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "resourcepack_options");
}
@Override
public void onResourceManagerReload(ResourceManager manager) {
@@ -164,12 +164,12 @@ public class CullLeavesClient /*? fabric {*/ implements ModInitializer /*?}*/ {
@SubscribeEvent
public static void addPackFinders(AddPackFindersEvent event) {
if (event.getPackType() == PackType.CLIENT_RESOURCES) {
event.addPackFinders(ResourceLocation.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "resourcepacks/smartleaves"), PackType.CLIENT_RESOURCES, Component.literal("cullleaves/smartleaves"), PackSource.BUILT_IN, false, Pack.Position.TOP);
event.addPackFinders(Identifier.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "resourcepacks/smartleaves"), PackType.CLIENT_RESOURCES, Component.literal("cullleaves/smartleaves"), PackSource.BUILT_IN, false, Pack.Position.TOP);
}
}
@SubscribeEvent
public static void onResourceReload(/^? if >= 1.21.4 {^/ AddClientReloadListenersEvent /^?} else {^//^RegisterClientReloadListenersEvent ^//^?}^/ event) {
event. /^? if >= 1.21.4 {^/ addListener(ResourceLocation.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "resourcepack_options"), /^?} else {^/ /^registerReloadListener( ^//^?}^/ CullLeavesClient.ReloadListener.INSTANCE);
event. /^? if >= 1.21.4 {^/ addListener(Identifier.fromNamespaceAndPath(CullLeavesClient.MOD_ID, "resourcepack_options"), /^?} else {^/ /^registerReloadListener( ^//^?}^/ CullLeavesClient.ReloadListener.INSTANCE);
}
}
*///?} else if forge {
@@ -186,10 +186,10 @@ public class CullLeavesClient /*? fabric {*/ implements ModInitializer /*?}*/ {
@SubscribeEvent
public static void addPackFinders(AddPackFindersEvent event) {
if (event.getPackType() == PackType.CLIENT_RESOURCES) {
registerResourcePack(event, ResourceLocation.fromNamespaceAndPath(MOD_ID, "smartleaves"), false);
registerResourcePack(event, Identifier.fromNamespaceAndPath(MOD_ID, "smartleaves"), false);
}
}
private static void registerResourcePack(AddPackFindersEvent event, ResourceLocation id, boolean alwaysEnabled) {
private static void registerResourcePack(AddPackFindersEvent event, Identifier id, boolean alwaysEnabled) {
event.addRepositorySource((profileAdder -> {
IModFile file = ModList.get().getModFileById(id.getNamespace()).getFile();
try (PathPackResources pack = new PathPackResources(id.toString(), true, file.findResource("resourcepacks/"+id.getPath()))) {

View File

@@ -0,0 +1,43 @@
package eu.midnightdust.cullleaves.config;
//? if >= 1.21.11 {
import net.caffeinemc.mods.sodium.api.config.ConfigEntryPoint;
import net.caffeinemc.mods.sodium.api.config.option.OptionFlag;
import net.caffeinemc.mods.sodium.api.config.option.OptionImpact;
import net.caffeinemc.mods.sodium.api.config.structure.ConfigBuilder;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.Identifier;
import static eu.midnightdust.cullleaves.CullLeavesClient.MOD_ID;
public class SodiumConfigEntryPoint implements ConfigEntryPoint {
@Override
public void registerConfigLate(ConfigBuilder builder) {
builder.registerOwnModOptions().setName("Cull Leaves").setColorTheme(builder.createColorTheme().setBaseThemeRGB(0xFF55AA55))
.addPage(builder.createOptionPage().setName(Component.translatable("sodium.options.pages.performance")).addOptionGroup(builder.createOptionGroup()
.addOption(
builder.createBooleanOption(Identifier.fromNamespaceAndPath(MOD_ID, "enabled"))
.setDefaultValue(true)
.setName(Component.translatable("cullleaves.midnightconfig.enabled"))
.setTooltip(Component.translatable("cullleaves.midnightconfig.enabled.tooltip"))
.setBinding(value -> CullLeavesConfig.enabled = value,
() -> CullLeavesConfig.enabled)
.setStorageHandler(() -> CullLeavesConfig.write(MOD_ID))
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
.setImpact(OptionImpact.MEDIUM)
)
.addOption(
builder.createBooleanOption(Identifier.fromNamespaceAndPath(MOD_ID, "cullRoots"))
.setDefaultValue(true)
.setName(Component.translatable("cullleaves.midnightconfig.cullRoots"))
.setTooltip(Component.translatable("cullleaves.midnightconfig.cullRoots.tooltip"))
.setBinding(value -> CullLeavesConfig.cullRoots = value,
() -> CullLeavesConfig.cullRoots)
.setStorageHandler(() -> CullLeavesConfig.write(MOD_ID))
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
.setImpact(OptionImpact.MEDIUM)
)
));
}
}
//?}

View File

@@ -21,7 +21,7 @@ import net.caffeinemc.mods.sodium.client.render.chunk.compile.pipeline.BlockRend
*///?}
//? if fabric && >= 1.21 {
import net.caffeinemc.mods.sodium.client.render.frapi.render.AbstractBlockRenderContext;
/*? if < 1.21.11 {*/ /*import net.caffeinemc.mods.sodium.client.render.frapi.render.AbstractBlockRenderContext*/ /*?} else {*/ import net.caffeinemc.mods.sodium.client.render.model.AbstractBlockRenderContext; /*?}*/;
//?} else {
/*import net.minecraft.client.Minecraft;
import org.spongepowered.asm.mixin.Unique;

View File

@@ -1,56 +1,65 @@
package eu.midnightdust.cullleaves.mixin.sodium;
import eu.midnightdust.cullleaves.config.CullLeavesConfig;
import net.caffeinemc.mods.sodium.client.gui.SodiumGameOptionPages;
import net.caffeinemc.mods.sodium.client.gui.options.OptionFlag;
import net.caffeinemc.mods.sodium.client.gui.options.OptionGroup;
import net.caffeinemc.mods.sodium.client.gui.options.OptionImpact;
import net.caffeinemc.mods.sodium.client.gui.options.OptionImpl;
import net.caffeinemc.mods.sodium.client.gui.options.control.TickBoxControl;
import net.caffeinemc.mods.sodium.client.gui.options.storage.SodiumOptionsStorage;
import net.minecraft.network.chat.Component;
import org.spongepowered.asm.mixin.Final;
//? if < 1.21.11 {
//import eu.midnightdust.cullleaves.config.CullLeavesConfig;
//import net.caffeinemc.mods.sodium.client.gui.SodiumGameOptionPages;
//import net.caffeinemc.mods.sodium.client.gui.options.OptionFlag;
//import net.caffeinemc.mods.sodium.client.gui.options.OptionGroup;
//import net.caffeinemc.mods.sodium.client.gui.options.OptionImpact;
//import net.caffeinemc.mods.sodium.client.gui.options.OptionImpl;
//import net.caffeinemc.mods.sodium.client.gui.options.control.TickBoxControl;
//import net.caffeinemc.mods.sodium.client.gui.options.storage.SodiumOptionsStorage;
//import net.minecraft.network.chat.Component;
//import org.spongepowered.asm.mixin.Final;
//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.ModifyVariable;
//
//import java.util.List;
//
//@Mixin(value = SodiumGameOptionPages.class, remap = false)
//public class MixinSodiumGameOptionPages {
//
// @Shadow @Final private static SodiumOptionsStorage sodiumOpts;
//
// @ModifyVariable(method = "performance", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableList;copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList;"))
// private static List<OptionGroup> cullleaves$addCullLeavesOption(List<OptionGroup> groups) {
// groups.add(OptionGroup.createBuilder()
// .add(OptionImpl.createBuilder(boolean.class, sodiumOpts)
// .setName(Component.translatable("cullleaves.midnightconfig.enabled"))
// .setTooltip(Component.translatable("cullleaves.midnightconfig.enabled.tooltip"))
// .setControl(TickBoxControl::new)
// .setBinding((opts, value) -> {
// CullLeavesConfig.enabled = value;
// CullLeavesConfig.write("cullleaves");
// }, opts -> CullLeavesConfig.enabled)
// .setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
// .setImpact(OptionImpact.MEDIUM)
// .build()
// ).add(OptionImpl.createBuilder(boolean.class, sodiumOpts)
// .setName(Component.translatable("cullleaves.midnightconfig.cullRoots"))
// .setTooltip(Component.translatable("cullleaves.midnightconfig.cullRoots.tooltip"))
// .setControl(TickBoxControl::new)
// .setBinding((opts, value) -> {
// CullLeavesConfig.cullRoots = value;
// CullLeavesConfig.write("cullleaves");
// }, opts -> CullLeavesConfig.cullRoots)
// .setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
// .setImpact(OptionImpact.MEDIUM)
// .build()
// )
// .build()
// );
//
// return groups;
// }
//}
//?} else {
import eu.midnightdust.core.MidnightLib;
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.ModifyVariable;
import java.util.List;
@Mixin(value = SodiumGameOptionPages.class, remap = false)
@Mixin(value = MidnightLib.class)
public class MixinSodiumGameOptionPages {
@Shadow @Final private static SodiumOptionsStorage sodiumOpts;
@ModifyVariable(method = "performance", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableList;copyOf(Ljava/util/Collection;)Lcom/google/common/collect/ImmutableList;"))
private static List<OptionGroup> cullleaves$addCullLeavesOption(List<OptionGroup> groups) {
groups.add(OptionGroup.createBuilder()
.add(OptionImpl.createBuilder(boolean.class, sodiumOpts)
.setName(Component.translatable("cullleaves.midnightconfig.enabled"))
.setTooltip(Component.translatable("cullleaves.midnightconfig.enabled.tooltip"))
.setControl(TickBoxControl::new)
.setBinding((opts, value) -> {
CullLeavesConfig.enabled = value;
CullLeavesConfig.write("cullleaves");
}, opts -> CullLeavesConfig.enabled)
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
.setImpact(OptionImpact.MEDIUM)
.build()
).add(OptionImpl.createBuilder(boolean.class, sodiumOpts)
.setName(Component.translatable("cullleaves.midnightconfig.cullRoots"))
.setTooltip(Component.translatable("cullleaves.midnightconfig.cullRoots.tooltip"))
.setControl(TickBoxControl::new)
.setBinding((opts, value) -> {
CullLeavesConfig.cullRoots = value;
CullLeavesConfig.write("cullleaves");
}, opts -> CullLeavesConfig.cullRoots)
.setFlags(OptionFlag.REQUIRES_RENDERER_RELOAD)
.setImpact(OptionImpact.MEDIUM)
.build()
)
.build()
);
return groups;
}
}
//?}

View File

@@ -5,7 +5,7 @@ plugins {
id("com.github.johnrengelman.shadow") version "8.1.1" apply false
id("me.modmuss50.mod-publish-plugin") version "0.8.4" apply false
}
stonecutter active "1.21.10-fabric" /* [SC] DO NOT EDIT */
stonecutter active "1.21.11-fabric" /* [SC] DO NOT EDIT */
// See https://stonecutter.kikugie.dev/wiki/config/params
stonecutter parameters {

View File

@@ -1,5 +1,5 @@
mod.mc_dep_fabric=>=1.21.9
mod.mc_dep_forgelike=[1.21.9,)
mod.mc_dep_fabric=>=1.21.9 <=1.21.10
mod.mc_dep_forgelike=[1.21.9,1.21.10]
mod.mc_title=1.21.10
mod.mc_targets=1.21.9 1.21.10

View File

@@ -0,0 +1,40 @@
{
"schemaVersion": 1,
"id": "cullleaves",
"version": "${version}",
"name": "Cull Leaves",
"description": "Adds culling to leaf blocks, providing a huge performance boost over vanilla.",
"authors": [
"Motschen",
"TeamMidnightDust"
],
"contact": {
"homepage": "https://www.midnightdust.eu/",
"sources": "https://github.com/TeamMidnightDust/CullLeaves",
"issues": "https://github.com/TeamMidnightDust/CullLeaves/issues"
},
"license": "MIT",
"icon": "assets/cullleaves/icon.png",
"environment": "client",
"entrypoints": {
"main": [
"eu.midnightdust.cullleaves.CullLeavesClient"
]
},
"depends": {
"midnightlib": "*",
"minecraft": "${minecraft}"
},
"breaks": {
"sodium": "<0.6.0"
},
"mixins": [
"cullleaves.mixins.json",
"cullleaves-fabric.mixins.json"
]
}

View File

@@ -1,5 +1,5 @@
mod.mc_dep_fabric=>=1.21.9
mod.mc_dep_forgelike=[1.21.9,)
mod.mc_dep_fabric=>=1.21.9 <=1.21.10
mod.mc_dep_forgelike=[1.21.9,1.21.10]
mod.mc_title=1.21.10
mod.mc_targets=1.21.9 1.21.10

View File

@@ -0,0 +1,41 @@
modLoader = "javafml"
loaderVersion = "[1,)"
#issueTrackerURL = ""
license = "MIT License"
[[mods]]
modId = "cullleaves"
version = "${version}"
displayName = "CullLeaves"
authors = "Motschen, TeamMidnightDust"
description = '''
Adds culling to leaf blocks, providing a huge performance boost over vanilla.
'''
logoFile = "icon.png"
[[mixins]]
config = "cullleaves.mixins.json"
[[mixins]]
config = "cullleaves-neoforge.mixins.json"
[[dependencies.cullleaves]]
modId = "neoforge"
required = true
versionRange = "[20.3,)"
ordering = "NONE"
side = "CLIENT"
[[dependencies.cullleaves]]
modId = "minecraft"
required = true
versionRange = "${minecraft}"
ordering = "NONE"
side = "CLIENT"
[[dependencies.cullleaves]]
modId = "midnightlib"
required = true
versionRange = "[1.0.0,)"
ordering = "BEFORE"
side = "CLIENT"

View File

@@ -0,0 +1,13 @@
mod.mc_dep_fabric=>=1.21.11
mod.mc_dep_forgelike=[1.21.11,)
mod.mc_title=1.21.11
mod.mc_targets=1.21.11
deps.forge_loader=0
deps.neoforge_loader=21.11.3-beta
deps.fabric_version=0.139.4+1.21.11
deps.modmenu_version=17.0.0-alpha.1
deps.sodium_version=mc1.21.11-0.8.0
loom.platform=fabric

View File

@@ -0,0 +1,43 @@
{
"schemaVersion": 1,
"id": "cullleaves",
"version": "${version}",
"name": "Cull Leaves",
"description": "Adds culling to leaf blocks, providing a huge performance boost over vanilla.",
"authors": [
"Motschen",
"TeamMidnightDust"
],
"contact": {
"homepage": "https://www.midnightdust.eu/",
"sources": "https://github.com/TeamMidnightDust/CullLeaves",
"issues": "https://github.com/TeamMidnightDust/CullLeaves/issues"
},
"license": "MIT",
"icon": "assets/cullleaves/icon.png",
"environment": "client",
"entrypoints": {
"main": [
"eu.midnightdust.cullleaves.CullLeavesClient"
],
"sodium:config_api_user": [
"eu.midnightdust.cullleaves.config.SodiumConfigEntryPoint"
]
},
"depends": {
"midnightlib": "*",
"minecraft": "${minecraft}"
},
"breaks": {
"sodium": "<0.6.0"
},
"mixins": [
"cullleaves.mixins.json",
"cullleaves-fabric.mixins.json"
]
}

View File

@@ -0,0 +1,13 @@
mod.mc_dep_fabric=>=1.21.11
mod.mc_dep_forgelike=[1.21.11,)
mod.mc_title=1.21.11
mod.mc_targets=1.21.11
deps.forge_loader=0
deps.neoforge_loader=21.11.3-beta
deps.fabric_version=0.139.4+1.21.11
deps.modmenu_version=17.0.0-alpha.1
deps.sodium_version=mc1.21.11-0.8.0
loom.platform=neoforge

View File

@@ -0,0 +1,44 @@
modLoader = "javafml"
loaderVersion = "[1,)"
#issueTrackerURL = ""
license = "MIT License"
[[mods]]
modId = "cullleaves"
version = "${version}"
displayName = "CullLeaves"
authors = "Motschen, TeamMidnightDust"
description = '''
Adds culling to leaf blocks, providing a huge performance boost over vanilla.
'''
logoFile = "icon.png"
[[mixins]]
config = "cullleaves.mixins.json"
[[mixins]]
config = "cullleaves-neoforge.mixins.json"
[modproperties.cullleaves]
"sodium:config_api_user" = "eu.midnightdust.cullleaves.config.SodiumConfigEntryPoint"
[[dependencies.cullleaves]]
modId = "neoforge"
required = true
versionRange = "[20.3,)"
ordering = "NONE"
side = "CLIENT"
[[dependencies.cullleaves]]
modId = "minecraft"
required = true
versionRange = "${minecraft}"
ordering = "NONE"
side = "CLIENT"
[[dependencies.cullleaves]]
modId = "midnightlib"
required = true
versionRange = "[1.0.0,)"
ordering = "BEFORE"
side = "CLIENT"

View File

@@ -0,0 +1,40 @@
{
"schemaVersion": 1,
"id": "cullleaves",
"version": "${version}",
"name": "Cull Leaves",
"description": "Adds culling to leaf blocks, providing a huge performance boost over vanilla.",
"authors": [
"Motschen",
"TeamMidnightDust"
],
"contact": {
"homepage": "https://www.midnightdust.eu/",
"sources": "https://github.com/TeamMidnightDust/CullLeaves",
"issues": "https://github.com/TeamMidnightDust/CullLeaves/issues"
},
"license": "MIT",
"icon": "assets/cullleaves/icon.png",
"environment": "client",
"entrypoints": {
"main": [
"eu.midnightdust.cullleaves.CullLeavesClient"
]
},
"depends": {
"midnightlib": "*",
"minecraft": "${minecraft}"
},
"breaks": {
"sodium": "<0.6.0"
},
"mixins": [
"cullleaves.mixins.json",
"cullleaves-fabric.mixins.json"
]
}

View File

@@ -0,0 +1,41 @@
modLoader = "javafml"
loaderVersion = "[1,)"
#issueTrackerURL = ""
license = "MIT License"
[[mods]]
modId = "cullleaves"
version = "${version}"
displayName = "CullLeaves"
authors = "Motschen, TeamMidnightDust"
description = '''
Adds culling to leaf blocks, providing a huge performance boost over vanilla.
'''
logoFile = "icon.png"
[[mixins]]
config = "cullleaves.mixins.json"
[[mixins]]
config = "cullleaves-neoforge.mixins.json"
[[dependencies.cullleaves]]
modId = "neoforge"
required = true
versionRange = "[20.3,)"
ordering = "NONE"
side = "CLIENT"
[[dependencies.cullleaves]]
modId = "minecraft"
required = true
versionRange = "${minecraft}"
ordering = "NONE"
side = "CLIENT"
[[dependencies.cullleaves]]
modId = "midnightlib"
required = true
versionRange = "[1.0.0,)"
ordering = "BEFORE"
side = "CLIENT"

View File

@@ -0,0 +1,40 @@
{
"schemaVersion": 1,
"id": "cullleaves",
"version": "${version}",
"name": "Cull Leaves",
"description": "Adds culling to leaf blocks, providing a huge performance boost over vanilla.",
"authors": [
"Motschen",
"TeamMidnightDust"
],
"contact": {
"homepage": "https://www.midnightdust.eu/",
"sources": "https://github.com/TeamMidnightDust/CullLeaves",
"issues": "https://github.com/TeamMidnightDust/CullLeaves/issues"
},
"license": "MIT",
"icon": "assets/cullleaves/icon.png",
"environment": "client",
"entrypoints": {
"main": [
"eu.midnightdust.cullleaves.CullLeavesClient"
]
},
"depends": {
"midnightlib": "*",
"minecraft": "${minecraft}"
},
"breaks": {
"sodium": "<0.6.0"
},
"mixins": [
"cullleaves.mixins.json",
"cullleaves-fabric.mixins.json"
]
}

View File

@@ -0,0 +1,41 @@
modLoader = "javafml"
loaderVersion = "[1,)"
#issueTrackerURL = ""
license = "MIT License"
[[mods]]
modId = "cullleaves"
version = "${version}"
displayName = "CullLeaves"
authors = "Motschen, TeamMidnightDust"
description = '''
Adds culling to leaf blocks, providing a huge performance boost over vanilla.
'''
logoFile = "icon.png"
[[mixins]]
config = "cullleaves.mixins.json"
[[mixins]]
config = "cullleaves-neoforge.mixins.json"
[[dependencies.cullleaves]]
modId = "neoforge"
required = true
versionRange = "[20.3,)"
ordering = "NONE"
side = "CLIENT"
[[dependencies.cullleaves]]
modId = "minecraft"
required = true
versionRange = "${minecraft}"
ordering = "NONE"
side = "CLIENT"
[[dependencies.cullleaves]]
modId = "midnightlib"
required = true
versionRange = "[1.0.0,)"
ordering = "BEFORE"
side = "CLIENT"