Fixed issue #390 (problems with BCLib fog)

This commit is contained in:
coolGi
2022-09-02 15:14:03 +09:30
parent 6e419b3120
commit 0c031588aa
5 changed files with 45 additions and 8 deletions
+2 -2
View File
@@ -17,7 +17,7 @@ architectury_version=4.4.59
sodium_version=mc1.18.2-0.4.1
iris_version=1.18.x-v1.2.5
immersive_portals_version = v1.0.4-1.18
bclib_version=
bclib_version=1.4.5
# Fabric mod run
# 0 = Don't enable and don't run
@@ -28,7 +28,7 @@ architectury_version=4.4.59
enable_sodium=1
enable_lithium=0
enable_iris=0
enable_bclib=0
enable_bclib=1
# Forge loader
forge_version=40.0.18
@@ -28,6 +28,7 @@ import java.util.stream.Collectors;
import com.mojang.blaze3d.pipeline.RenderTarget;
import com.mojang.blaze3d.platform.NativeImage;
import com.mojang.blaze3d.systems.RenderSystem;
import com.seibel.lod.core.handlers.dependencyInjection.SingletonInjector;
import com.seibel.lod.core.objects.DHChunkPos;
import com.seibel.lod.common.wrappers.misc.LightMapWrapper;
import com.seibel.lod.core.handlers.dependencyInjection.ModAccessorInjector;
@@ -41,6 +42,8 @@ import com.seibel.lod.core.objects.math.Vec3d;
import com.seibel.lod.core.objects.math.Vec3f;
import com.seibel.lod.core.wrapperInterfaces.IWrapperFactory;
import com.seibel.lod.core.wrapperInterfaces.minecraft.IMinecraftRenderWrapper;
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.core.wrapperInterfaces.modAccessor.ISodiumAccessor;
import com.seibel.lod.common.wrappers.McObjectConverter;
@@ -144,6 +147,8 @@ public class MinecraftRenderWrapper implements IMinecraftRenderWrapper
@Override
public Color getFogColor(float partialTicks) {
if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("bclib"))
return ModAccessorInjector.INSTANCE.get(IBCLibAccessor.class).getFogColor(); // BCLib uses a different fog method so we need to use that instead if they are loaded
#if PRE_MC_1_17_1
float[] colorValues = new float[4];
@@ -23,20 +23,20 @@ import com.seibel.lod.common.LodCommonMain;
import com.seibel.lod.core.ModInfo;
import com.seibel.lod.core.api.external.methods.events.abstractEvents.DhApiAfterDhInitEvent;
import com.seibel.lod.core.api.external.methods.events.abstractEvents.DhApiBeforeDhInitEvent;
import com.seibel.lod.core.config.Config;
import com.seibel.lod.core.handlers.dependencyInjection.DhApiEventInjector;
import com.seibel.lod.core.handlers.dependencyInjection.ModAccessorInjector;
import com.seibel.lod.core.handlers.dependencyInjection.SingletonInjector;
import com.seibel.lod.core.logging.DhLoggerBuilder;
import com.seibel.lod.core.wrapperInterfaces.modAccessor.IModChecker;
import com.seibel.lod.core.wrapperInterfaces.modAccessor.IOptifineAccessor;
import com.seibel.lod.core.wrapperInterfaces.modAccessor.ISodiumAccessor;
import com.seibel.lod.core.wrapperInterfaces.modAccessor.IStarlightAccessor;
import com.seibel.lod.core.wrapperInterfaces.modAccessor.*;
import com.seibel.lod.wrappers.modAccessor.BCLibAccessor;
import com.seibel.lod.wrappers.modAccessor.OptifineAccessor;
import com.seibel.lod.wrappers.modAccessor.SodiumAccessor;
import com.seibel.lod.wrappers.modAccessor.StarlightAccessor;
import com.seibel.lod.wrappers.FabricDependencySetup;
import org.apache.logging.log4j.Logger;
import org.spongepowered.asm.mixin.Mixins;
/**
* Initialize and setup the Mod. <br>
@@ -45,7 +45,7 @@ import org.apache.logging.log4j.Logger;
*
* @author coolGi
* @author Ran
* @version 8-15-2022
* @version 9-2-2022
*/
public class FabricMain
{
@@ -55,6 +55,10 @@ public class FabricMain
LOGGER.info("Post-Initializing Mod");
FabricDependencySetup.runDelayedSetup();
LodCommonMain.initConfig();
if (Config.Client.Graphics.FogQuality.disableVanillaFog.get() && SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("bclib"))
ModAccessorInjector.INSTANCE.get(IBCLibAccessor.class).setRenderCustomFog(false); // Remove BCLib's fog
LOGGER.info("Mod Post-Initialized");
}
@@ -78,6 +82,9 @@ public class FabricMain
if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("optifine")) {
ModAccessorInjector.INSTANCE.bind(IOptifineAccessor.class, new OptifineAccessor());
}
if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("bclib")) {
ModAccessorInjector.INSTANCE.bind(IBCLibAccessor.class, new BCLibAccessor());
}
LOGGER.info(ModInfo.READABLE_NAME + " Initialized");
DhApiEventInjector.INSTANCE.fireAllEvents(DhApiAfterDhInitEvent.class, null);
@@ -0,0 +1,25 @@
package com.seibel.lod.wrappers.modAccessor;
import com.seibel.lod.core.wrapperInterfaces.modAccessor.IBCLibAccessor;
import ru.bclib.config.ClientConfig;
import ru.bclib.config.Configs;
import ru.bclib.util.BackgroundInfo;
import java.awt.*;
public class BCLibAccessor implements IBCLibAccessor {
@Override
public String getModName() {
return "BCLib";
}
public void setRenderCustomFog(boolean newValue) {
// Change the value of CUSTOM_FOG_RENDERING in the bclib client config
Configs.CLIENT_CONFIG.set(ClientConfig.CUSTOM_FOG_RENDERING, newValue);
}
@Override
public Color getFogColor() {
return new Color(BackgroundInfo.fogColorRed, BackgroundInfo.fogColorGreen, BackgroundInfo.fogColorBlue);
}
}