Multiloader V

fabric is working
This commit is contained in:
techno-sam
2026-04-16 10:49:24 +02:00
parent b4355e8fd8
commit d4b8894a3b
53 changed files with 983 additions and 169 deletions
@@ -0,0 +1,20 @@
package io.github.slimeistdev.crystalline_sky.compat.neoforge;
import io.github.slimeistdev.crystalline_sky.annotation.multiloader.ImplClass;
import net.neoforged.fml.loading.LoadingModList;
import net.neoforged.fml.loading.moddiscovery.ModInfo;
import java.util.List;
@ImplClass
public class ModsImpl {
public static boolean isModLoaded(String id) {
List<ModInfo> mods = LoadingModList.get().getMods();
for (ModInfo mod : mods) {
if (mod.getModId().equals(id)) {
return true;
}
}
return false;
}
}
@@ -0,0 +1,6 @@
package io.github.slimeistdev.crystalline_sky.multiloader.neoforge;
public class ItemGroupRegistrationEventImpl {
public static void create() {
}
}
@@ -0,0 +1,13 @@
package io.github.slimeistdev.crystalline_sky.multiloader.neoforge;
import io.github.slimeistdev.crystalline_sky.annotation.multiloader.ImplClass;
import io.github.slimeistdev.crystalline_sky.multiloader.Loader;
import org.jetbrains.annotations.ApiStatus.Internal;
@ImplClass
public class LoaderImpl {
@Internal
public static Loader getCurrent() {
return Loader.NEOFORGE;
}
}
@@ -5,12 +5,15 @@ import io.github.slimeistdev.crystalline_sky.CrystallineSkyClient;
import io.github.slimeistdev.crystalline_sky.registry.client.CrystallineRenderTypes;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.CreativeModeTabs;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.bus.api.SubscribeEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.neoforge.client.event.ClientTickEvent;
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
import net.neoforged.neoforge.client.event.RegisterNamedRenderTypesEvent;
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
@EventBusSubscriber(value = Dist.CLIENT, modid = CrystallineSky.ID)
public class CrystallineSkyClientImpl {
@@ -33,4 +36,9 @@ public class CrystallineSkyClientImpl {
public static void onEndTick(ClientTickEvent.Post event) {
CrystallineSkyClient.onEndTick(Minecraft.getInstance());
}
@SubscribeEvent
public static void buildCreativeModeTabContents(BuildCreativeModeTabContentsEvent event) {
event.insertAfter();
}
}
@@ -2,11 +2,16 @@ package io.github.slimeistdev.crystalline_sky.neoforge;
import io.github.slimeistdev.crystalline_sky.CrystallineSky;
import io.github.slimeistdev.crystalline_sky.multiloader.Env;
import net.neoforged.bus.api.IEventBus;
import net.neoforged.fml.common.Mod;
@Mod(CrystallineSky.ID)
public class CrystallineSkyImpl {
public CrystallineSkyImpl() {
static IEventBus bus;
public CrystallineSkyImpl(IEventBus bus) {
CrystallineSkyImpl.bus = bus;
CrystallineSky.init();
//noinspection Convert2MethodRef
Env.CLIENT.runIfCurrent(() -> () -> CrystallineSkyClientImpl.init());