diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/DependencySetup.java b/common/src/main/java/com/seibel/lod/common/wrappers/DependencySetup.java index bb505cfd2..16957a54c 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/DependencySetup.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/DependencySetup.java @@ -22,15 +22,19 @@ import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftWrapper; * @version 12-1-2021 */ public class DependencySetup { - public static void createInitialBindings() { + public static void createInitialBindings() + { SingletonHandler.bind(IVersionConstants.class, VersionConstants.INSTANCE); - if (!LodCommonMain.serverSided) { + + if (!LodCommonMain.serverSided) + { SingletonHandler.bind(IMinecraftWrapper.class, MinecraftWrapper.INSTANCE); SingletonHandler.bind(IMinecraftRenderWrapper.class, MinecraftRenderWrapper.INSTANCE); SingletonHandler.bind(IReflectionHandler.class, ReflectionHandler.createSingleton(MinecraftWrapper.INSTANCE.getOptions().getClass().getDeclaredFields(), MinecraftWrapper.INSTANCE.getOptions())); } SingletonHandler.bind(IWrapperFactory.class, WrapperFactory.INSTANCE); + DependencySetupDoneCheck.isDone = true; } } diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkWrapper.java index ca80de825..cf9920e69 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/chunk/ChunkWrapper.java @@ -28,13 +28,21 @@ import net.minecraft.world.level.levelgen.Heightmap; /** * * @author James Seibel - * @version 11-21-2021 + * @version 3-5-2022 */ public class ChunkWrapper implements IChunkWrapper { private final ChunkAccess chunk; private final LevelReader lightSource; + + public ChunkWrapper(ChunkAccess chunk, LevelReader lightSource) + { + this.chunk = chunk; + this.lightSource = lightSource; + } + + @Override public int getHeight(){ return chunk.getHeight(); @@ -69,12 +77,7 @@ public class ChunkWrapper implements IChunkWrapper BlockState blockState = chunk.getBlockState(new BlockPos(x,y,z)); return BlockDetailMap.getBlockDetailWithCompleteTint(blockState, x, y, z, lightSource); } - - public ChunkWrapper(ChunkAccess chunk, LevelReader lightSource) - { - this.chunk = chunk; - this.lightSource = lightSource; - } + public ChunkAccess getChunk() { return chunk; diff --git a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java index eb89244d7..7c7cf3539 100644 --- a/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java +++ b/common/src/main/java/com/seibel/lod/common/wrappers/minecraft/MinecraftRenderWrapper.java @@ -58,8 +58,9 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper private static final Minecraft MC = Minecraft.getInstance(); private static final GameRenderer GAME_RENDERER = MC.gameRenderer; - private static final WrapperFactory FACTORY = WrapperFactory.INSTANCE; + private static final IWrapperFactory FACTORY = WrapperFactory.INSTANCE; + @Override public Vec3f getLookAtVector() { diff --git a/core b/core index d84d53589..58392a8ac 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit d84d535896a911340cc661e349a7f813ce0b0c9b +Subproject commit 58392a8ac13837f67ca3d10ff25e3f6aa949a703 diff --git a/fabric/src/main/java/com/seibel/lod/fabric/Main.java b/fabric/src/main/java/com/seibel/lod/fabric/Main.java index 346132e7a..16cddd4b7 100644 --- a/fabric/src/main/java/com/seibel/lod/fabric/Main.java +++ b/fabric/src/main/java/com/seibel/lod/fabric/Main.java @@ -34,7 +34,7 @@ import com.seibel.lod.fabric.wrappers.modAccessor.ModChecker; import com.seibel.lod.fabric.wrappers.modAccessor.OptifineAccessor; import com.seibel.lod.fabric.wrappers.modAccessor.SodiumAccessor; import com.seibel.lod.fabric.wrappers.modAccessor.StarlightAccessor; -import com.seibel.lod.fabric.wrappers.DependencySetup; +import com.seibel.lod.fabric.wrappers.FabricDependencySetup; import net.fabricmc.api.ClientModInitializer; @@ -66,8 +66,8 @@ public class Main implements ClientModInitializer public static void init() { LodCommonMain.initConfig(); LodCommonMain.startup(null, false, new NetworkHandler()); - DependencySetup.createInitialBindings(); - SingletonHandler.bind(IModChecker.class, ModChecker.INSTANCE); + FabricDependencySetup.createInitialBindings(); + FabricDependencySetup.finishBinding(); ApiShared.LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION); // Check if this works @@ -82,12 +82,15 @@ public class Main implements ClientModInitializer if (SingletonHandler.get(IModChecker.class).isModLoaded("optifine")) { ModAccessorHandler.bind(IOptifineAccessor.class, new OptifineAccessor()); } + + ModAccessorHandler.finishBinding(); } public static void initServer() { LodCommonMain.initConfig(); LodCommonMain.startup(null, true, new NetworkHandler()); - DependencySetup.createInitialBindings(); + FabricDependencySetup.createInitialBindings(); + FabricDependencySetup.finishBinding(); ApiShared.LOGGER.info(ModInfo.READABLE_NAME + ", Version: " + ModInfo.VERSION); } } diff --git a/fabric/src/main/java/com/seibel/lod/fabric/wrappers/DependencySetup.java b/fabric/src/main/java/com/seibel/lod/fabric/wrappers/FabricDependencySetup.java similarity index 60% rename from fabric/src/main/java/com/seibel/lod/fabric/wrappers/DependencySetup.java rename to fabric/src/main/java/com/seibel/lod/fabric/wrappers/FabricDependencySetup.java index d9486d44f..11ed7342e 100644 --- a/fabric/src/main/java/com/seibel/lod/fabric/wrappers/DependencySetup.java +++ b/fabric/src/main/java/com/seibel/lod/fabric/wrappers/FabricDependencySetup.java @@ -1,24 +1,31 @@ package com.seibel.lod.fabric.wrappers; -import com.seibel.lod.common.LodCommonMain; import com.seibel.lod.core.handlers.dependencyInjection.SingletonHandler; import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.modAccessor.IModChecker; +import com.seibel.lod.fabric.wrappers.modAccessor.ModChecker; import com.seibel.lod.common.wrappers.config.LodConfigWrapperSingleton; /** - * Binds all necessary dependencies, so we + * Binds all necessary dependencies so we * can access them in Core.
* This needs to be called before any Core classes * are loaded. * * @author James Seibel * @author Ran - * @version 12-1-2021 + * @version 3-5-2022 */ -public class DependencySetup +public class FabricDependencySetup { public static void createInitialBindings() { + SingletonHandler.bind(IModChecker.class, ModChecker.INSTANCE); SingletonHandler.bind(ILodConfigWrapperSingleton.class, LodConfigWrapperSingleton.INSTANCE); } + + public static void finishBinding() + { + SingletonHandler.finishBinding(); + } } diff --git a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java index 652a89e20..887983153 100644 --- a/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java +++ b/forge/src/main/java/com/seibel/lod/forge/ForgeMain.java @@ -27,13 +27,10 @@ import com.seibel.lod.core.ModInfo; import com.seibel.lod.core.api.ApiShared; import com.seibel.lod.core.handlers.ReflectionHandler; import com.seibel.lod.core.handlers.dependencyInjection.ModAccessorHandler; -import com.seibel.lod.core.handlers.dependencyInjection.SingletonHandler; -import com.seibel.lod.core.wrapperInterfaces.modAccessor.IModChecker; import com.seibel.lod.core.wrapperInterfaces.modAccessor.IOptifineAccessor; import com.seibel.lod.forge.networking.NetworkHandler; import com.seibel.lod.forge.wrappers.ForgeDependencySetup; -import com.seibel.lod.forge.wrappers.modAccessor.ModChecker; import com.seibel.lod.forge.wrappers.modAccessor.OptifineAccessor; import net.minecraft.client.renderer.block.model.BakedQuad; @@ -72,8 +69,8 @@ public class ForgeMain implements LodForgeMethodCaller LodCommonMain.initConfig(); LodCommonMain.startup(this, !FMLLoader.getDist().isClient(), new NetworkHandler()); ForgeDependencySetup.createInitialBindings(); + ForgeDependencySetup.finishBinding(); ApiShared.LOGGER.info("Distant Horizons initializing..."); - SingletonHandler.bind(IModChecker.class, ModChecker.INSTANCE); } public ForgeMain() @@ -88,6 +85,9 @@ public class ForgeMain implements LodForgeMethodCaller if (ReflectionHandler.instance.optifinePresent()) { ModAccessorHandler.bind(IOptifineAccessor.class, new OptifineAccessor()); } + + ModAccessorHandler.finishBinding(); + ModLoadingContext.get().registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class, () -> new ConfigGuiHandler.ConfigGuiFactory((client, parent) -> ConfigGui.getScreen(parent, ""))); diff --git a/forge/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java b/forge/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java index 53c8b6794..aba936f72 100644 --- a/forge/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java +++ b/forge/src/main/java/com/seibel/lod/forge/wrappers/ForgeDependencySetup.java @@ -1,9 +1,10 @@ package com.seibel.lod.forge.wrappers; -import com.seibel.lod.common.LodCommonMain; import com.seibel.lod.common.wrappers.config.LodConfigWrapperSingleton; import com.seibel.lod.core.handlers.dependencyInjection.SingletonHandler; import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; +import com.seibel.lod.core.wrapperInterfaces.modAccessor.IModChecker; +import com.seibel.lod.forge.wrappers.modAccessor.ModChecker; /** * Binds all necessary dependencies so we @@ -13,12 +14,18 @@ import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton; * * @author James Seibel * @author Ran - * @version 12-1-2021 + * @version 3-5-2022 */ public class ForgeDependencySetup { public static void createInitialBindings() { + SingletonHandler.bind(IModChecker.class, ModChecker.INSTANCE); SingletonHandler.bind(ILodConfigWrapperSingleton.class, LodConfigWrapperSingleton.INSTANCE); } + + public static void finishBinding() + { + SingletonHandler.finishBinding(); + } }