Start adding singleton dependency injection

This commit is contained in:
James Seibel
2021-11-15 22:41:19 -06:00
parent b07543f7a6
commit 2e1ff17ea7
24 changed files with 481 additions and 145 deletions
@@ -22,7 +22,6 @@ package com.seibel.lod.api.lod;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.seibel.lod.api.forge.ForgeConfig;
import com.seibel.lod.core.builders.worldGeneration.LodGenWorker;
import com.seibel.lod.core.objects.lod.LodDimension;
import com.seibel.lod.core.objects.math.Mat4f;
@@ -30,7 +29,9 @@ import com.seibel.lod.core.render.GlProxy;
import com.seibel.lod.core.render.LodRenderer;
import com.seibel.lod.core.util.DetailDistanceUtil;
import com.seibel.lod.core.util.ThreadMapUtil;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.core.wrapperAdapters.SingletonHandler;
import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
import net.minecraft.profiler.IProfiler;
import net.minecraft.util.text.StringTextComponent;
@@ -50,9 +51,9 @@ public class ClientApi
public static LodRenderer renderer = new LodRenderer(ApiShared.lodBufferBuilderFactory);
private final MinecraftWrapper mc = MinecraftWrapper.INSTANCE;
private final EventApi eventApi = EventApi.INSTANCE;
private final ILodConfigWrapperSingleton config = SingletonHandler.get(ILodConfigWrapperSingleton.class);
/**
* there is some setup that should only happen once,
@@ -74,7 +75,7 @@ public class ClientApi
public void renderLods(Mat4f mcModelViewMatrix, Mat4f mcProjectionMatrix, float partialTicks)
{
// comment out when creating a release
// applyConfigOverrides();
applyConfigOverrides();
// clear any out of date objects
mc.clearFrameObjectCache();
@@ -119,7 +120,7 @@ public class ClientApi
// these can't be set until after the buffers are built (in renderer.drawLODs)
// otherwise the buffers may be set to the wrong size, or not changed at all
ApiShared.previousChunkRenderDistance = mc.getRenderDistance();
ApiShared.previousLodRenderDistance = ForgeConfig.CLIENT.graphics.qualityOption.lodChunkRenderDistance.get();
ApiShared.previousLodRenderDistance = config.getClient().getGraphics().getQualityOption().getLodChunkRenderDistance();
}
catch (Exception e)
{
@@ -142,29 +143,9 @@ public class ClientApi
configOverrideReminderPrinted = true;
}
// LodConfig.CLIENT.graphics.drawResolution.set(HorizontalResolution.BLOCK);
// LodConfig.CLIENT.worldGenerator.generationResolution.set(HorizontalResolution.BLOCK);
// requires a world restart?
// LodConfig.CLIENT.worldGenerator.lodQualityMode.set(VerticalQuality.VOXEL);
// LodConfig.CLIENT.graphics.fogQualityOption.fogDistance.set(FogDistance.FAR);
// LodConfig.CLIENT.graphics.fogQualityOption.fogDrawOverride.set(FogDrawOverride.FANCY);
// LodConfig.CLIENT.graphics.fogQualityOption.disableVanillaFog.set(true);
// LodConfig.CLIENT.graphics.shadingMode.set(ShadingMode.DARKEN_SIDES);
// LodConfig.CLIENT.graphics.advancedGraphicsOption.vanillaOverdraw.set(VanillaOverdraw.DYNAMIC);
// LodConfig.CLIENT.graphics.advancedGraphicsOption.gpuUploadMethod.set(GpuUploadMethod.BUFFER_STORAGE);
// LodConfig.CLIENT.worldGenerator.distanceGenerationMode.set(DistanceGenerationMode.SURFACE);
// LodConfig.CLIENT.graphics.qualityOption.lodChunkRenderDistance.set(128);
// LodConfig.CLIENT.worldGenerator.lodDistanceCalculatorType.set(DistanceCalculatorType.LINEAR);
// LodConfig.CLIENT.worldGenerator.allowUnstableFeatureGeneration.set(false);
// LodConfig.CLIENT.buffers.rebuildTimes.set(BufferRebuildTimes.FREQUENT);
ForgeConfig.CLIENT.advancedModOptions.debugging.enableDebugKeybindings.set(true);
// LodConfig.CLIENT.debugging.debugMode.set(DebugMode.SHOW_DETAIL);
config.getClient().getAdvancedModOptions().getDebugging().setEnableDebugKeybindings(true);
}
@@ -33,8 +33,8 @@ import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.core.util.ThreadMapUtil;
import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper;
import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.chunk.ChunkWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
/**
* This holds the methods that should be called
@@ -57,9 +57,9 @@ import com.seibel.lod.core.util.LevelPosUtil;
import com.seibel.lod.core.util.LodThreadFactory;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.core.util.ThreadMapUtil;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.block.BlockPosWrapper;
import com.seibel.lod.wrappers.chunk.ChunkPosWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
/**
* This object creates the buffers that are
@@ -38,12 +38,12 @@ import com.seibel.lod.core.util.ThreadMapUtil;
import com.seibel.lod.core.wrapperAdapters.world.IBiomeWrapper;
import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper;
import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.block.BlockColorWrapper;
import com.seibel.lod.wrappers.block.BlockPosWrapper;
import com.seibel.lod.wrappers.block.BlockShapeWrapper;
import com.seibel.lod.wrappers.chunk.ChunkPosWrapper;
import com.seibel.lod.wrappers.chunk.ChunkWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
/**
* This object is in charge of creating Lod related objects.
@@ -36,8 +36,8 @@ import com.seibel.lod.core.util.LevelPosUtil;
import com.seibel.lod.core.util.LodThreadFactory;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.chunk.ChunkPosWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
import net.minecraftforge.common.WorldWorkerManager;
@@ -16,7 +16,7 @@ import com.seibel.lod.core.enums.rendering.FogDistance;
import com.seibel.lod.core.enums.rendering.FogDrawOverride;
import com.seibel.lod.core.objects.MinDefaultMax;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.wrappers.config.LodConfigWrapper;
import com.seibel.lod.wrappers.config.LodConfigWrapperSingleton;
/**
* Interacts with the LodConfigWrapper to get the config
@@ -82,11 +82,11 @@ public class LodConfig
public HorizontalResolution getDrawResolution()
{
return LodConfigWrapper.CLIENT.graphics.qualityOption.getDrawResolution();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.getDrawResolution();
}
public void setDrawResolution(HorizontalResolution newHorizontalResolution)
{
LodConfigWrapper.CLIENT.graphics.qualityOption.setDrawResolution(newHorizontalResolution);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.setDrawResolution(newHorizontalResolution);
}
@@ -97,11 +97,11 @@ public class LodConfig
public int getLodChunkRenderDistance()
{
return LodConfigWrapper.CLIENT.graphics.qualityOption.getLodChunkRenderDistance();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.getLodChunkRenderDistance();
}
public void setLodChunkRenderDistance(int newLodChunkRenderDistance)
{
LodConfigWrapper.CLIENT.graphics.qualityOption.setLodChunkRenderDistance(newLodChunkRenderDistance);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.setLodChunkRenderDistance(newLodChunkRenderDistance);
}
@@ -117,11 +117,11 @@ public class LodConfig
public VerticalQuality getVerticalQuality()
{
return LodConfigWrapper.CLIENT.graphics.qualityOption.getVerticalQuality();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.getVerticalQuality();
}
public void setVerticalQuality(VerticalQuality newVerticalQuality)
{
LodConfigWrapper.CLIENT.graphics.qualityOption.setVerticalQuality(newVerticalQuality);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.setVerticalQuality(newVerticalQuality);
}
@@ -135,11 +135,11 @@ public class LodConfig
public HorizontalScale getHorizontalScale()
{
return LodConfigWrapper.CLIENT.graphics.qualityOption.getHorizontalScale();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.getHorizontalScale();
}
public void setLodChunkRenderDistance(HorizontalScale newHorizontalScale)
{
LodConfigWrapper.CLIENT.graphics.qualityOption.setHorizontalScale(newHorizontalScale);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.setHorizontalScale(newHorizontalScale);
}
@@ -154,11 +154,11 @@ public class LodConfig
public HorizontalQuality getHorizontalQuality()
{
return LodConfigWrapper.CLIENT.graphics.qualityOption.getHorizontalQuality();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.getHorizontalQuality();
}
public void setLodChunkRenderDistance(HorizontalQuality newHorizontalQuality)
{
LodConfigWrapper.CLIENT.graphics.qualityOption.setHorizontalQuality(newHorizontalQuality);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.qualityOption.setHorizontalQuality(newHorizontalQuality);
}
}
@@ -177,11 +177,11 @@ public class LodConfig
public FogDistance getFogDistance()
{
return LodConfigWrapper.CLIENT.graphics.fogQualityOption.getFogDistance();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.fogQualityOption.getFogDistance();
}
public void setFogDistance(FogDistance newFogDistance)
{
LodConfigWrapper.CLIENT.graphics.fogQualityOption.setFogDistance(newFogDistance);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.fogQualityOption.setFogDistance(newFogDistance);
}
@@ -196,11 +196,11 @@ public class LodConfig
public FogDrawOverride getFogDrawOverride()
{
return LodConfigWrapper.CLIENT.graphics.fogQualityOption.getFogDrawOverride();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.fogQualityOption.getFogDrawOverride();
}
public void setFogDrawOverride(FogDrawOverride newFogDrawOverride)
{
LodConfigWrapper.CLIENT.graphics.fogQualityOption.setFogDrawOverride(newFogDrawOverride);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.fogQualityOption.setFogDrawOverride(newFogDrawOverride);
}
@@ -217,11 +217,11 @@ public class LodConfig
public boolean getDisableVanillaFog()
{
return LodConfigWrapper.CLIENT.graphics.fogQualityOption.getDisableVanillaFog();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.fogQualityOption.getDisableVanillaFog();
}
public void setDisableVanillaFog(boolean newDisableVanillaFog)
{
LodConfigWrapper.CLIENT.graphics.fogQualityOption.setDisableVanillaFog(newDisableVanillaFog);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.fogQualityOption.setDisableVanillaFog(newDisableVanillaFog);
}
}
@@ -244,11 +244,11 @@ public class LodConfig
public LodTemplate getLodTemplate()
{
return LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.getLodTemplate();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.getLodTemplate();
}
public void setLodTemplate(LodTemplate newLodTemplate)
{
LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.setLodTemplate(newLodTemplate);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.setLodTemplate(newLodTemplate);
}
@@ -266,11 +266,11 @@ public class LodConfig
public boolean getDisableDirectionalCulling()
{
return LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.getDisableDirectionalCulling();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.getDisableDirectionalCulling();
}
public void setDisableDirectionalCulling(boolean newDisableDirectionalCulling)
{
LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.setDisableDirectionalCulling(newDisableDirectionalCulling);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.setDisableDirectionalCulling(newDisableDirectionalCulling);
}
@@ -287,11 +287,11 @@ public class LodConfig
public boolean getAlwaysDrawAtMaxQuality()
{
return LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.getAlwaysDrawAtMaxQuality();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.getAlwaysDrawAtMaxQuality();
}
public void setAlwaysDrawAtMaxQuality(boolean newAlwaysDrawAtMaxQuality)
{
LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.setAlwaysDrawAtMaxQuality(newAlwaysDrawAtMaxQuality);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.setAlwaysDrawAtMaxQuality(newAlwaysDrawAtMaxQuality);
}
@@ -310,11 +310,11 @@ public class LodConfig
public VanillaOverdraw getVanillaOverdraw()
{
return LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.getVanillaOverdraw();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.getVanillaOverdraw();
}
public void setVanillaOverdraw(VanillaOverdraw newVanillaOverdraw)
{
LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.setVanillaOverdraw(newVanillaOverdraw);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.setVanillaOverdraw(newVanillaOverdraw);
}
@@ -329,11 +329,11 @@ public class LodConfig
public GpuUploadMethod getGpuUploadMethod()
{
return LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.getGpuUploadMethod();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.getGpuUploadMethod();
}
public void setGpuUploadMethod(GpuUploadMethod newDisableVanillaFog)
{
LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.setGpuUploadMethod(newDisableVanillaFog);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.setGpuUploadMethod(newDisableVanillaFog);
}
@@ -345,11 +345,11 @@ public class LodConfig
public boolean getUseExtendedNearClipPlane()
{
return LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.getUseExtendedNearClipPlane();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.getUseExtendedNearClipPlane();
}
public void setGpuUploadMethod(boolean newUseExtendedNearClipPlane)
{
LodConfigWrapper.CLIENT.graphics.advancedGraphicsOption.setUseExtendedNearClipPlane(newUseExtendedNearClipPlane);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.advancedGraphicsOption.setUseExtendedNearClipPlane(newUseExtendedNearClipPlane);
}
}
}
@@ -379,11 +379,11 @@ public class LodConfig
public GenerationPriority getGenerationPriority()
{
return LodConfigWrapper.CLIENT.worldGenerator.getGenerationPriority();
return LodConfigWrapperSingleton.INSTANCE.LodConfigWrapperSingleton.INSTANCE.worldGenerator.getGenerationPriority();
}
public void setGenerationPriority(GenerationPriority newGenerationPriority)
{
LodConfigWrapper.CLIENT.worldGenerator.setGenerationPriority(newGenerationPriority);
LodConfigWrapperSingleton.INSTANCE.LodConfigWrapperSingleton.INSTANCE.worldGenerator.setGenerationPriority(newGenerationPriority);
}
@@ -437,11 +437,11 @@ public class LodConfig
public DistanceGenerationMode getDistanceGenerationMode()
{
return LodConfigWrapper.CLIENT.worldGenerator.getDistanceGenerationMode();
return LodConfigWrapperSingleton.INSTANCE.LodConfigWrapperSingleton.INSTANCE.worldGenerator.getDistanceGenerationMode();
}
public void setDistanceGenerationMode(DistanceGenerationMode newDistanceGenerationMode)
{
LodConfigWrapper.CLIENT.worldGenerator.setDistanceGenerationMode(newDistanceGenerationMode);
LodConfigWrapperSingleton.INSTANCE.LodConfigWrapperSingleton.INSTANCE.worldGenerator.setDistanceGenerationMode(newDistanceGenerationMode);
}
@@ -466,11 +466,11 @@ public class LodConfig
public boolean getAllowUnstableFeatureGeneration()
{
return LodConfigWrapper.CLIENT.worldGenerator.getAllowUnstableFeatureGeneration();
return LodConfigWrapperSingleton.INSTANCE.LodConfigWrapperSingleton.INSTANCE.worldGenerator.getAllowUnstableFeatureGeneration();
}
public void setAllowUnstableFeatureGeneration(boolean newAllowUnstableFeatureGeneration)
{
LodConfigWrapper.CLIENT.worldGenerator.setAllowUnstableFeatureGeneration(newAllowUnstableFeatureGeneration);
LodConfigWrapperSingleton.INSTANCE.LodConfigWrapperSingleton.INSTANCE.worldGenerator.setAllowUnstableFeatureGeneration(newAllowUnstableFeatureGeneration);
}
@@ -487,11 +487,11 @@ public class LodConfig
public BlockToAvoid getBlockToAvoid()
{
return LodConfigWrapper.CLIENT.worldGenerator.getBlockToAvoid();
return LodConfigWrapperSingleton.INSTANCE.LodConfigWrapperSingleton.INSTANCE.worldGenerator.getBlockToAvoid();
}
public void setBlockToAvoid(BlockToAvoid newBlockToAvoid)
{
LodConfigWrapper.CLIENT.worldGenerator.setBlockToAvoid(newBlockToAvoid);
LodConfigWrapperSingleton.INSTANCE.LodConfigWrapperSingleton.INSTANCE.worldGenerator.setBlockToAvoid(newBlockToAvoid);
}
}
@@ -534,11 +534,11 @@ public class LodConfig
public int getNumberOfWorldGenerationThreads()
{
return LodConfigWrapper.CLIENT.advancedModOptions.threading.getNumberOfWorldGenerationThreads();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.threading.getNumberOfWorldGenerationThreads();
}
public void setNumberOfWorldGenerationThreads(int newNumberOfWorldGenerationThreads)
{
LodConfigWrapper.CLIENT.advancedModOptions.threading.setNumberOfWorldGenerationThreads(newNumberOfWorldGenerationThreads);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.threading.setNumberOfWorldGenerationThreads(newNumberOfWorldGenerationThreads);
}
@@ -555,11 +555,11 @@ public class LodConfig
public int getNumberOfBufferBuilderThreads()
{
return LodConfigWrapper.CLIENT.advancedModOptions.threading.getNumberOfBufferBuilderThreads();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.threading.getNumberOfBufferBuilderThreads();
}
public void setNumberOfBufferBuilderThreads(int newNumberOfWorldBuilderThreads)
{
LodConfigWrapper.CLIENT.advancedModOptions.threading.setNumberOfBufferBuilderThreads(newNumberOfWorldBuilderThreads);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.threading.setNumberOfBufferBuilderThreads(newNumberOfWorldBuilderThreads);
}
}
@@ -583,11 +583,11 @@ public class LodConfig
public boolean getDrawLods()
{
return LodConfigWrapper.CLIENT.advancedModOptions.debugging.getDrawLods();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.debugging.getDrawLods();
}
public void setDrawLods(boolean newDrawLods)
{
LodConfigWrapper.CLIENT.advancedModOptions.debugging.setDrawLods(newDrawLods);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.debugging.setDrawLods(newDrawLods);
}
@@ -600,11 +600,11 @@ public class LodConfig
public DebugMode getDebugMode()
{
return LodConfigWrapper.CLIENT.advancedModOptions.debugging.getDebugMode();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.debugging.getDebugMode();
}
public void setDebugMode(DebugMode newDebugMode)
{
LodConfigWrapper.CLIENT.advancedModOptions.debugging.setDebugMode(newDebugMode);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.debugging.setDebugMode(newDebugMode);
}
@@ -616,11 +616,11 @@ public class LodConfig
public boolean getEnableDebugKeybindings()
{
return LodConfigWrapper.CLIENT.advancedModOptions.debugging.getEnableDebugKeybindings();
return LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.debugging.getEnableDebugKeybindings();
}
public void setEnableDebugKeybindings(boolean newEnableDebugKeybindings)
{
LodConfigWrapper.CLIENT.advancedModOptions.debugging.setEnableDebugKeybindings(newEnableDebugKeybindings);
LodConfigWrapperSingleton.INSTANCE.getClient().LodConfigWrapperSingleton.INSTANCE.debugging.setEnableDebugKeybindings(newEnableDebugKeybindings);
}
}
@@ -638,11 +638,11 @@ public class LodConfig
public BufferRebuildTimes getDrawLods()
{
return LodConfigWrapper.CLIENT.advancedModOptions.buffers.getRebuildTimes();
return LodConfigWrapperSingleton.INSTANCE.getClient().getAdvancedModOptions().getBuffers().getRebuildTimes();
}
public void setDrawLods(BufferRebuildTimes newBufferRebuildTimes)
{
LodConfigWrapper.CLIENT.advancedModOptions.buffers.setRebuildTimes(newBufferRebuildTimes);
LodConfigWrapperSingleton.INSTANCE.getClient().getAdvancedModOptions().getBuffers().setRebuildTimes(newBufferRebuildTimes);
}
}
}
@@ -25,7 +25,7 @@ import java.lang.reflect.Method;
import com.seibel.lod.api.lod.ClientApi;
import com.seibel.lod.core.enums.rendering.FogQuality;
import com.seibel.lod.core.objects.math.Mat4f;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
/**
* This object is used to get variables from methods
@@ -30,8 +30,8 @@ import com.seibel.lod.core.objects.math.Vec3i;
import com.seibel.lod.core.util.ColorUtil;
import com.seibel.lod.core.util.DataPointUtil;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.block.BlockPosWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
/**
* Similar to Minecraft's AxisAlignedBoundingBox.
@@ -38,8 +38,8 @@ import com.seibel.lod.core.util.LodThreadFactory;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper;
import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.chunk.ChunkPosWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
@@ -33,7 +33,7 @@ import com.seibel.lod.api.lod.ClientApi;
import com.seibel.lod.core.enums.rendering.GlProxyContext;
import com.seibel.lod.core.render.shader.LodShader;
import com.seibel.lod.core.render.shader.LodShaderProgram;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
/**
* A singleton that holds references to different openGL contexts
@@ -45,10 +45,10 @@ import com.seibel.lod.core.render.shader.LodShaderProgram;
import com.seibel.lod.core.util.DetailDistanceUtil;
import com.seibel.lod.core.util.LevelPosUtil;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.wrappers.McObjectConverter;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.block.BlockPosWrapper;
import com.seibel.lod.wrappers.chunk.ChunkPosWrapper;
import com.seibel.lod.wrappers.minecraft.McObjectConverter;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.GameRenderer;
@@ -20,9 +20,9 @@
package com.seibel.lod.core.render;
import com.seibel.lod.core.util.LodUtil;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.block.BlockPosWrapper;
import com.seibel.lod.wrappers.chunk.ChunkPosWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.vector.Vector3f;
@@ -21,7 +21,7 @@ package com.seibel.lod.core.util;
import java.awt.Color;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
/**
*
@@ -23,7 +23,7 @@ import com.seibel.lod.api.forge.ForgeConfig;
import com.seibel.lod.core.enums.config.DistanceGenerationMode;
import com.seibel.lod.core.enums.config.HorizontalQuality;
import com.seibel.lod.core.enums.config.HorizontalResolution;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
/**
*
@@ -34,9 +34,9 @@ import com.seibel.lod.core.objects.opengl.DefaultLodVertexFormats;
import com.seibel.lod.core.objects.opengl.LodVertexFormat;
import com.seibel.lod.core.wrapperAdapters.world.IDimensionTypeWrapper;
import com.seibel.lod.core.wrapperAdapters.world.IWorldWrapper;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.block.BlockPosWrapper;
import com.seibel.lod.wrappers.chunk.ChunkPosWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
import net.minecraft.client.multiplayer.ServerData;
import net.minecraft.client.renderer.WorldRenderer;
@@ -0,0 +1,75 @@
package com.seibel.lod.core.wrapperAdapters;
import java.util.HashMap;
import java.util.Map;
/**
* This class takes care of dependency injection
* for singletons.
*
* @author James Seibel
* @version 11-15-2021
*/
public class SingletonHandler
{
private static final Map<Class<?>, Object> singletons = new HashMap<Class<?>, Object>();
/**
* Adds the given singleton so it can be referenced later.
*
* @param objectClass
* @param singletonReference
* @throws IllegalStateException
*/
public static void bind(Class<?> interfaceClass, Object singletonReference) throws IllegalStateException
{
// make sure we haven't already bound this singleton
if (singletons.containsKey(interfaceClass))
{
throw new IllegalStateException("The singleton [" + interfaceClass.getSimpleName() + "] has already been bound.");
}
// make sure the given singleton implements the interface
boolean singletonImplementsInterface = false;
for (Class<?> singletonInterface : singletonReference.getClass().getInterfaces())
{
if (singletonInterface.equals(interfaceClass))
{
singletonImplementsInterface = true;
break;
}
}
if (!singletonImplementsInterface)
{
throw new IllegalStateException("The singleton [" + interfaceClass.getSimpleName() + "] doesn't implement the interface [" + interfaceClass.getSimpleName() + "].");
}
singletons.put(interfaceClass, singletonReference);
}
/**
* Returns a singleton of type T
* if one has been bound.
*
* @param <T> class of the singleton
* @param objectClass class of the singleton, but as a parameter!
* @return the singleton of type T
* @throws NullPointerException if no singleton of type T has been bound.
* @throws ClassCastException if the singleton isn't able to be cast to type T. (this shouldn't normally happen, unless the bound object changed somehow)
*/
@SuppressWarnings("unchecked")
public static <T> T get(Class<T> objectClass) throws NullPointerException, ClassCastException
{
if (!singletons.containsKey(objectClass))
{
throw new NullPointerException("The singleton [" + objectClass.getSimpleName() + "] was never bound.");
}
return (T) singletons.get(objectClass);
}
}
@@ -0,0 +1,163 @@
package com.seibel.lod.core.wrapperAdapters.config;
import com.seibel.lod.core.enums.config.BlockToAvoid;
import com.seibel.lod.core.enums.config.BufferRebuildTimes;
import com.seibel.lod.core.enums.config.DistanceGenerationMode;
import com.seibel.lod.core.enums.config.GenerationPriority;
import com.seibel.lod.core.enums.config.GpuUploadMethod;
import com.seibel.lod.core.enums.config.HorizontalQuality;
import com.seibel.lod.core.enums.config.HorizontalResolution;
import com.seibel.lod.core.enums.config.HorizontalScale;
import com.seibel.lod.core.enums.config.LodTemplate;
import com.seibel.lod.core.enums.config.VanillaOverdraw;
import com.seibel.lod.core.enums.config.VerticalQuality;
import com.seibel.lod.core.enums.rendering.DebugMode;
import com.seibel.lod.core.enums.rendering.FogDistance;
import com.seibel.lod.core.enums.rendering.FogDrawOverride;
/**
* This holds the config defaults and setters/getters
* that should be hooked into the host mod loader (Fabric, Forge, etc.).
*
* @author James Seibel
* @version 11-15-2021
*/
public interface ILodConfigWrapperSingleton
{
public ILodConfigWrapperSingleton getInstance();
public IClient getClient();
public interface IClient
{
public IGraphics getGraphics();
public IWorldGenerator getWorldGenerator();
public IAdvancedModOptions getAdvancedModOptions();
//==================//
// Graphics Configs //
//==================//
public interface IGraphics
{
public IQualityOption getQualityOption();
public IFogQualityOption getFogQualityOption();
public IAdvancedGraphicsOption getAdvancedGraphicsOption();
public interface IQualityOption
{
public HorizontalResolution getDrawResolution();
public void setDrawResolution(HorizontalResolution newHorizontalResolution);
public int getLodChunkRenderDistance();
public void setLodChunkRenderDistance(int newLodChunkRenderDistance);
public VerticalQuality getVerticalQuality();
public void setVerticalQuality(VerticalQuality newVerticalQuality);
public HorizontalScale getHorizontalScale();
public void setHorizontalScale(HorizontalScale newHorizontalScale);
public HorizontalQuality getHorizontalQuality();
public void setHorizontalQuality(HorizontalQuality newHorizontalQuality);
}
public interface IFogQualityOption
{
public FogDistance getFogDistance();
public void setFogDistance(FogDistance newFogDistance);
public FogDrawOverride getFogDrawOverride();
public void setFogDrawOverride(FogDrawOverride newFogDrawOverride);
public boolean getDisableVanillaFog();
public void setDisableVanillaFog(boolean newDisableVanillaFog);
}
public interface IAdvancedGraphicsOption
{
public LodTemplate getLodTemplate();
public void setLodTemplate(LodTemplate newLodTemplate);
public boolean getDisableDirectionalCulling();
public void setDisableDirectionalCulling(boolean newDisableDirectionalCulling);
public boolean getAlwaysDrawAtMaxQuality();
public void setAlwaysDrawAtMaxQuality(boolean newAlwaysDrawAtMaxQuality);
public VanillaOverdraw getVanillaOverdraw();
public void setVanillaOverdraw(VanillaOverdraw newVanillaOverdraw);
public GpuUploadMethod getGpuUploadMethod();
public void setGpuUploadMethod(GpuUploadMethod newDisableVanillaFog);
public boolean getUseExtendedNearClipPlane();
public void setUseExtendedNearClipPlane(boolean newUseExtendedNearClipPlane);
}
}
//========================//
// WorldGenerator Configs //
//========================//
public interface IWorldGenerator
{
public GenerationPriority getGenerationPriority();
public void setGenerationPriority(GenerationPriority newGenerationPriority);
public DistanceGenerationMode getDistanceGenerationMode();
public void setDistanceGenerationMode(DistanceGenerationMode newDistanceGenerationMode);
public boolean getAllowUnstableFeatureGeneration();
public void setAllowUnstableFeatureGeneration(boolean newAllowUnstableFeatureGeneration);
public BlockToAvoid getBlockToAvoid();
public void setBlockToAvoid(BlockToAvoid newBlockToAvoid);
}
//============================//
// AdvancedModOptions Configs //
//============================//
public interface IAdvancedModOptions
{
public IThreading getThreading();
public IDebugging getDebugging();
public IBuffers getBuffers();
public interface IThreading
{
public int getNumberOfWorldGenerationThreads();
public void setNumberOfWorldGenerationThreads(int newNumberOfWorldGenerationThreads);
public int getNumberOfBufferBuilderThreads();
public void setNumberOfBufferBuilderThreads(int newNumberOfWorldBuilderThreads);
}
public interface IDebugging
{
public boolean getDrawLods();
public void setDrawLods(boolean newDrawLods);
public DebugMode getDebugMode();
public void setDebugMode(DebugMode newDebugMode);
public boolean getEnableDebugKeybindings();
public void setEnableDebugKeybindings(boolean newEnableDebugKeybindings);
}
public interface IBuffers
{
public BufferRebuildTimes getRebuildTimes();
public void setRebuildTimes(BufferRebuildTimes newBufferRebuildTimes);
}
}
}
}
@@ -28,7 +28,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.seibel.lod.api.lod.ClientApi;
import com.seibel.lod.core.objects.math.Mat4f;
import com.seibel.lod.wrappers.McObjectConverter;
import com.seibel.lod.wrappers.minecraft.McObjectConverter;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.WorldRenderer;
@@ -0,0 +1,20 @@
package com.seibel.lod.wrappers;
import com.seibel.lod.core.wrapperAdapters.SingletonHandler;
import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton;
import com.seibel.lod.wrappers.config.LodConfigWrapperSingleton;
/**
* Binds all necessary singletons so we
* can access them in Core.
*
* @author James Seibel
* @version 11-15-2021
*/
public class DependencySetup
{
static
{
SingletonHandler.bind(ILodConfigWrapperSingleton.class, LodConfigWrapperSingleton.INSTANCE);
}
}
@@ -7,7 +7,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import com.seibel.lod.core.util.ColorUtil;
import com.seibel.lod.wrappers.MinecraftWrapper;
import com.seibel.lod.wrappers.minecraft.MinecraftWrapper;
import net.minecraft.block.AbstractPlantBlock;
import net.minecraft.block.AbstractTopPlantBlock;
@@ -15,6 +15,7 @@ import com.seibel.lod.core.enums.config.VerticalQuality;
import com.seibel.lod.core.enums.rendering.DebugMode;
import com.seibel.lod.core.enums.rendering.FogDistance;
import com.seibel.lod.core.enums.rendering.FogDrawOverride;
import com.seibel.lod.core.wrapperAdapters.config.ILodConfigWrapperSingleton;
/**
* This holds the config defaults and setters/getters
@@ -23,16 +24,48 @@ import com.seibel.lod.core.enums.rendering.FogDrawOverride;
* @author James Seibel
* @version 11-14-2021
*/
public class LodConfigWrapper
public class LodConfigWrapperSingleton implements ILodConfigWrapperSingleton
{
public static final Client CLIENT = new Client();
public static class Client
public static final LodConfigWrapperSingleton INSTANCE = new LodConfigWrapperSingleton();
@Override
public ILodConfigWrapperSingleton getInstance()
{
public final Graphics graphics;
public final WorldGenerator worldGenerator;
public final AdvancedModOptions advancedModOptions;
return INSTANCE;
}
private static final Client client = new Client();
@Override
public IClient getClient()
{
return client;
}
public static class Client implements IClient
{
public final IGraphics graphics;
public final IWorldGenerator worldGenerator;
public final IAdvancedModOptions advancedModOptions;
@Override
public IGraphics getGraphics()
{
return graphics;
}
@Override
public IWorldGenerator getWorldGenerator()
{
return worldGenerator;
}
@Override
public IAdvancedModOptions getAdvancedModOptions()
{
return advancedModOptions;
}
//================//
@@ -49,12 +82,32 @@ public class LodConfigWrapper
//==================//
// Graphics Configs //
//==================//
public static class Graphics
public static class Graphics implements IGraphics
{
public final IQualityOption qualityOption;
public final IFogQualityOption fogQualityOption;
public final IAdvancedGraphicsOption advancedGraphicsOption;
@Override
public IQualityOption getQualityOption()
{
return qualityOption;
}
@Override
public IFogQualityOption getFogQualityOption()
{
return fogQualityOption;
}
@Override
public IAdvancedGraphicsOption getAdvancedGraphicsOption()
{
return advancedGraphicsOption;
}
public final QualityOption qualityOption;
public final FogQualityOption fogQualityOption;
public final AdvancedGraphicsOption advancedGraphicsOption;
Graphics()
{
@@ -64,57 +117,62 @@ public class LodConfigWrapper
}
public static class QualityOption
public static class QualityOption implements IQualityOption
{
@Override
public HorizontalResolution getDrawResolution()
{
return ForgeConfig.CLIENT.graphics.qualityOption.drawResolution.get();
}
@Override
public void setDrawResolution(HorizontalResolution newHorizontalResolution)
{
ForgeConfig.CLIENT.graphics.qualityOption.drawResolution.set(newHorizontalResolution);
}
@Override
public int getLodChunkRenderDistance()
{
return ForgeConfig.CLIENT.graphics.qualityOption.lodChunkRenderDistance.get();
}
@Override
public void setLodChunkRenderDistance(int newLodChunkRenderDistance)
{
ForgeConfig.CLIENT.graphics.qualityOption.lodChunkRenderDistance.set(newLodChunkRenderDistance);
}
@Override
public VerticalQuality getVerticalQuality()
{
return ForgeConfig.CLIENT.graphics.qualityOption.verticalQuality.get();
}
@Override
public void setVerticalQuality(VerticalQuality newVerticalQuality)
{
ForgeConfig.CLIENT.graphics.qualityOption.verticalQuality.set(newVerticalQuality);
}
@Override
public HorizontalScale getHorizontalScale()
{
return ForgeConfig.CLIENT.graphics.qualityOption.horizontalScale.get();
}
@Override
public void setHorizontalScale(HorizontalScale newHorizontalScale)
{
ForgeConfig.CLIENT.graphics.qualityOption.horizontalScale.set(newHorizontalScale);
}
@Override
public HorizontalQuality getHorizontalQuality()
{
return ForgeConfig.CLIENT.graphics.qualityOption.horizontalQuality.get();
}
@Override
public void setHorizontalQuality(HorizontalQuality newHorizontalQuality)
{
ForgeConfig.CLIENT.graphics.qualityOption.horizontalQuality.set(newHorizontalQuality);
@@ -122,35 +180,38 @@ public class LodConfigWrapper
}
public static class FogQualityOption
public static class FogQualityOption implements IFogQualityOption
{
@Override
public FogDistance getFogDistance()
{
return ForgeConfig.CLIENT.graphics.fogQualityOption.fogDistance.get();
}
@Override
public void setFogDistance(FogDistance newFogDistance)
{
ForgeConfig.CLIENT.graphics.fogQualityOption.fogDistance.set(newFogDistance);
}
@Override
public FogDrawOverride getFogDrawOverride()
{
return ForgeConfig.CLIENT.graphics.fogQualityOption.fogDrawOverride.get();
}
@Override
public void setFogDrawOverride(FogDrawOverride newFogDrawOverride)
{
ForgeConfig.CLIENT.graphics.fogQualityOption.fogDrawOverride.set(newFogDrawOverride);
}
@Override
public boolean getDisableVanillaFog()
{
return ForgeConfig.CLIENT.graphics.fogQualityOption.disableVanillaFog.get();
}
@Override
public void setDisableVanillaFog(boolean newDisableVanillaFog)
{
ForgeConfig.CLIENT.graphics.fogQualityOption.disableVanillaFog.set(newDisableVanillaFog);
@@ -158,68 +219,74 @@ public class LodConfigWrapper
}
public static class AdvancedGraphicsOption
public static class AdvancedGraphicsOption implements IAdvancedGraphicsOption
{
@Override
public LodTemplate getLodTemplate()
{
return ForgeConfig.CLIENT.graphics.advancedGraphicsOption.lodTemplate.get();
}
@Override
public void setLodTemplate(LodTemplate newLodTemplate)
{
ForgeConfig.CLIENT.graphics.advancedGraphicsOption.lodTemplate.set(newLodTemplate);
}
@Override
public boolean getDisableDirectionalCulling()
{
return ForgeConfig.CLIENT.graphics.advancedGraphicsOption.disableDirectionalCulling.get();
}
@Override
public void setDisableDirectionalCulling(boolean newDisableDirectionalCulling)
{
ForgeConfig.CLIENT.graphics.advancedGraphicsOption.disableDirectionalCulling.set(newDisableDirectionalCulling);
}
@Override
public boolean getAlwaysDrawAtMaxQuality()
{
return ForgeConfig.CLIENT.graphics.advancedGraphicsOption.alwaysDrawAtMaxQuality.get();
}
@Override
public void setAlwaysDrawAtMaxQuality(boolean newAlwaysDrawAtMaxQuality)
{
ForgeConfig.CLIENT.graphics.advancedGraphicsOption.alwaysDrawAtMaxQuality.set(newAlwaysDrawAtMaxQuality);
}
@Override
public VanillaOverdraw getVanillaOverdraw()
{
return ForgeConfig.CLIENT.graphics.advancedGraphicsOption.vanillaOverdraw.get();
}
@Override
public void setVanillaOverdraw(VanillaOverdraw newVanillaOverdraw)
{
ForgeConfig.CLIENT.graphics.advancedGraphicsOption.vanillaOverdraw.set(newVanillaOverdraw);
}
@Override
public GpuUploadMethod getGpuUploadMethod()
{
return ForgeConfig.CLIENT.graphics.advancedGraphicsOption.gpuUploadMethod.get();
}
@Override
public void setGpuUploadMethod(GpuUploadMethod newDisableVanillaFog)
{
ForgeConfig.CLIENT.graphics.advancedGraphicsOption.gpuUploadMethod.set(newDisableVanillaFog);
}
@Override
public boolean getUseExtendedNearClipPlane()
{
return ForgeConfig.CLIENT.graphics.advancedGraphicsOption.useExtendedNearClipPlane.get();
}
@Override
public void setUseExtendedNearClipPlane(boolean newUseExtendedNearClipPlane)
{
ForgeConfig.CLIENT.graphics.advancedGraphicsOption.useExtendedNearClipPlane.set(newUseExtendedNearClipPlane);
@@ -233,46 +300,50 @@ public class LodConfigWrapper
//========================//
// WorldGenerator Configs //
//========================//
public static class WorldGenerator
public static class WorldGenerator implements IWorldGenerator
{
@Override
public GenerationPriority getGenerationPriority()
{
return ForgeConfig.CLIENT.worldGenerator.generationPriority.get();
}
@Override
public void setGenerationPriority(GenerationPriority newGenerationPriority)
{
ForgeConfig.CLIENT.worldGenerator.generationPriority.set(newGenerationPriority);
}
@Override
public DistanceGenerationMode getDistanceGenerationMode()
{
return ForgeConfig.CLIENT.worldGenerator.distanceGenerationMode.get();
}
@Override
public void setDistanceGenerationMode(DistanceGenerationMode newDistanceGenerationMode)
{
ForgeConfig.CLIENT.worldGenerator.distanceGenerationMode.set(newDistanceGenerationMode);
}
@Override
public boolean getAllowUnstableFeatureGeneration()
{
return ForgeConfig.CLIENT.worldGenerator.allowUnstableFeatureGeneration.get();
}
@Override
public void setAllowUnstableFeatureGeneration(boolean newAllowUnstableFeatureGeneration)
{
ForgeConfig.CLIENT.worldGenerator.allowUnstableFeatureGeneration.set(newAllowUnstableFeatureGeneration);
}
@Override
public BlockToAvoid getBlockToAvoid()
{
return ForgeConfig.CLIENT.worldGenerator.blockToAvoid.get();
}
@Override
public void setBlockToAvoid(BlockToAvoid newBlockToAvoid)
{
ForgeConfig.CLIENT.worldGenerator.blockToAvoid.set(newBlockToAvoid);
@@ -285,12 +356,33 @@ public class LodConfigWrapper
//============================//
// AdvancedModOptions Configs //
//============================//
public static class AdvancedModOptions
public static class AdvancedModOptions implements IAdvancedModOptions
{
public final IThreading threading;
public final IDebugging debugging;
public final IBuffers buffers;
@Override
public IThreading getThreading()
{
return threading;
}
@Override
public IDebugging getDebugging()
{
return debugging;
}
@Override
public IBuffers getBuffers()
{
return buffers;
}
public final Threading threading;
public final Debugging debugging;
public final Buffers buffers;
public AdvancedModOptions()
{
@@ -299,65 +391,70 @@ public class LodConfigWrapper
buffers = new Buffers();
}
public static class Threading
public static class Threading implements IThreading
{
@Override
public int getNumberOfWorldGenerationThreads()
{
return ForgeConfig.CLIENT.advancedModOptions.threading.numberOfWorldGenerationThreads.get();
}
@Override
public void setNumberOfWorldGenerationThreads(int newNumberOfWorldGenerationThreads)
{
ForgeConfig.CLIENT.advancedModOptions.threading.numberOfWorldGenerationThreads.set(newNumberOfWorldGenerationThreads);
}
@Override
public int getNumberOfBufferBuilderThreads()
{
return ForgeConfig.CLIENT.advancedModOptions.threading.numberOfBufferBuilderThreads.get();
}
@Override
public void setNumberOfBufferBuilderThreads(int newNumberOfWorldBuilderThreads)
{
ForgeConfig.CLIENT.advancedModOptions.threading.numberOfBufferBuilderThreads.set(newNumberOfWorldBuilderThreads);
}
}
//===============//
// Debug Options //
//===============//
public static class Debugging
public static class Debugging implements IDebugging
{
@Override
public boolean getDrawLods()
{
return ForgeConfig.CLIENT.advancedModOptions.debugging.drawLods.get();
}
@Override
public void setDrawLods(boolean newDrawLods)
{
ForgeConfig.CLIENT.advancedModOptions.debugging.drawLods.set(newDrawLods);
}
@Override
public DebugMode getDebugMode()
{
return ForgeConfig.CLIENT.advancedModOptions.debugging.debugMode.get();
}
@Override
public void setDebugMode(DebugMode newDebugMode)
{
ForgeConfig.CLIENT.advancedModOptions.debugging.debugMode.set(newDebugMode);
}
@Override
public boolean getEnableDebugKeybindings()
{
return ForgeConfig.CLIENT.advancedModOptions.debugging.enableDebugKeybindings.get();
}
@Override
public void setEnableDebugKeybindings(boolean newEnableDebugKeybindings)
{
ForgeConfig.CLIENT.advancedModOptions.debugging.enableDebugKeybindings.set(newEnableDebugKeybindings);
@@ -365,19 +462,19 @@ public class LodConfigWrapper
}
public static class Buffers
public static class Buffers implements IBuffers
{
@Override
public BufferRebuildTimes getRebuildTimes()
{
return ForgeConfig.CLIENT.advancedModOptions.buffers.rebuildTimes.get();
}
@Override
public void setRebuildTimes(BufferRebuildTimes newBufferRebuildTimes)
{
ForgeConfig.CLIENT.advancedModOptions.buffers.rebuildTimes.set(newBufferRebuildTimes);
}
}
}
}
}
}
}
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.wrappers;
package com.seibel.lod.wrappers.minecraft;
import java.nio.FloatBuffer;
@@ -17,7 +17,7 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.seibel.lod.wrappers;
package com.seibel.lod.wrappers.minecraft;
import java.awt.Color;
import java.io.File;
@@ -1,4 +1,4 @@
package com.seibel.lod.wrappers;
package com.seibel.lod.wrappers.misc;
import net.minecraft.client.renderer.texture.NativeImage;