Compare commits
2 Commits
v0.2.0-bet
...
lithium-0.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
68c3c6ffa2 | ||
|
|
b5684eae6d |
10
build.gradle
10
build.gradle
@@ -18,10 +18,13 @@ def aw2at = Aw2AtTask.configureDefault(
|
||||
sourceSets.main
|
||||
)
|
||||
|
||||
sourceSets.create("lithium")
|
||||
|
||||
neoForge {
|
||||
neoFormVersion = neoform_version
|
||||
validateAccessTransformers = true
|
||||
accessTransformers.files.setFrom(aw2at.flatMap { t -> t.getOutputFile() })
|
||||
addModdingDependenciesTo sourceSets.lithium
|
||||
}
|
||||
|
||||
runConfigCommon {
|
||||
@@ -41,6 +44,13 @@ dependencies {
|
||||
|
||||
// todo: does cloth publish a platform-agnostic jar in mojang mappings?
|
||||
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 {
|
||||
|
||||
@@ -13,6 +13,7 @@ dependencies {
|
||||
testImplementation "net.fabricmc:fabric-loader-junit:${project.loader_version}"
|
||||
|
||||
runtimeOnly(project(":").sourceSets.main.output)
|
||||
runtimeOnly(project(":").sourceSets.lithium.output)
|
||||
shadow(project(":"))
|
||||
compileOnly(project(":"))
|
||||
|
||||
@@ -85,6 +86,7 @@ loom {
|
||||
main {
|
||||
sourceSet("main")
|
||||
sourceSet("main", project.rootProject)
|
||||
sourceSet("lithium", project.rootProject)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,6 +42,11 @@ public final class FabricHooks extends BaseChunkSystemHooks implements PlatformH
|
||||
return "Moonrise";
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isModLoaded(final String modId) {
|
||||
return FabricLoader.getInstance().isModLoaded(modId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightEmission(final BlockState blockState, final BlockGetter world, final BlockPos pos) {
|
||||
return blockState.getLightEmission();
|
||||
|
||||
@@ -8,9 +8,9 @@ org.gradle.configuration-cache=true
|
||||
minecraft_version=1.21.4
|
||||
loader_version=0.16.9
|
||||
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
|
||||
fabric_api_version=0.110.5+1.21.4
|
||||
fabric_api_version=0.114.3+1.21.4
|
||||
snakeyaml_version=2.3
|
||||
concurrentutil_version=0.0.3
|
||||
yamlconfig_version=1.0.2
|
||||
@@ -18,8 +18,8 @@ cloth_version=17.0.144
|
||||
modmenu_version=13.0.0-beta.1
|
||||
junit_version=5.11.3
|
||||
# version ids from modrinth
|
||||
fabric_lithium_version=t1FlWYl9
|
||||
neo_lithium_version=iDqQi66g
|
||||
fabric_lithium_version=zVOQw7YU
|
||||
neo_lithium_version=CfXh2ZF6
|
||||
# Mod Properties
|
||||
mod_version=0.2.0-SNAPSHOT
|
||||
maven_group=ca.spottedleaf.moonrise
|
||||
|
||||
@@ -28,6 +28,7 @@ neoForge {
|
||||
moonrise {
|
||||
sourceSet sourceSets.main
|
||||
sourceSet rootProject.sourceSets.main
|
||||
sourceSet rootProject.sourceSets.lithium
|
||||
}
|
||||
}
|
||||
runs {
|
||||
@@ -46,6 +47,7 @@ neoForge {
|
||||
|
||||
dependencies {
|
||||
runtimeOnly(project(":").sourceSets.main.output)
|
||||
runtimeOnly(project(":").sourceSets.lithium.output)
|
||||
shadow(project(":"))
|
||||
compileOnly(project(":"))
|
||||
|
||||
|
||||
@@ -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.entity.EntityTypeTest;
|
||||
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.NeoForge;
|
||||
import net.neoforged.neoforge.entity.PartEntity;
|
||||
@@ -46,6 +48,15 @@ public final class NeoForgeHooks extends BaseChunkSystemHooks implements Platfor
|
||||
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
|
||||
public int getLightEmission(final BlockState blockState, final BlockGetter world, final BlockPos pos) {
|
||||
return blockState.getLightEmission(world, pos);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -31,6 +31,10 @@ public interface PlatformHooks extends ChunkSystemHooks {
|
||||
|
||||
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 Predicate<BlockState> maybeHasLightEmission();
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package ca.spottedleaf.moonrise.common.util;
|
||||
|
||||
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.chunk.ChunkSystemLevelChunk;
|
||||
import ca.spottedleaf.moonrise.patches.chunk_system.player.RegionizedPlayerChunkLoader;
|
||||
import ca.spottedleaf.moonrise.patches.chunk_system.world.ChunkSystemServerChunkCache;
|
||||
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.FullChunkStatus;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
@@ -19,6 +21,8 @@ import java.util.function.Consumer;
|
||||
|
||||
public abstract class BaseChunkSystemHooks implements ChunkSystemHooks {
|
||||
|
||||
private final boolean hasLithium = ((PlatformHooks)this).isModLoaded("lithium");
|
||||
|
||||
@Override
|
||||
public void scheduleChunkTask(final ServerLevel level, final int chunkX, final int chunkZ, final Runnable run) {
|
||||
scheduleChunkTask(level, chunkX, chunkZ, run, Priority.NORMAL);
|
||||
@@ -101,6 +105,9 @@ public abstract class BaseChunkSystemHooks implements ChunkSystemHooks {
|
||||
((ChunkSystemServerLevel)((ServerLevel)chunk.getLevel())).moonrise$getLoadedChunks().add(
|
||||
((ChunkSystemLevelChunk)chunk).moonrise$getChunkAndHolder()
|
||||
);
|
||||
if (this.hasLithium) {
|
||||
LithiumHooks.onChunkAccessible((ServerLevel) chunk.getLevel(), chunk);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -108,6 +115,9 @@ public abstract class BaseChunkSystemHooks implements ChunkSystemHooks {
|
||||
((ChunkSystemServerLevel)((ServerLevel)chunk.getLevel())).moonrise$getLoadedChunks().remove(
|
||||
((ChunkSystemLevelChunk)chunk).moonrise$getChunkAndHolder()
|
||||
);
|
||||
if (this.hasLithium) {
|
||||
LithiumHooks.onChunkInaccessible((ServerLevel) chunk.getLevel(), chunk.getPos());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user