Merge branch 'main-upstream'

# Conflicts:
#	coreSubProjects
#	fabric/src/main/java/com/seibel/distanthorizons/fabric/FabricMain.java
This commit is contained in:
Steveplays28
2023-09-24 11:26:12 +02:00
18 changed files with 68 additions and 57 deletions
+1
View File
@@ -398,6 +398,7 @@ subprojects { p ->
git_main_branch : git_main_branch,
fabric_incompatibility_list : fabric_incompatibility_list,
fabric_recommend_list : fabric_recommend_list,
]
// The left side is what gets replaced in the mod info and the right side is where to get it from in the gradle.properties
@@ -28,8 +28,6 @@ import com.seibel.distanthorizons.core.wrapperInterfaces.config.IConfigGui;
import com.seibel.distanthorizons.core.wrapperInterfaces.config.ILangWrapper;
import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftClientWrapper;
import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftRenderWrapper;
import com.seibel.distanthorizons.core.IReflectionHandler;
import com.seibel.distanthorizons.core.ReflectionHandler;
import com.seibel.distanthorizons.core.dependencyInjection.SingletonInjector;
import com.seibel.distanthorizons.core.wrapperInterfaces.IVersionConstants;
import com.seibel.distanthorizons.core.wrapperInterfaces.IWrapperFactory;
@@ -71,7 +69,6 @@ public class DependencySetup
SingletonInjector.INSTANCE.bind(IMinecraftClientWrapper.class, MinecraftClientWrapper.INSTANCE);
SingletonInjector.INSTANCE.bind(IMinecraftSharedWrapper.class, MinecraftClientWrapper.INSTANCE);
SingletonInjector.INSTANCE.bind(IMinecraftRenderWrapper.class, MinecraftRenderWrapper.INSTANCE);
SingletonInjector.INSTANCE.bind(IReflectionHandler.class, ReflectionHandler.INSTANCE);
SingletonInjector.INSTANCE.bind(IConfigGui.class, ClassicConfigGUI.CONFIG_CORE_INTERFACE);
}
@@ -270,11 +270,11 @@ public class ClassicConfigGUI
}
addBtn(MakeBtn(CommonComponents.GUI_CANCEL, this.width / 2 - 154, this.height - 28, 150, 20, button -> {
addBtn(MakeBtn(Translatable("distanthorizons.general.cancel"), this.width / 2 - 154, this.height - 28, 150, 20, button -> {
ConfigBase.INSTANCE.configFileINSTANCE.loadFromFile();
Objects.requireNonNull(minecraft).setScreen(parent);
}));
doneButton = addBtn(MakeBtn(CommonComponents.GUI_DONE, this.width / 2 + 4, this.height - 28, 150, 20, (button) -> {
doneButton = addBtn(MakeBtn(Translatable("distanthorizons.general.done"), this.width / 2 + 4, this.height - 28, 150, 20, (button) -> {
ConfigBase.INSTANCE.configFileINSTANCE.saveToFile();
Objects.requireNonNull(minecraft).setScreen(parent);
}));
@@ -325,7 +325,7 @@ public class ClassicConfigGUI
int c = ConfigScreenConfigs.ResetButtonWidth;
int d = 20;
Button resetButton = MakeBtn(TextOrLiteral("Reset").withStyle(ChatFormatting.RED), a, b, c, d, btnAction);
Button resetButton = MakeBtn(Translatable("distanthorizons.general.reset").withStyle(ChatFormatting.RED), a, b, c, d, btnAction);
if (((EntryInfo) info.guiValue).widget instanceof Map.Entry)
{
@@ -472,7 +472,7 @@ public class ClassicConfigGUI
else if (fieldClass == Boolean.class)
{
// For boolean
Function<Object, Component> func = value -> TextOrTranslatable((Boolean) value ? "True" : "False").withStyle((Boolean) value ? ChatFormatting.GREEN : ChatFormatting.RED);
Function<Object, Component> func = value -> Translatable("distanthorizons.general."+((Boolean) value ? "true" : "false")).withStyle((Boolean) value ? ChatFormatting.GREEN : ChatFormatting.RED);
((EntryInfo) info.guiValue).widget = new AbstractMap.SimpleEntry<Button.OnPress, Function<Object, Component>>(button -> {
((ConfigEntry) info).uiSetWithoutSaving(!(Boolean) info.get());
@@ -43,6 +43,7 @@ import java.io.IOException;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
@@ -161,7 +162,7 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv
//=================Generation Step===================
public final LinkedList<GenerationEvent> generationEventList = new LinkedList<>();
public final LinkedBlockingQueue<GenerationEvent> generationEventList = new LinkedBlockingQueue<>();
public final GlobalParameters params;
public final StepStructureStart stepStructureStart = new StepStructureStart(this);
public final StepStructureReference stepStructureReference = new StepStructureReference(this);
@@ -302,16 +303,17 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv
public void updateAllFutures()
{
if (unknownExceptionCount > 0)
if (this.unknownExceptionCount > 0)
{
if (System.nanoTime() - lastExceptionTriggerTime >= EXCEPTION_TIMER_RESET_TIME)
if (System.nanoTime() - this.lastExceptionTriggerTime >= EXCEPTION_TIMER_RESET_TIME)
{
unknownExceptionCount = 0;
this.unknownExceptionCount = 0;
}
}
// Update all current out standing jobs
Iterator<GenerationEvent> iter = generationEventList.iterator();
Iterator<GenerationEvent> iter = this.generationEventList.iterator();
while (iter.hasNext())
{
GenerationEvent event = iter.next();
@@ -326,10 +328,9 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv
}
catch (Exception e)
{
unknownExceptionCount++;
lastExceptionTriggerTime = System.nanoTime();
EVENT_LOGGER.error("Batching World Generator: Event {} gotten an exception", event);
EVENT_LOGGER.error("Exception: ", e);
this.unknownExceptionCount++;
this.lastExceptionTriggerTime = System.nanoTime();
EVENT_LOGGER.error("Batching World Generator event ["+event+"] threw an exception: "+e.getMessage(), e);
}
}
@@ -353,10 +354,10 @@ public final class BatchGenerationEnvironment extends AbstractBatchGenerationEnv
}
}
if (unknownExceptionCount > EXCEPTION_COUNTER_TRIGGER)
if (this.unknownExceptionCount > EXCEPTION_COUNTER_TRIGGER)
{
EVENT_LOGGER.error("Too many exceptions in Batching World Generator! Disabling the generator.");
unknownExceptionCount = 0;
this.unknownExceptionCount = 0;
Config.Client.Advanced.WorldGenerator.enableDistantGeneration.set(false);
}
}
@@ -188,34 +188,24 @@ public class FabricClientProxy
// Client Render Level
WorldRenderEvents.AFTER_SETUP.register((renderContext) ->
{
if (sodiumAccessor != null)
this.clientApi.renderLods(ClientLevelWrapper.getWrapper(renderContext.world()),
McObjectConverter.Convert(renderContext.matrixStack().last().pose()),
McObjectConverter.Convert(renderContext.projectionMatrix()),
renderContext.tickDelta());
// experimental proof-of-concept option
if (Config.Client.Advanced.Graphics.AdvancedGraphics.seamlessOverdraw.get())
{
sodiumAccessor.levelWrapper = ClientLevelWrapper.getWrapper(renderContext.world());
sodiumAccessor.mcModelViewMatrix = McObjectConverter.Convert(renderContext.matrixStack().last().pose());
sodiumAccessor.mcProjectionMatrix = McObjectConverter.Convert(renderContext.projectionMatrix());
sodiumAccessor.partialTicks = renderContext.tickDelta();
}
else
{
this.clientApi.renderLods(ClientLevelWrapper.getWrapper(renderContext.world()),
McObjectConverter.Convert(renderContext.matrixStack().last().pose()),
McObjectConverter.Convert(renderContext.projectionMatrix()),
renderContext.tickDelta());
float[] matrixFloatArray = SeamlessOverdraw.overwriteMinecraftNearFarClipPlanes(renderContext.projectionMatrix(), renderContext.tickDelta());
// experimental proof-of-concept option
if (Config.Client.Advanced.Graphics.AdvancedGraphics.seamlessOverdraw.get())
{
float[] matrixFloatArray = SeamlessOverdraw.overwriteMinecraftNearFarClipPlanes(renderContext.projectionMatrix(), renderContext.tickDelta());
#if MC_1_16_5
SeamlessOverdraw.applyLegacyProjectionMatrix(matrixFloatArray);
#elif PRE_MC_1_19_4
renderContext.projectionMatrix().load(FloatBuffer.wrap(matrixFloatArray));
#else
renderContext.projectionMatrix().set(matrixFloatArray);
#endif
}
#if MC_1_16_5
SeamlessOverdraw.applyLegacyProjectionMatrix(matrixFloatArray);
#elif PRE_MC_1_19_4
renderContext.projectionMatrix().load(FloatBuffer.wrap(matrixFloatArray));
#else
renderContext.projectionMatrix().set(matrixFloatArray);
#endif
}
//if (immersivePortalsAccessor != null)
@@ -23,6 +23,7 @@ import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiAfterDh
import com.seibel.distanthorizons.api.methods.events.abstractEvents.DhApiBeforeDhInitEvent;
import com.seibel.distanthorizons.core.config.ConfigBase;
import com.seibel.distanthorizons.core.jar.ModGitInfo;
import com.seibel.distanthorizons.core.wrapperInterfaces.minecraft.IMinecraftClientWrapper;
import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.*;
import com.seibel.distanthorizons.common.LodCommonMain;
import com.seibel.distanthorizons.coreapi.ModInfo;
@@ -58,7 +59,7 @@ public class FabricMain
ModAccessorInjector.INSTANCE.get(IBCLibAccessor.class).setRenderCustomFog(false); // Remove BCLib's fog
#if POST_MC_1_20_1
if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("sodium"))
ModAccessorInjector.INSTANCE.get(ISodiumAccessor.class).setFogOcclusion(false); // FIXME: This is a temporary solution to get sodium 0.5 to work
ModAccessorInjector.INSTANCE.get(ISodiumAccessor.class).setFogOcclusion(false); // FIXME: This is a tmp fix for sodium 0.5.0, and 0.5.1. This is fixed in sodium 0.5.2
#endif
if (ConfigBase.INSTANCE == null)
@@ -83,10 +84,21 @@ public class FabricMain
LOGGER.info("DH Commit: " + ModGitInfo.Git_Main_Commit);
LOGGER.info("DH-Core Commit: " + ModGitInfo.Git_Core_Commit);
if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("sodium"))
IModChecker modChecker = SingletonInjector.INSTANCE.get(IModChecker.class);
if (modChecker.isModLoaded("sodium"))
{
ModAccessorInjector.INSTANCE.bind(ISodiumAccessor.class, new SodiumAccessor());
// If sodium is installed Indium is also necessary in order to use the Fabric rendering API
if (!modChecker.isModLoaded("indium"))
{
IMinecraftClientWrapper mc = SingletonInjector.INSTANCE.get(IMinecraftClientWrapper.class);
String errorMessage = "loading Distant Horizons. Distant Horizons requires Indium in order to run with Sodium.";
String exceptionError = "Distant Horizons conditional mod Exception";
mc.crashMinecraft(errorMessage, new Exception(exceptionError));
}
}
if (modChecker.isModLoaded("starlight"))
//if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("imm_ptl_core"))
//{
//ModAccessorInjector.INSTANCE.bind(IImmersivePortalsAccessor.class, new ImmersivePortalsAccessor());
@@ -95,18 +107,18 @@ public class FabricMain
{
ModAccessorInjector.INSTANCE.bind(IStarlightAccessor.class, new StarlightAccessor());
}
if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("optifine"))
if (modChecker.isModLoaded("optifine"))
{
ModAccessorInjector.INSTANCE.bind(IOptifineAccessor.class, new OptifineAccessor());
}
if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("bclib"))
if (modChecker.isModLoaded("bclib"))
{
ModAccessorInjector.INSTANCE.bind(IBCLibAccessor.class, new BCLibAccessor());
}
#if MC_1_16_5 || MC_1_18_2 || MC_1_19_2 || MC_1_19_4 || MC_1_20_1
// 1.17.1 won't support this since there isn't a matching Iris version
if (SingletonInjector.INSTANCE.get(IModChecker.class).isModLoaded("iris"))
if (modChecker.isModLoaded("iris"))
{
ModAccessorInjector.INSTANCE.bind(IIrisAccessor.class, new IrisAccessor());
}
@@ -1,5 +1,7 @@
package com.seibel.distanthorizons.fabric.mixins.mods.sodium;
/* Removed since DH now uses Indium so we can use the Fabric rendering API instead
#if POST_MC_1_20_1
// Sodium 0.5.1
import com.seibel.distanthorizons.core.api.internal.ClientApi;
@@ -131,3 +133,5 @@ public class MixinSodiumRenderer
}
#endif
*/
@@ -18,8 +18,7 @@
"client.MixinLightmap",
"client.MixinOptionsScreen",
"client.MixinMinecraft",
"client.MixinTextureUtil",
"mods.sodium.MixinSodiumRenderer"
"client.MixinTextureUtil"
],
"server": [],
"injectors": {
+2 -1
View File
@@ -56,5 +56,6 @@
"blendium": "*"
},
"breaks": $fabric_incompatibility_list
"breaks": $fabric_incompatibility_list,
"recommends": $fabric_recommend_list
}
@@ -27,9 +27,9 @@ import com.seibel.distanthorizons.common.wrappers.DependencySetup;
import com.seibel.distanthorizons.common.wrappers.gui.GetConfigScreen;
import com.seibel.distanthorizons.common.wrappers.minecraft.MinecraftClientWrapper;
import com.seibel.distanthorizons.core.jar.ModGitInfo;
import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.AbstractOptifineAccessor;
import com.seibel.distanthorizons.coreapi.DependencyInjection.ApiEventInjector;
import com.seibel.distanthorizons.coreapi.ModInfo;
import com.seibel.distanthorizons.core.ReflectionHandler;
import com.seibel.distanthorizons.core.dependencyInjection.ModAccessorInjector;
import com.seibel.distanthorizons.core.logging.DhLoggerBuilder;
import com.seibel.distanthorizons.core.wrapperInterfaces.modAccessor.IOptifineAccessor;
@@ -124,7 +124,7 @@ public class ForgeMain implements LodForgeMethodCaller
server_proxy = new ForgeServerProxy(false);
MinecraftForge.EVENT_BUS.register(server_proxy);
if (ReflectionHandler.INSTANCE.optifinePresent())
if (AbstractOptifineAccessor.optifinePresent())
{
ModAccessorInjector.INSTANCE.bind(IOptifineAccessor.class, new OptifineAccessor());
}
+1 -1
View File
@@ -18,7 +18,7 @@ mod_issues=https://gitlab.com/jeseibel/minecraft-lod-mod/-/issues
mod_discord=https://discord.gg/xAB8G4cENx
# Global Plugin Versions
manifold_version=2023.1.15
manifold_version=2023.1.26
toml_version=3.6.4
lz4_version=1.8.0
nightconfig_version=3.6.6
+1
View File
@@ -21,6 +21,7 @@ fabric_api_version=0.42.0+1.16
canvas_version=
fabric_incompatibility_list={ }
fabric_recommend_list={ "indium": "*" }
# Fabric mod run
# 0 = Don't enable and don't run
+1
View File
@@ -21,6 +21,7 @@ fabric_api_version=0.46.1+1.17
canvas_version=
fabric_incompatibility_list={ }
fabric_recommend_list={ "indium": "*" }
# Fabric mod run
# 0 = Don't enable and don't run
+1
View File
@@ -22,6 +22,7 @@ fabric_api_version=0.76.0+1.18.2
canvas_version=mc118:1.0.2616
fabric_incompatibility_list={ }
fabric_recommend_list={ "indium": "*" }
# Fabric mod run
# 0 = Don't enable and don't run
+1
View File
@@ -21,6 +21,7 @@ fabric_api_version=0.76.0+1.19.2
canvas_version=mc119-1.0.2480
fabric_incompatibility_list={ }
fabric_recommend_list={ "indium": "*" }
# Fabric mod run
# 0 = Don't enable and don't run
+1
View File
@@ -21,6 +21,7 @@ fabric_api_version=0.83.0+1.19.4
canvas_version=
fabric_incompatibility_list={ }
fabric_recommend_list={ "indium": "*" }
# Fabric mod run
# 0 = Don't enable and don't run
+2 -1
View File
@@ -20,7 +20,8 @@ fabric_api_version=0.85.0+1.20.1
immersive_portals_version=
canvas_version=
fabric_incompatibility_list={ "sodium": "<0.5.1" }
fabric_incompatibility_list={ }
fabric_recommend_list={ "indium": "*" }
# Fabric mod run
# 0 = Don't enable and don't run