Fixed some config stuff

This commit is contained in:
coolGi2007
2022-01-06 10:49:25 +00:00
parent e23244181a
commit 562c8154ff
12 changed files with 183 additions and 138 deletions
@@ -20,7 +20,6 @@
package com.seibel.lod.common;
import com.seibel.lod.common.wrappers.config.ConfigGui;
import com.seibel.lod.common.wrappers.world.DimensionTypeWrapper;
import com.seibel.lod.core.config.*;
import com.seibel.lod.core.enums.config.*;
import com.seibel.lod.core.enums.rendering.*;
@@ -57,8 +56,11 @@ public class Config extends ConfigGui
@ConfigAnnotations.ScreenEntry
public static Client client;
// I know this option should be in Client
// This is a hacky method to not show the button in the options screen but show it in the mod menu
// Tough it is in client in the wrapper singleton
@ConfigAnnotations.Entry
public static boolean ShowButton = true;
public static boolean optionsButton = true;
public static class Client
{
@@ -60,7 +60,7 @@ import net.minecraft.client.gui.narration.NarratableEntry; // Remove in 1.16
* Credits to Motschen
*
* @author coolGi2007
* @version 12-28-2021
* @version 1-6-2022
*/
@SuppressWarnings("unchecked")
public abstract class ConfigGui
@@ -109,7 +109,7 @@ public abstract class ConfigGui
public static final int ResetButtonWidth = 40;
}
protected static class EntryInfo<T>
public static class EntryInfo<T>
{
Field field;
Object widget;
@@ -164,7 +164,6 @@ public abstract class ConfigGui
if (field.isAnnotationPresent(ConfigAnnotations.Entry.class) || field.isAnnotationPresent(ConfigAnnotations.Comment.class) || field.isAnnotationPresent(ConfigAnnotations.ScreenEntry.class))
{
// If putting in your own mod then put your own check for server sided
entryMap.put((!category.isEmpty() ? category + "." : "") + field.getName(), info);
info.category = category;
if (!LodCommonMain.serverSided)
initClient(field, info, category);
@@ -172,6 +171,7 @@ public abstract class ConfigGui
if (field.isAnnotationPresent(ConfigAnnotations.Entry.class))
{
entryMap.put((!category.isEmpty() ? category + "." : "") + field.getName(), info);
info.varClass = field.getType();
try
{
@@ -327,6 +327,7 @@ public abstract class ConfigGui
for (EntryInfo info : entries) {
if (info.field.isAnnotationPresent(ConfigAnnotations.Entry.class)) {
// editSingleOption.saveOption(info);
config.set((info.category.isEmpty() ? "" : info.category + ".") + info.field.getName(), info.value);
}
}
@@ -355,37 +356,69 @@ public abstract class ConfigGui
// Puts everything into its variable
for (EntryInfo info : entries) {
if (info.field.isAnnotationPresent(ConfigAnnotations.Entry.class)) {
saveOption(info);
// editSingleOption.loadOption(info);
String itemPath = (info.category.isEmpty() ? "" : info.category + ".") + info.field.getName();
if (config.contains(itemPath)) {
if (info.field.getType().isEnum())
info.value = config.getEnum(itemPath, info.varClass);
else
info.value = config.get(itemPath);
} else
config.set(itemPath, info.value);
try {
info.field.set(null, info.value);
} catch (IllegalAccessException ignored) {
}
}
}
config.close();
}
// TODO: Use this in the config wrapper singleton
public static void saveOption(String name) {
saveOption(entryMap.get(name));
}
public static class editSingleOption {
public static EntryInfo getEntry(String name) {
return entryMap.get(name);
}
public static void saveOption(EntryInfo info)
{
CommentedFileConfig config = CommentedFileConfig.builder(configFilePath.toFile()).autosave().build();
config.load();
public static void saveOption(String name) {
saveOption(entryMap.get(name));
}
String itemPath = (info.category.isEmpty() ? "" : info.category + ".") + info.field.getName();
if (config.contains(itemPath)) {
if (info.field.getType().isEnum())
info.value = config.getEnum(itemPath, info.varClass);
else
info.value = config.get(itemPath);
} else
config.set(itemPath, info.value);
public static void saveOption(EntryInfo info) {
CommentedFileConfig config = CommentedFileConfig.builder(configFilePath.toFile()).build();
config.load();
try {
info.field.set(null, info.value);
} catch (IllegalAccessException ignored) {}
config.set((info.category.isEmpty() ? "" : info.category + ".") + info.field.getName(), info.value);
config.close();
config.save();
config.close();
}
public static void loadOption(String name) {
loadOption(entryMap.get(name));
}
public static void loadOption(EntryInfo info) {
CommentedFileConfig config = CommentedFileConfig.builder(configFilePath.toFile()).autosave().build();
config.load();
String itemPath = (info.category.isEmpty() ? "" : info.category + ".") + info.field.getName();
if (config.contains(itemPath)) {
if (info.field.getType().isEnum())
info.value = config.getEnum(itemPath, info.varClass);
else
info.value = config.get(itemPath);
} else
config.set(itemPath, info.value);
try {
info.field.set(null, info.value);
} catch (IllegalAccessException ignored) {
}
config.close();
}
}
@@ -50,6 +50,18 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
}
@Override
public boolean getOptionsButton()
{
return Config.optionsButton;
}
@Override
public void setOptionsButton(boolean newOptionsButton)
{
ConfigGui.editSingleOption.getEntry("optionsButton").value = newOptionsButton;
ConfigGui.editSingleOption.saveOption("optionsButton");
}
//================//
// Client Configs //
@@ -118,8 +130,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setDrawResolution(HorizontalResolution newHorizontalResolution)
{
Config.Client.Graphics.Quality.drawResolution = newHorizontalResolution;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.quality.drawResolution").value = newHorizontalResolution;
ConfigGui.editSingleOption.saveOption("client.graphics.quality.drawResolution");
}
@@ -131,8 +143,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setLodChunkRenderDistance(int newLodChunkRenderDistance)
{
Config.Client.Graphics.Quality.lodChunkRenderDistance = newLodChunkRenderDistance;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.quality.lodChunkRenderDistance").value = newLodChunkRenderDistance;
ConfigGui.editSingleOption.saveOption("client.graphics.quality.lodChunkRenderDistance");
}
@@ -144,8 +156,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setVerticalQuality(VerticalQuality newVerticalQuality)
{
Config.Client.Graphics.Quality.verticalQuality = newVerticalQuality;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.quality.verticalQuality").value = newVerticalQuality;
ConfigGui.editSingleOption.saveOption("client.graphics.quality.verticalQuality");
}
@@ -157,8 +169,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setHorizontalScale(int newHorizontalScale)
{
Config.Client.Graphics.Quality.horizontalScale = newHorizontalScale;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.quality.horizontalScale").value = newHorizontalScale;
ConfigGui.editSingleOption.saveOption("client.graphics.quality.horizontalScale");
}
@@ -170,8 +182,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setHorizontalQuality(HorizontalQuality newHorizontalQuality)
{
Config.Client.Graphics.Quality.horizontalQuality = newHorizontalQuality;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.quality.horizontalQuality").value = newHorizontalQuality;
ConfigGui.editSingleOption.saveOption("client.graphics.quality.horizontalQuality");
}
}
@@ -186,8 +198,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setFogDistance(FogDistance newFogDistance)
{
Config.Client.Graphics.FogQuality.fogDistance = newFogDistance;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.fogQuality.fogDistance").value = newFogDistance;
ConfigGui.editSingleOption.saveOption("client.graphics.fogQuality.fogDistance");
}
@@ -200,8 +212,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setFogDrawMode(FogDrawMode setFogDrawMode)
{
Config.Client.Graphics.FogQuality.fogDrawMode = setFogDrawMode;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.fogQuality.fogDrawMode").value = setFogDrawMode;
ConfigGui.editSingleOption.saveOption("client.graphics.fogQuality.fogDrawMode");
}
@@ -214,8 +226,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setFogColorMode(FogColorMode newFogColorMode)
{
Config.Client.Graphics.FogQuality.fogColorMode = newFogColorMode;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.fogQuality.fogColorMode").value = newFogColorMode;
ConfigGui.editSingleOption.saveOption("client.graphics.fogQuality.fogColorMode");
}
@@ -227,8 +239,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setDisableVanillaFog(boolean newDisableVanillaFog)
{
Config.Client.Graphics.FogQuality.disableVanillaFog = newDisableVanillaFog;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.fogQuality.disableVanillaFog").value = newDisableVanillaFog;
ConfigGui.editSingleOption.saveOption("client.graphics.fogQuality.disableVanillaFog");
}
}
@@ -243,8 +255,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setCustomClouds(boolean newCustomClouds)
{
Config.Client.Graphics.CloudQuality.customClouds = newCustomClouds;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.cloudQuality.customClouds").value = newCustomClouds;
ConfigGui.editSingleOption.saveOption("client.graphics.cloudQuality.customClouds");
}
@@ -256,8 +268,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setFabulousClouds(boolean newFabulousClouds)
{
Config.Client.Graphics.CloudQuality.fabulousClouds = newFabulousClouds;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.cloudQuality.fabulousClouds").value = newFabulousClouds;
ConfigGui.editSingleOption.saveOption("client.graphics.cloudQuality.fabulousClouds");
}
@@ -269,8 +281,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setExtendClouds(boolean newExtendClouds)
{
Config.Client.Graphics.CloudQuality.extendClouds = newExtendClouds;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.cloudQuality.extendClouds").value = newExtendClouds;
ConfigGui.editSingleOption.saveOption("client.graphics.cloudQuality.extendClouds");
}
@@ -282,8 +294,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setCloudHeight(double newCloudHeight)
{
Config.Client.Graphics.CloudQuality.cloudHeight = newCloudHeight;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.cloudQuality.cloudHeight").value = newCloudHeight;
ConfigGui.editSingleOption.saveOption("client.graphics.cloudQuality.cloudHeight");
}
}
@@ -298,8 +310,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setDisableDirectionalCulling(boolean newDisableDirectionalCulling)
{
Config.Client.Graphics.AdvancedGraphics.disableDirectionalCulling = newDisableDirectionalCulling;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.advancedGraphics.disableDirectionalCulling").value = newDisableDirectionalCulling;
ConfigGui.editSingleOption.saveOption("client.graphics.advancedGraphics.disableDirectionalCulling");
}
@@ -311,8 +323,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setAlwaysDrawAtMaxQuality(boolean newAlwaysDrawAtMaxQuality)
{
Config.Client.Graphics.AdvancedGraphics.alwaysDrawAtMaxQuality = newAlwaysDrawAtMaxQuality;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.advancedGraphics.alwaysDrawAtMaxQuality").value = newAlwaysDrawAtMaxQuality;
ConfigGui.editSingleOption.saveOption("client.graphics.advancedGraphics.alwaysDrawAtMaxQuality");
}
@@ -324,8 +336,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setVanillaOverdraw(VanillaOverdraw newVanillaOverdraw)
{
Config.Client.Graphics.AdvancedGraphics.vanillaOverdraw = newVanillaOverdraw;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.advancedGraphics.vanillaOverdraw").value = newVanillaOverdraw;
ConfigGui.editSingleOption.saveOption("client.graphics.advancedGraphics.vanillaOverdraw");
}
@Override
@@ -334,10 +346,10 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
return Config.Client.Graphics.AdvancedGraphics.backsideCullingRange;
}
@Override
public void setBacksideCullingRange(int backsideCullingRange)
public void setBacksideCullingRange(int newBacksideCullingRange)
{
Config.Client.Graphics.AdvancedGraphics.backsideCullingRange = backsideCullingRange;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.advancedGraphics.backsideCullingRange").value = newBacksideCullingRange;
ConfigGui.editSingleOption.saveOption("client.graphics.advancedGraphics.backsideCullingRange");
}
@Override
@@ -348,8 +360,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setUseExtendedNearClipPlane(boolean newUseExtendedNearClipPlane)
{
Config.Client.Graphics.AdvancedGraphics.useExtendedNearClipPlane = newUseExtendedNearClipPlane;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.graphics.advancedGraphics.useExtendedNearClipPlane").value = newUseExtendedNearClipPlane;
ConfigGui.editSingleOption.saveOption("client.graphics.advancedGraphics.useExtendedNearClipPlane");
}
}
}
@@ -370,8 +382,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setGenerationPriority(GenerationPriority newGenerationPriority)
{
Config.Client.WorldGenerator.generationPriority = newGenerationPriority;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.worldGenerator.generationPriority").value = newGenerationPriority;
ConfigGui.editSingleOption.saveOption("client.worldGenerator.generationPriority");
}
@@ -383,8 +395,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setDistanceGenerationMode(DistanceGenerationMode newDistanceGenerationMode)
{
Config.Client.WorldGenerator.distanceGenerationMode = newDistanceGenerationMode;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.worldGenerator.distanceGenerationMode").value = newDistanceGenerationMode;
ConfigGui.editSingleOption.saveOption("client.worldGenerator.distanceGenerationMode");
}
@@ -396,8 +408,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setAllowUnstableFeatureGeneration(boolean newAllowUnstableFeatureGeneration)
{
Config.Client.WorldGenerator.allowUnstableFeatureGeneration = newAllowUnstableFeatureGeneration;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.worldGenerator.allowUnstableFeatureGeneration").value = newAllowUnstableFeatureGeneration;
ConfigGui.editSingleOption.saveOption("client.worldGenerator.allowUnstableFeatureGeneration");
}
@@ -409,8 +421,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setBlockToAvoid(BlocksToAvoid newBlockToAvoid)
{
Config.Client.WorldGenerator.blocksToAvoid = newBlockToAvoid;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.worldGenerator.blocksToAvoid").value = newBlockToAvoid;
ConfigGui.editSingleOption.saveOption("client.worldGenerator.blocksToAvoid");
}
}
@@ -465,8 +477,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setNumberOfWorldGenerationThreads(int newNumberOfWorldGenerationThreads)
{
Config.Client.Advanced.Threading.numberOfWorldGenerationThreads = newNumberOfWorldGenerationThreads;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.advanced.threading.numberOfWorldGenerationThreads").value = newNumberOfWorldGenerationThreads;
ConfigGui.editSingleOption.saveOption("client.advanced.threading.numberOfWorldGenerationThreads");
}
@@ -478,8 +490,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setNumberOfBufferBuilderThreads(int newNumberOfWorldBuilderThreads)
{
Config.Client.Advanced.Threading.numberOfBufferBuilderThreads = newNumberOfWorldBuilderThreads;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.advanced.threading.numberOfBufferBuilderThreads").value = newNumberOfWorldBuilderThreads;
ConfigGui.editSingleOption.saveOption("client.advanced.threading.numberOfBufferBuilderThreads");
}
}
@@ -499,8 +511,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setDrawLods(boolean newDrawLods)
{
Config.Client.Advanced.Debugging.drawLods = newDrawLods;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.advanced.debugging.drawLods").value = newDrawLods;
ConfigGui.editSingleOption.saveOption("client.advanced.debugging.drawLods");
}
@@ -512,8 +524,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setDebugMode(DebugMode newDebugMode)
{
Config.Client.Advanced.Debugging.debugMode = newDebugMode;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.advanced.debugging.debugMode").value = newDebugMode;
ConfigGui.editSingleOption.saveOption("client.advanced.debugging.debugMode");
}
@@ -525,8 +537,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setDebugKeybindingsEnabled(boolean newEnableDebugKeybindings)
{
Config.Client.Advanced.Debugging.enableDebugKeybindings = newEnableDebugKeybindings;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.advanced.debugging.enableDebugKeybindings").value = newEnableDebugKeybindings;
ConfigGui.editSingleOption.saveOption("client.advanced.debugging.enableDebugKeybindings");
}
}
@@ -542,8 +554,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setGpuUploadMethod(GpuUploadMethod newDisableVanillaFog)
{
Config.Client.Advanced.Buffers.gpuUploadMethod = newDisableVanillaFog;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.advanced.buffers.gpuUploadMethod").value = newDisableVanillaFog;
ConfigGui.editSingleOption.saveOption("client.advanced.buffers.gpuUploadMethod");
}
@@ -554,8 +566,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
}
@Override
public void setGpuUploadPerMegabyteInMilliseconds(int newMilliseconds) {
Config.Client.Advanced.Buffers.gpuUploadPerMegabyteInMilliseconds = newMilliseconds;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.advanced.buffers.gpuUploadPerMegabyteInMilliseconds").value = newMilliseconds;
ConfigGui.editSingleOption.saveOption("client.advanced.buffers.gpuUploadPerMegabyteInMilliseconds");
}
@@ -567,8 +579,8 @@ public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
@Override
public void setRebuildTimes(BufferRebuildTimes newBufferRebuildTimes)
{
Config.Client.Advanced.Buffers.rebuildTimes = newBufferRebuildTimes;
ConfigGui.saveToFile();
ConfigGui.editSingleOption.getEntry("client.advanced.buffers.newBufferRebuildTimes").value = newBufferRebuildTimes;
ConfigGui.editSingleOption.saveOption("client.advanced.buffers.newBufferRebuildTimes");
}
}
}
+1 -1
Submodule core updated: c664564fb0...a8d52c1059
@@ -19,14 +19,15 @@
package com.seibel.lod.fabric;
import com.seibel.lod.common.Config;
import com.seibel.lod.core.api.ClientApi;
import com.seibel.lod.core.api.EventApi;
import com.seibel.lod.common.wrappers.chunk.ChunkWrapper;
import com.seibel.lod.common.wrappers.world.DimensionTypeWrapper;
import com.seibel.lod.common.wrappers.world.WorldWrapper;
import com.seibel.lod.core.util.SingletonHandler;
import com.seibel.lod.core.wrapperInterfaces.chunk.IChunkWrapper;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton;
import com.seibel.lod.fabric.mixins.events.MixinClientLevel;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientChunkEvents;
@@ -164,17 +165,17 @@ public class ClientProxy
boolean PreDebugToggle = false;
boolean PreDrawToggle = false;
public void onKeyInput() {
if (Config.Client.Advanced.Debugging.enableDebugKeybindings)
ILodConfigWrapperSingleton CONFIG = SingletonHandler.get(ILodConfigWrapperSingleton.class);
if (CONFIG.client().advanced().debugging().getDebugKeybindingsEnabled())
{
// Only activates when you press the key
if (DebugToggle.isDown() && DebugToggle.isDown() != PreDebugToggle)
Config.Client.Advanced.Debugging.debugMode = Config.Client.Advanced.Debugging.debugMode.getNext();
CONFIG.client().advanced().debugging().setDebugMode(CONFIG.client().advanced().debugging().getDebugMode().getNext());
if (DrawToggle.isDown() && DrawToggle.isDown() != PreDebugToggle)
Config.Client.Advanced.Debugging.drawLods = !Config.Client.Advanced.Debugging.drawLods;
CONFIG.client().advanced().debugging().setDrawLods(!CONFIG.client().advanced().debugging().getDrawLods());
}
PreDebugToggle = DebugToggle.isDown();
PreDrawToggle = DrawToggle.isDown();
}
}
@@ -19,9 +19,7 @@
package com.seibel.lod.fabric;
import com.seibel.lod.common.Config;
import com.seibel.lod.common.LodCommonMain;
import com.seibel.lod.common.wrappers.config.ConfigGui;
import com.seibel.lod.core.ModInfo;
import com.seibel.lod.core.api.ClientApi;
import com.seibel.lod.fabric.wrappers.DependencySetup;
@@ -1,9 +1,10 @@
package com.seibel.lod.fabric.mixins;
import com.seibel.lod.common.Config;
import com.seibel.lod.common.wrappers.config.ConfigGui;
import com.seibel.lod.common.wrappers.config.TexturedButtonWidget;
import com.seibel.lod.core.ModInfo;
import com.seibel.lod.core.util.SingletonHandler;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton;
import net.minecraft.client.gui.screens.OptionsScreen;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
@@ -32,7 +33,7 @@ public class MixinOptionsScreen extends Screen {
@Inject(at = @At("HEAD"),method = "init")
private void lodconfig$init(CallbackInfo ci) {
if (Config.ShowButton)
if (SingletonHandler.get(ILodConfigWrapperSingleton.class).client().getOptionsButton())
this.addRenderableWidget(new TexturedButtonWidget(
// Where the button is on the screen
this.width / 2 - 180, this.height / 6 - 12,
@@ -19,23 +19,17 @@
package com.seibel.lod.fabric.mixins;
import com.mojang.blaze3d.shaders.Uniform;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Matrix4f;
import com.seibel.lod.common.Config;
import com.seibel.lod.common.clouds.CloudBufferSingleton;
import com.seibel.lod.common.clouds.CloudTexture;
import com.seibel.lod.common.clouds.NoiseCloudHandler;
import com.seibel.lod.common.wrappers.McObjectConverter;
import com.seibel.lod.common.wrappers.config.LodConfigWrapperSingleton;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.core.util.SingletonHandler;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton;
import net.minecraft.client.renderer.LevelRenderer;
import org.lwjgl.opengl.GL11;
import org.lwjgl.opengl.GL20;
import org.lwjgl.opengl.GL32;
import org.lwjgl.system.MemoryStack;
import org.lwjgl.system.MemoryUtil;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -100,14 +94,15 @@ public class MixinWorldRenderer
@Inject(method = "renderClouds", at = @At("HEAD"), cancellable = true)
public void renderClouds(PoseStack poseStack, Matrix4f projectionMatrix, float tickDelta, double cameraX, double cameraY, double cameraZ, CallbackInfo ci) {
if (Config.Client.Graphics.CloudQuality.customClouds) {
ILodConfigWrapperSingleton CONFIG = SingletonHandler.get(ILodConfigWrapperSingleton.class);
if (CONFIG.client().graphics().cloudQuality().getCustomClouds()) {
TextureManager textureManager = Minecraft.getInstance().getTextureManager();
registerClouds(textureManager);
NoiseCloudHandler.update();
if (minecraft.level.dimension() == ClientLevel.OVERWORLD) {
CloudTexture cloudTexture = NoiseCloudHandler.cloudTextures.get(NoiseCloudHandler.cloudTextures.size() - 1);
renderCloudLayer(poseStack, projectionMatrix, tickDelta, cameraX, cameraY, cameraZ, (float) (Config.Client.Graphics.CloudQuality.cloudHeight + 0.01 /* Make clouds a bit higher so it dosnt do janky stuff */), 0, 1, 1, cloudTexture.resourceLocation);
renderCloudLayer(poseStack, projectionMatrix, tickDelta, cameraX, cameraY, cameraZ, (float) (CONFIG.client().graphics().cloudQuality().getCloudHeight() + 0.01 /* Make clouds a bit higher so it dosnt do janky stuff */), 0, 1, 1, cloudTexture.resourceLocation);
}
ci.cancel();
@@ -190,7 +185,7 @@ public class MixinWorldRenderer
}
RenderSystem.setShader(GameRenderer::getPositionTexColorNormalShader);
//Setup custom projection matrix and override minecraft's.
//create needed objects
ILodConfigWrapperSingleton CONFIG = SingletonHandler.get(ILodConfigWrapperSingleton.class);
@@ -212,7 +207,7 @@ public class MixinWorldRenderer
customBuffer.put(14, matFarClip);
//load values from our buffer to the projection matrix
projectionMatrix.load(customBuffer);
if (this.generateClouds) {
this.generateClouds = false;
Tesselator tessellator = Tesselator.getInstance();
@@ -274,8 +269,9 @@ public class MixinWorldRenderer
bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR_NORMAL);
float adjustedCloudY = (float)Math.floor(cloudY / cloudThickness) * cloudThickness;
ILodConfigWrapperSingleton CONFIG = SingletonHandler.get(ILodConfigWrapperSingleton.class);
if (this.prevCloudsType == CloudStatus.FANCY) {
int scaledViewDistance = (int) (((Config.Client.Graphics.CloudQuality.extendClouds ? Config.Client.Graphics.Quality.lodChunkRenderDistance : minecraft.options.renderDistance) / 2) / scale) / 2;
int scaledViewDistance = (int) (((CONFIG.client().graphics().cloudQuality().getExtendClouds() ? CONFIG.client().graphics().quality().getLodChunkRenderDistance() : minecraft.options.renderDistance) / 2) / scale) / 2;
for (int x = -scaledViewDistance - 1; x <= scaledViewDistance; ++x) {
for (int z = -scaledViewDistance - 1; z <= scaledViewDistance; ++z) {
@@ -328,7 +324,7 @@ public class MixinWorldRenderer
}
}
} else {
int scaledRenderDistance = (int) ((Config.Client.Graphics.CloudQuality.extendClouds ? Config.Client.Graphics.Quality.lodChunkRenderDistance : minecraft.options.renderDistance) / scale);
int scaledRenderDistance = (int) ((CONFIG.client().graphics().cloudQuality().getExtendClouds() ? CONFIG.client().graphics().quality().getLodChunkRenderDistance() : minecraft.options.renderDistance) / scale);
for (int x = -scaledRenderDistance; x < scaledRenderDistance; x += scaledRenderDistance) {
for (int z = -scaledRenderDistance; z < scaledRenderDistance; z += scaledRenderDistance) {
@@ -1,8 +1,6 @@
package com.seibel.lod.fabric.wrappers.config;
import com.seibel.lod.common.wrappers.config.ConfigGui;
import com.seibel.lod.core.ModInfo;
import com.seibel.lod.common.Config;
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
import net.fabricmc.api.EnvType;
@@ -19,6 +17,6 @@ public class ModMenuIntegration implements ModMenuApi {
// For the custom config code
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
return parent -> Config.getScreen(parent, "");
return parent -> ConfigGui.getScreen(parent, "");
}
}
@@ -19,9 +19,9 @@
package com.seibel.lod.forge;
import com.seibel.lod.common.Config;
import com.seibel.lod.common.LodCommonMain;
import com.seibel.lod.common.forge.LodForgeMethodCaller;
import com.seibel.lod.common.wrappers.config.ConfigGui;
import com.seibel.lod.common.wrappers.minecraft.MinecraftWrapper;
import com.seibel.lod.core.ModInfo;
import com.seibel.lod.forge.wrappers.ForgeDependencySetup;
@@ -78,7 +78,7 @@ public class ForgeMain implements LodForgeMethodCaller
private void onClientStart(final FMLClientSetupEvent event)
{
ModLoadingContext.get().registerExtensionPoint(ConfigGuiHandler.ConfigGuiFactory.class,
() -> new ConfigGuiHandler.ConfigGuiFactory((client, parent) -> Config.getScreen(parent, "")));
() -> new ConfigGuiHandler.ConfigGuiFactory((client, parent) -> ConfigGui.getScreen(parent, "")));
forgeClientProxy = new ForgeClientProxy();
MinecraftForge.EVENT_BUS.register(forgeClientProxy);
}
@@ -1,9 +1,10 @@
package com.seibel.lod.forge.mixins;
import com.seibel.lod.common.Config;
import com.seibel.lod.common.wrappers.config.ConfigGui;
import com.seibel.lod.common.wrappers.config.TexturedButtonWidget;
import com.seibel.lod.core.ModInfo;
import com.seibel.lod.core.util.SingletonHandler;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton;
import net.minecraft.client.gui.screens.OptionsScreen;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
@@ -32,19 +33,20 @@ public class MixinOptionsScreen extends Screen {
@Inject(at = @At("HEAD"),method = "init")
private void lodconfig$init(CallbackInfo ci) {
if (Config.ShowButton)
if (SingletonHandler.get(ILodConfigWrapperSingleton.class).client().getOptionsButton())
this.addRenderableWidget(new TexturedButtonWidget(
// Where the button is on the screen
this.width / 2 - 180, this.height / 6 - 12,
// Width and height of the button
20, 20,
// Offset
0, 0,
// Some textuary stuff
20, ICON_TEXTURE, 20, 40,
// Create the button and tell it where to go
(buttonWidget) -> Objects.requireNonNull(minecraft).setScreen(ConfigGui.getScreen(this, "client")),
// Add a title to the screen
new TranslatableComponent("text.autoconfig." + ModInfo.ID + ".title")));
// Where the button is on the screen
this.width / 2 - 180, this.height / 6 - 12,
// Width and height of the button
20, 20,
// Offset
0, 0,
// Some textuary stuff
20, ICON_TEXTURE, 20, 40,
// Create the button and tell it where to go
// For now it goes to the client option by default
(buttonWidget) -> Objects.requireNonNull(minecraft).setScreen(ConfigGui.getScreen(this, "client")),
// Add a title to the screen
new TranslatableComponent("text.autoconfig." + ModInfo.ID + ".title")));
}
}
@@ -21,11 +21,11 @@ package com.seibel.lod.forge.mixins;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Matrix4f;
import com.seibel.lod.common.Config;
import com.seibel.lod.common.clouds.CloudBufferSingleton;
import com.seibel.lod.common.clouds.CloudTexture;
import com.seibel.lod.common.clouds.NoiseCloudHandler;
import com.seibel.lod.common.wrappers.McObjectConverter;
import com.seibel.lod.common.wrappers.config.LodConfigWrapperSingleton;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.core.util.SingletonHandler;
import com.seibel.lod.core.wrapperInterfaces.config.ILodConfigWrapperSingleton;
@@ -94,14 +94,15 @@ public class MixinWorldRenderer
@Inject(method = "renderClouds", at = @At("HEAD"), cancellable = true)
public void renderClouds(PoseStack poseStack, Matrix4f projectionMatrix, float tickDelta, double cameraX, double cameraY, double cameraZ, CallbackInfo ci) {
if (Config.Client.Graphics.CloudQuality.customClouds) {
ILodConfigWrapperSingleton CONFIG = SingletonHandler.get(ILodConfigWrapperSingleton.class);
if (CONFIG.client().graphics().cloudQuality().getCustomClouds()) {
TextureManager textureManager = Minecraft.getInstance().getTextureManager();
registerClouds(textureManager);
NoiseCloudHandler.update();
if (minecraft.level.dimension() == ClientLevel.OVERWORLD) {
CloudTexture cloudTexture = NoiseCloudHandler.cloudTextures.get(NoiseCloudHandler.cloudTextures.size() - 1);
renderCloudLayer(poseStack, projectionMatrix, tickDelta, cameraX, cameraY, cameraZ, (float) (Config.Client.Graphics.CloudQuality.cloudHeight + 0.01 /* Make clouds a bit higher so it dosnt do janky stuff */), 0, 1, 1, cloudTexture.resourceLocation);
renderCloudLayer(poseStack, projectionMatrix, tickDelta, cameraX, cameraY, cameraZ, (float) (CONFIG.client().graphics().cloudQuality().getCloudHeight() + 0.01 /* Make clouds a bit higher so it dosnt do janky stuff */), 0, 1, 1, cloudTexture.resourceLocation);
}
ci.cancel();
@@ -184,7 +185,7 @@ public class MixinWorldRenderer
}
RenderSystem.setShader(GameRenderer::getPositionTexColorNormalShader);
//Setup custom projection matrix and override minecraft's.
//create needed objects
ILodConfigWrapperSingleton CONFIG = SingletonHandler.get(ILodConfigWrapperSingleton.class);
@@ -197,8 +198,8 @@ public class MixinWorldRenderer
float nearClip = 0.05f;
float matNearClip = -((farClip + nearClip) / (farClip - nearClip));
float matFarClip = -((2 * farClip * nearClip) / (farClip - nearClip));
//store projectionMatrix values to buffers
//store ProjectionMatrix values to buffers
projectionMatrix.store(customBuffer);
projectionMatrix.store(mcBuffer);
//change values on our custom buffer
@@ -206,7 +207,7 @@ public class MixinWorldRenderer
customBuffer.put(14, matFarClip);
//load values from our buffer to the projection matrix
projectionMatrix.load(customBuffer);
if (this.generateClouds) {
this.generateClouds = false;
Tesselator tessellator = Tesselator.getInstance();
@@ -268,8 +269,9 @@ public class MixinWorldRenderer
bufferBuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_TEX_COLOR_NORMAL);
float adjustedCloudY = (float)Math.floor(cloudY / cloudThickness) * cloudThickness;
ILodConfigWrapperSingleton CONFIG = SingletonHandler.get(ILodConfigWrapperSingleton.class);
if (this.prevCloudsType == CloudStatus.FANCY) {
int scaledViewDistance = (int) (((Config.Client.Graphics.CloudQuality.extendClouds ? Config.Client.Graphics.Quality.lodChunkRenderDistance : minecraft.options.renderDistance) / 2) / scale) / 2;
int scaledViewDistance = (int) (((CONFIG.client().graphics().cloudQuality().getExtendClouds() ? CONFIG.client().graphics().quality().getLodChunkRenderDistance() : minecraft.options.renderDistance) / 2) / scale) / 2;
for (int x = -scaledViewDistance - 1; x <= scaledViewDistance; ++x) {
for (int z = -scaledViewDistance - 1; z <= scaledViewDistance; ++z) {
@@ -322,7 +324,7 @@ public class MixinWorldRenderer
}
}
} else {
int scaledRenderDistance = (int) ((Config.Client.Graphics.CloudQuality.extendClouds ? Config.Client.Graphics.Quality.lodChunkRenderDistance : minecraft.options.renderDistance) / scale);
int scaledRenderDistance = (int) ((CONFIG.client().graphics().cloudQuality().getExtendClouds() ? CONFIG.client().graphics().quality().getLodChunkRenderDistance() : minecraft.options.renderDistance) / scale);
for (int x = -scaledRenderDistance; x < scaledRenderDistance; x += scaledRenderDistance) {
for (int z = -scaledRenderDistance; z < scaledRenderDistance; z += scaledRenderDistance) {