Compare commits

...

2 Commits

Author SHA1 Message Date
Jason Penilla
68c3c6ffa2 leaf formatting 2025-01-17 19:38:58 -07:00
Jason Penilla
b5684eae6d Update for Lithium 0.14.6 compat 2025-01-17 19:38:58 -07:00
9 changed files with 66 additions and 4 deletions

View File

@@ -18,10 +18,13 @@ def aw2at = Aw2AtTask.configureDefault(
sourceSets.main sourceSets.main
) )
sourceSets.create("lithium")
neoForge { neoForge {
neoFormVersion = neoform_version neoFormVersion = neoform_version
validateAccessTransformers = true validateAccessTransformers = true
accessTransformers.files.setFrom(aw2at.flatMap { t -> t.getOutputFile() }) accessTransformers.files.setFrom(aw2at.flatMap { t -> t.getOutputFile() })
addModdingDependenciesTo sourceSets.lithium
} }
runConfigCommon { runConfigCommon {
@@ -41,6 +44,13 @@ dependencies {
// todo: does cloth publish a platform-agnostic jar in mojang mappings? // todo: does cloth publish a platform-agnostic jar in mojang mappings?
compileOnly "me.shedaniel.cloth:cloth-config-neoforge:${rootProject.cloth_version}" compileOnly "me.shedaniel.cloth:cloth-config-neoforge:${rootProject.cloth_version}"
lithiumCompileOnly("maven.modrinth:lithium:${rootProject.neo_lithium_version}")
compileOnly(sourceSets.lithium.output)
}
tasks.jar {
from(sourceSets.lithium.output)
} }
allprojects { allprojects {

View File

@@ -13,6 +13,7 @@ dependencies {
testImplementation "net.fabricmc:fabric-loader-junit:${project.loader_version}" testImplementation "net.fabricmc:fabric-loader-junit:${project.loader_version}"
runtimeOnly(project(":").sourceSets.main.output) runtimeOnly(project(":").sourceSets.main.output)
runtimeOnly(project(":").sourceSets.lithium.output)
shadow(project(":")) shadow(project(":"))
compileOnly(project(":")) compileOnly(project(":"))
@@ -85,6 +86,7 @@ loom {
main { main {
sourceSet("main") sourceSet("main")
sourceSet("main", project.rootProject) sourceSet("main", project.rootProject)
sourceSet("lithium", project.rootProject)
} }
} }
} }

View File

@@ -42,6 +42,11 @@ public final class FabricHooks extends BaseChunkSystemHooks implements PlatformH
return "Moonrise"; return "Moonrise";
} }
@Override
public boolean isModLoaded(final String modId) {
return FabricLoader.getInstance().isModLoaded(modId);
}
@Override @Override
public int getLightEmission(final BlockState blockState, final BlockGetter world, final BlockPos pos) { public int getLightEmission(final BlockState blockState, final BlockGetter world, final BlockPos pos) {
return blockState.getLightEmission(); return blockState.getLightEmission();

View File

@@ -8,9 +8,9 @@ org.gradle.configuration-cache=true
minecraft_version=1.21.4 minecraft_version=1.21.4
loader_version=0.16.9 loader_version=0.16.9
supported_minecraft_versions=1.21.4 supported_minecraft_versions=1.21.4
neoforge_version=21.4.33-beta neoforge_version=21.4.59-beta
neoform_version=1.21.4-20241203.161809 neoform_version=1.21.4-20241203.161809
fabric_api_version=0.110.5+1.21.4 fabric_api_version=0.114.3+1.21.4
snakeyaml_version=2.3 snakeyaml_version=2.3
concurrentutil_version=0.0.3 concurrentutil_version=0.0.3
yamlconfig_version=1.0.2 yamlconfig_version=1.0.2
@@ -18,8 +18,8 @@ cloth_version=17.0.144
modmenu_version=13.0.0-beta.1 modmenu_version=13.0.0-beta.1
junit_version=5.11.3 junit_version=5.11.3
# version ids from modrinth # version ids from modrinth
fabric_lithium_version=t1FlWYl9 fabric_lithium_version=zVOQw7YU
neo_lithium_version=iDqQi66g neo_lithium_version=CfXh2ZF6
# Mod Properties # Mod Properties
mod_version=0.2.0-SNAPSHOT mod_version=0.2.0-SNAPSHOT
maven_group=ca.spottedleaf.moonrise maven_group=ca.spottedleaf.moonrise

View File

@@ -28,6 +28,7 @@ neoForge {
moonrise { moonrise {
sourceSet sourceSets.main sourceSet sourceSets.main
sourceSet rootProject.sourceSets.main sourceSet rootProject.sourceSets.main
sourceSet rootProject.sourceSets.lithium
} }
} }
runs { runs {
@@ -46,6 +47,7 @@ neoForge {
dependencies { dependencies {
runtimeOnly(project(":").sourceSets.main.output) runtimeOnly(project(":").sourceSets.main.output)
runtimeOnly(project(":").sourceSets.lithium.output)
shadow(project(":")) shadow(project(":"))
compileOnly(project(":")) compileOnly(project(":"))

View File

@@ -28,6 +28,8 @@ import net.minecraft.world.level.chunk.status.ChunkStatusTasks;
import net.minecraft.world.level.chunk.storage.SerializableChunkData; import net.minecraft.world.level.chunk.storage.SerializableChunkData;
import net.minecraft.world.level.entity.EntityTypeTest; import net.minecraft.world.level.entity.EntityTypeTest;
import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.AABB;
import net.neoforged.fml.ModList;
import net.neoforged.fml.loading.LoadingModList;
import net.neoforged.neoforge.common.CommonHooks; import net.neoforged.neoforge.common.CommonHooks;
import net.neoforged.neoforge.common.NeoForge; import net.neoforged.neoforge.common.NeoForge;
import net.neoforged.neoforge.entity.PartEntity; import net.neoforged.neoforge.entity.PartEntity;
@@ -46,6 +48,15 @@ public final class NeoForgeHooks extends BaseChunkSystemHooks implements Platfor
return "Moonrise"; return "Moonrise";
} }
@Override
public boolean isModLoaded(final String modId) {
final ModList modList = ModList.get();
if (modList == null) {
return LoadingModList.get().getModFileById(modId) != null;
}
return modList.isLoaded(modId);
}
@Override @Override
public int getLightEmission(final BlockState blockState, final BlockGetter world, final BlockPos pos) { public int getLightEmission(final BlockState blockState, final BlockGetter world, final BlockPos pos) {
return blockState.getLightEmission(world, pos); return blockState.getLightEmission(world, pos);

View File

@@ -0,0 +1,18 @@
package ca.spottledleaf.moonrise.compat.lithium;
import net.caffeinemc.mods.lithium.common.world.chunk.ChunkStatusTracker;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.level.ChunkPos;
import net.minecraft.world.level.chunk.LevelChunk;
public final class LithiumHooks {
private LithiumHooks() {}
public static void onChunkInaccessible(final ServerLevel serverLevel, final ChunkPos pos) {
ChunkStatusTracker.onChunkInaccessible(serverLevel, pos);
}
public static void onChunkAccessible(final ServerLevel serverLevel, final LevelChunk chunk) {
ChunkStatusTracker.onChunkAccessible(serverLevel, chunk);
}
}

View File

@@ -31,6 +31,10 @@ public interface PlatformHooks extends ChunkSystemHooks {
public String getBrand(); public String getBrand();
public default boolean isModLoaded(final String modId) {
return false;
}
public int getLightEmission(final BlockState blockState, final BlockGetter world, final BlockPos pos); public int getLightEmission(final BlockState blockState, final BlockGetter world, final BlockPos pos);
public Predicate<BlockState> maybeHasLightEmission(); public Predicate<BlockState> maybeHasLightEmission();

View File

@@ -1,11 +1,13 @@
package ca.spottedleaf.moonrise.common.util; package ca.spottedleaf.moonrise.common.util;
import ca.spottedleaf.concurrentutil.util.Priority; import ca.spottedleaf.concurrentutil.util.Priority;
import ca.spottedleaf.moonrise.common.PlatformHooks;
import ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel; import ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel;
import ca.spottedleaf.moonrise.patches.chunk_system.level.chunk.ChunkSystemLevelChunk; import ca.spottedleaf.moonrise.patches.chunk_system.level.chunk.ChunkSystemLevelChunk;
import ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader; import ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader;
import ca.spottedleaf.moonrise.patches.chunk_system.world.ChunkSystemServerChunkCache; import ca.spottedleaf.moonrise.patches.chunk_system.world.ChunkSystemServerChunkCache;
import ca.spottedleaf.moonrise.patches.chunk_tick_iteration.ChunkTickServerLevel; import ca.spottedleaf.moonrise.patches.chunk_tick_iteration.ChunkTickServerLevel;
import ca.spottledleaf.moonrise.compat.lithium.LithiumHooks;
import net.minecraft.server.level.ChunkHolder; import net.minecraft.server.level.ChunkHolder;
import net.minecraft.server.level.FullChunkStatus; import net.minecraft.server.level.FullChunkStatus;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
@@ -19,6 +21,8 @@ import java.util.function.Consumer;
public abstract class BaseChunkSystemHooks implements ChunkSystemHooks { public abstract class BaseChunkSystemHooks implements ChunkSystemHooks {
private final boolean hasLithium = ((PlatformHooks)this).isModLoaded("lithium");
@Override @Override
public void scheduleChunkTask(final ServerLevel level, final int chunkX, final int chunkZ, final Runnable run) { public void scheduleChunkTask(final ServerLevel level, final int chunkX, final int chunkZ, final Runnable run) {
scheduleChunkTask(level, chunkX, chunkZ, run, Priority.NORMAL); scheduleChunkTask(level, chunkX, chunkZ, run, Priority.NORMAL);
@@ -101,6 +105,9 @@ public abstract class BaseChunkSystemHooks implements ChunkSystemHooks {
((ChunkSystemServerLevel)((ServerLevel)chunk.getLevel())).moonrise$getLoadedChunks().add( ((ChunkSystemServerLevel)((ServerLevel)chunk.getLevel())).moonrise$getLoadedChunks().add(
((ChunkSystemLevelChunk)chunk).moonrise$getChunkAndHolder() ((ChunkSystemLevelChunk)chunk).moonrise$getChunkAndHolder()
); );
if (this.hasLithium) {
LithiumHooks.onChunkAccessible((ServerLevel) chunk.getLevel(), chunk);
}
} }
@Override @Override
@@ -108,6 +115,9 @@ public abstract class BaseChunkSystemHooks implements ChunkSystemHooks {
((ChunkSystemServerLevel)((ServerLevel)chunk.getLevel())).moonrise$getLoadedChunks().remove( ((ChunkSystemServerLevel)((ServerLevel)chunk.getLevel())).moonrise$getLoadedChunks().remove(
((ChunkSystemLevelChunk)chunk).moonrise$getChunkAndHolder() ((ChunkSystemLevelChunk)chunk).moonrise$getChunkAndHolder()
); );
if (this.hasLithium) {
LithiumHooks.onChunkInaccessible((ServerLevel) chunk.getLevel(), chunk.getPos());
}
} }
@Override @Override