Did the bear minimum to make forge "work" so we can do testing on the new build system

This commit is contained in:
coolGi
2023-02-13 18:10:27 +10:30
parent bc5861ea95
commit 4442fda70a
7 changed files with 68 additions and 51 deletions
+4 -4
View File
@@ -2,12 +2,12 @@
java_version = 17
minecraft_version=1.18.2
parchment_version=2022.03.13
parchment_version=2022.11.06
compatible_minecraft_versions=["1.18.2"]
# Fabric loader
fabric_loader_version=0.13.3
fabric_api_version=0.48.0+1.18.2
fabric_loader_version=0.14.14
fabric_api_version=0.67.1+1.18.2
architectury_version=4.4.59
# Fabric mod versions
modmenu_version=3.1.0
@@ -33,7 +33,7 @@ architectury_version=4.4.59
enable_canvas=0
# Forge loader
forge_version=40.0.18
forge_version=40.2.1
# Forge mod versions
starlight_version_forge=
terraforged_version=
+10 -8
View File
@@ -1,7 +1,7 @@
plugins {
// Plugin to help in developing multi-loader mods
id "architectury-plugin" version "3.4-SNAPSHOT"
id "dev.architectury.loom" version "0.12.0-SNAPSHOT" apply false
id "dev.architectury.loom" version "1.0-SNAPSHOT" apply false
// Plugin to handle dependencies
id 'com.github.johnrengelman.shadow' version '7.0.0' apply false
@@ -195,7 +195,7 @@ subprojects { p ->
implementation("org.junit.jupiter:junit-jupiter:5.8.2")
implementation("org.junit.jupiter:junit-jupiter-engine:5.8.2")
implementation("junit:junit:4.13")
// Compression
shadowMe("org.tukaani:xz:1.9")
shadowMe("org.apache.commons:commons-compress:1.21")
@@ -204,13 +204,15 @@ subprojects { p ->
shadowMe("com.electronwill.night-config:toml:${rootProject.nightconfig_version}")
shadowMe("com.electronwill.night-config:json:${rootProject.nightconfig_version}")
// Theming
shadowMe("com.formdev:flatlaf:${rootProject.flatlaf_version}")
if (p == project(":core")) {
// Theming
shadowMe("com.formdev:flatlaf:${rootProject.flatlaf_version}")
// SVG
shadowMe("com.formdev:flatlaf-extras:${rootProject.flatlaf_version}")
shadowMe("com.formdev:svgSalamander:${rootProject.svgSalamander_version}")
}
// SVG
shadowMe("com.formdev:flatlaf-extras:${rootProject.flatlaf_version}")
shadowMe("com.formdev:svgSalamander:${rootProject.svgSalamander_version}")
//==========================//
@@ -40,7 +40,9 @@ import net.minecraft.world.level.chunk.ChunkAccess;
import net.minecraft.world.level.chunk.ChunkStatus;
import net.minecraft.world.level.levelgen.Heightmap;
import javax.annotation.Nullable;
// Which nullable should be used???
import org.jetbrains.annotations.Nullable;
//import javax.annotation.Nullable;
/**
*
+4 -1
View File
@@ -51,12 +51,15 @@ dependencies {
// Starlight
addMod("curse.maven:starlight-forge-526854:${rootProject.starlight_version_forge}", rootProject.enable_starlight_forge)
annotationProcessor "org.spongepowered:mixin:0.8.4:processor"
// annotationProcessor "org.spongepowered:mixin:0.8.4:processor"
addMod("curse.maven:TerraForged-363820:${rootProject.terraforged_version}", rootProject.enable_terraforged)
common(project(path: ":common", configuration: "namedElements")) { transitive false }
shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive false }
// shadowMe files(project(":common").file("build/libs/DistantHorizons-${rootProject.mod_version}-transformProductionFabric.jar"))
shadowMe files(project(":core").file("build/libs/DistantHorizons-${rootProject.mod_version}.jar"))
shadowMe files(project(":api").file("build/libs/DistantHorizons-API-${rootProject.mod_version}.jar"))
}
processResources {
@@ -29,9 +29,13 @@ import com.seibel.lod.common.wrappers.minecraft.MinecraftClientWrapper;
import com.seibel.lod.core.DependencyInjection.ApiEventInjector;
import com.seibel.lod.core.ModInfo;
import com.seibel.lod.core.ReflectionHandler;
import com.seibel.lod.core.config.Config;
import com.seibel.lod.core.dependencyInjection.ModAccessorInjector;
import com.seibel.lod.core.dependencyInjection.SingletonInjector;
import com.seibel.lod.core.logging.DhLoggerBuilder;
import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper;
import com.seibel.lod.core.wrapperInterfaces.modAccessor.IBCLibAccessor;
import com.seibel.lod.core.wrapperInterfaces.modAccessor.IModChecker;
import com.seibel.lod.core.wrapperInterfaces.modAccessor.IOptifineAccessor;
import com.seibel.lod.forge.wrappers.ForgeDependencySetup;
@@ -84,6 +88,10 @@ public class ForgeMain implements LodForgeMethodCaller
public ForgeMain()
{
DependencySetup.createClientBindings();
// initDedicated(null);
// initDedicated(null);
// Register the mod initializer (Actual event registration is done in the different proxies)
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::initClient);
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::initDedicated);
@@ -91,36 +99,18 @@ public class ForgeMain implements LodForgeMethodCaller
private void initClient(final FMLClientSetupEvent event)
{
DependencySetup.createClientBindings();
initCommon();
ApiEventInjector.INSTANCE.fireAllEvents(DhApiBeforeDhInitEvent.class, null);
LOGGER.info("Initializing Mod");
LodCommonMain.startup(this);
ForgeDependencySetup.createInitialBindings();
LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION);
client_proxy = new ForgeClientProxy();
MinecraftForge.EVENT_BUS.register(client_proxy);
server_proxy = new ForgeServerProxy(false);
MinecraftForge.EVENT_BUS.register(server_proxy);
postInitCommon();
}
private void initDedicated(final FMLDedicatedServerSetupEvent event)
{
DependencySetup.createServerBindings();
initCommon();
server_proxy = new ForgeServerProxy(true);
MinecraftForge.EVENT_BUS.register(server_proxy);
postInitCommon();
}
private void initCommon()
{
ApiEventInjector.INSTANCE.fireAllEvents(DhApiBeforeDhInitEvent.class, null);
LodCommonMain.startup(this);
ForgeDependencySetup.createInitialBindings();
LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION);
if (ReflectionHandler.INSTANCE.optifinePresent()) {
ModAccessorInjector.INSTANCE.bind(IOptifineAccessor.class, new OptifineAccessor());
}
@@ -131,16 +121,33 @@ public class ForgeMain implements LodForgeMethodCaller
ModLoadingContext.get().registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class,
() -> new ConfigGuiHandler.ConfigGuiFactory((client, parent) -> GetConfigScreen.getScreen(parent)));
#endif
LOGGER.info(ModInfo.READABLE_NAME + " Initialized");
ApiEventInjector.INSTANCE.fireAllEvents(DhApiAfterDhInitEvent.class, null);
// Init config
// The reason im initialising in this rather than the post init process is cus im using this for the auto updater
LodCommonMain.initConfig();
}
private void initDedicated(final FMLDedicatedServerSetupEvent event)
{
// DependencySetup.createServerBindings();
// initCommon();
// server_proxy = new ForgeServerProxy(true);
// MinecraftForge.EVENT_BUS.register(server_proxy);
//
postInitCommon();
}
private void postInitCommon()
{
LOGGER.info("Post-Initializing Mod");
SingletonInjector.INSTANCE.runDelayedSetup();
LodCommonMain.initConfig();
ForgeDependencySetup.runDelayedSetup();
LOGGER.info("Mod Post-Initialized");
ApiEventInjector.INSTANCE.fireAllEvents(DhApiAfterDhInitEvent.class, null);
}
private final ModelDataMap dataMap = new ModelDataMap.Builder().build();
@@ -40,4 +40,7 @@ public class ForgeDependencySetup
SingletonInjector.INSTANCE.bind(IModChecker.class, ModChecker.INSTANCE);
}
public static void runDelayedSetup() {
SingletonInjector.INSTANCE.runDelayedSetup();
}
}
@@ -3,18 +3,18 @@
"minVersion": "0.8",
"package": "com.seibel.lod.forge.mixins",
"mixins": [
"com.seibel.lod.forge.mixins.server.unsafe.MixinThreadingDetector",
"com.seibel.lod.forge.mixins.server.MixinUtilBackgroundThread",
"com.seibel.lod.forge.mixins.server.MixinChunkGenerator",
"server.unsafe.MixinThreadingDetector",
"server.MixinUtilBackgroundThread",
"server.MixinChunkGenerator",
"server.MixinTFChunkGenerator"
],
"client": [
"com.seibel.lod.forge.mixins.client.MixinDebugScreenOverlay",
"com.seibel.lod.forge.mixins.client.MixinFogRenderer",
"com.seibel.lod.forge.mixins.client.MixinGameRenderer",
"com.seibel.lod.forge.mixins.client.MixinLevelRenderer",
"com.seibel.lod.forge.mixins.client.MixinLightmap",
"com.seibel.lod.forge.mixins.client.MixinOptionsScreen"
"client.MixinDebugScreenOverlay",
"client.MixinFogRenderer",
"client.MixinGameRenderer",
"client.MixinLevelRenderer",
"client.MixinLightmap",
"client.MixinOptionsScreen"
],
"server": [],
"plugin": "com.seibel.lod.forge.mixins.ForgeMixinPlugin"