From a8808aac3ee1a01f5291bbb472a3b1d004948239 Mon Sep 17 00:00:00 2001 From: makamys Date: Thu, 30 Jun 2022 17:13:44 +0200 Subject: Move configgy classes to config package --- src/main/java/makamys/neodymium/Config.java | 242 --------------------- src/main/java/makamys/neodymium/GuiFactory.java | 35 --- .../java/makamys/neodymium/MixinConfigPlugin.java | 1 + src/main/java/makamys/neodymium/NdGuiConfig.java | 14 -- src/main/java/makamys/neodymium/Neodymium.java | 3 +- src/main/java/makamys/neodymium/config/Config.java | 242 +++++++++++++++++++++ .../java/makamys/neodymium/config/GuiFactory.java | 35 +++ .../java/makamys/neodymium/config/NdGuiConfig.java | 14 ++ .../java/makamys/neodymium/renderer/ChunkMesh.java | 2 +- .../neodymium/renderer/GPUMemoryManager.java | 2 +- .../java/makamys/neodymium/renderer/MeshQuad.java | 2 +- .../makamys/neodymium/renderer/NeoRenderer.java | 2 +- 12 files changed, 298 insertions(+), 296 deletions(-) delete mode 100644 src/main/java/makamys/neodymium/Config.java delete mode 100644 src/main/java/makamys/neodymium/GuiFactory.java delete mode 100644 src/main/java/makamys/neodymium/NdGuiConfig.java create mode 100644 src/main/java/makamys/neodymium/config/Config.java create mode 100644 src/main/java/makamys/neodymium/config/GuiFactory.java create mode 100644 src/main/java/makamys/neodymium/config/NdGuiConfig.java (limited to 'src') diff --git a/src/main/java/makamys/neodymium/Config.java b/src/main/java/makamys/neodymium/Config.java deleted file mode 100644 index 33539d0..0000000 --- a/src/main/java/makamys/neodymium/Config.java +++ /dev/null @@ -1,242 +0,0 @@ -package makamys.neodymium; - -import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE; -import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE; -import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY; - -import static makamys.neodymium.Neodymium.LOGGER; -import static makamys.neodymium.Neodymium.MODID; - -import java.io.File; -import java.io.IOException; -import java.lang.annotation.Annotation; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.nio.file.FileSystems; -import java.nio.file.Files; -import java.nio.file.WatchEvent; -import java.nio.file.WatchKey; -import java.nio.file.WatchService; -import java.util.ArrayList; -import java.util.List; - -import org.lwjgl.input.Keyboard; - -import cpw.mods.fml.client.config.IConfigElement; -import makamys.neodymium.config.HumanReadableConfigElement; -import net.minecraft.launchwrapper.Launch; -import net.minecraftforge.common.config.ConfigElement; -import net.minecraftforge.common.config.Configuration; -import net.minecraftforge.common.config.Property; - -public class Config { - - @ConfigBoolean(cat="_general", def=true, com="Set this to false to fully disable the mod.") - public static boolean enabled; - @ConfigBoolean(cat="_general", def=false, com="Apply changes made in the config file immediately without having to manually reload the renderer. Off by default because it could potentially cause poor performance on certain platforms.") - public static boolean hotswap; - - @NeedsReload - @ConfigBoolean(cat="render", def=false, com="Simplify chunk meshes so they are made of less vertices. Reduces vertex count at the cost of increasing shader complexity. It seems to reduce performance overall.") - public static boolean simplifyChunkMeshes; - @ConfigBoolean(cat="render", def=true, com="Don't submit faces for rendering if they are facing away from the camera. Reduces GPU workload at the cost of increasing driver overhead. This will improve the framerate most of the time, but may reduce it if you are not fillrate-limited (such as when playing on a small resolution).") - public static boolean cullFaces; - @NeedsReload - @ConfigBoolean(cat="render", def=false, com="Store texture coordinates as shorts instead of floats. Slightly reduces memory usage and might improve performance by small amount. Might affect visuals slightly, but it's only noticable if the texture atlas is huge.") - public static boolean shortUV; - @ConfigInt(cat="render", def=1, min=1, max=Integer.MAX_VALUE, com="Interval (in frames) between the sorting of transparent meshes. Increasing this will reduce CPU usage, but also increase the likelyhood of graphical artifacts appearing when transparent chunks are loaded.") - public static int sortFrequency; - @ConfigBoolean(cat="render", def=true, com="Don't render meshes that are shrouded in fog. OptiFine also does this when fog is turned on, this setting makes Neodymium follow suit.") - public static boolean fogOcclusion; - @ConfigBoolean(cat="render", def=false, com="Do fog occlusion even if fog is disabled.") - public static boolean fogOcclusionWithoutFog; - - @NeedsReload - @ConfigInt(cat="render", def=512, min=1, max=Integer.MAX_VALUE, com="VRAM buffer size (MB). 512 seems to be a good value on Normal render distance. Increase this if you encounter warnings about the VRAM getting full. Does not affect RAM usage.") - public static int VRAMSize; - @ConfigBoolean(cat="render", def=true, com="Render fog? Slightly reduces framerate.") - public static boolean renderFog; - - @ConfigBoolean(cat="misc", def=true, com="Replace splash that says 'OpenGL 1.2!' with 'OpenGL 3.3!'. Just for fun.") - public static boolean replaceOpenGLSplash; - @ConfigBoolean(cat="misc", def=false, com="Don't warn about incompatibilities in chat, and activate renderer even in spite of critical ones.") - public static boolean ignoreIncompatibilities; - - @ConfigInt(cat="debug", def=-1, min=-1, max=Integer.MAX_VALUE) - public static int maxMeshesPerFrame; - @ConfigInt(cat="debug", def=Keyboard.KEY_F4, min=-1, max=Integer.MAX_VALUE, com="The LWJGL keycode of the key that has to be held down while pressing the debug keybinds. Setting this to 0 will make the keybinds usable without holding anything else down. Setting this to -1 will disable debug keybinds entirely.") - public static int debugPrefix; - @ConfigBoolean(cat="debug", def=true, com="Set this to false to stop showing the debug info in the F3 overlay.") - public static boolean showDebugInfo; - @ConfigBoolean(cat="debug", def=false) - public static boolean wireframe; - - private static Configuration config; - private static File configFile = new File(Launch.minecraftHome, "config/" + MODID + ".cfg"); - private static WatchService watcher; - - public static void reloadConfig(ReloadInfo info) { - try { - if(Files.size(configFile.toPath()) == 0) { - // Sometimes the watcher fires twice, and the first time the file is empty. - // I don't know why. This is the workaround. - return; - } - } catch (IOException e) { - e.printStackTrace(); - } - - config = new Configuration(configFile, Neodymium.VERSION); - - config.load(); - - boolean needReload = loadFields(config); - if(info != null) { - info.needReload = needReload; - } - - if(config.hasChanged() || (!config.getLoadedConfigVersion().equals(config.getDefinedConfigVersion()))) { - config.save(); - } - - if(hotswap && watcher == null) { - try { - registerWatchService(); - } catch(IOException e) { - LOGGER.warn("Failed to register watch service: " + e + " (" + e.getMessage() + "). Changes to the config file will not be reflected"); - } - } - } - - public static void reloadConfig() { - reloadConfig(null); - } - - private static boolean loadFields(Configuration config) { - boolean needReload = false; - - for(Field field : Config.class.getFields()) { - if(!Modifier.isStatic(field.getModifiers())) continue; - - NeedsReload needsReload = null; - ConfigBoolean configBoolean = null; - ConfigInt configInt = null; - - for(Annotation an : field.getAnnotations()) { - if(an instanceof NeedsReload) { - needsReload = (NeedsReload) an; - } else if(an instanceof ConfigInt) { - configInt = (ConfigInt) an; - } else if(an instanceof ConfigBoolean) { - configBoolean = (ConfigBoolean) an; - } - } - - if(configBoolean == null && configInt == null) continue; - - Object currentValue = null; - Object newValue = null; - try { - currentValue = field.get(null); - } catch (Exception e) { - LOGGER.error("Failed to get value of field " + field.getName()); - e.printStackTrace(); - continue; - } - - if(configBoolean != null) { - newValue = config.getBoolean(field.getName(), configBoolean.cat(), configBoolean.def(), configBoolean.com()); - } else if(configInt != null) { - newValue = config.getInt(field.getName(), configInt.cat(), configInt.def(), configInt.min(), configInt.max(), configInt.com()); - } - - if(needsReload != null && !newValue.equals(currentValue)) { - needReload = true; - } - - try { - field.set(null, newValue); - } catch (Exception e) { - LOGGER.error("Failed to set value of field " + field.getName()); - e.printStackTrace(); - } - } - - return needReload; - } - - public static boolean reloadIfChanged(ReloadInfo info) { - boolean reloaded = false; - if(watcher != null) { - WatchKey key = watcher.poll(); - - if(key != null) { - for(WatchEvent event: key.pollEvents()) { - if(event.context().toString().equals(configFile.getName())) { - reloadConfig(info); - reloaded = true; - } - } - key.reset(); - } - } - - return reloaded; - } - - private static void registerWatchService() throws IOException { - watcher = FileSystems.getDefault().newWatchService(); - configFile.toPath().getParent().register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY); - } - - public static List getElements() { - List list = new ArrayList(); - for(Property prop : config.getCategory("render").values()) { - list.add(new HumanReadableConfigElement(prop)); - } - return list; - } - - public static void flush() { - if(config.hasChanged()) { - config.save(); - } - } - - @Retention(RetentionPolicy.RUNTIME) - @Target(ElementType.FIELD) - public static @interface NeedsReload { - - } - - @Retention(RetentionPolicy.RUNTIME) - @Target(ElementType.FIELD) - public static @interface ConfigBoolean { - - String cat(); - boolean def(); - String com() default ""; - - } - - @Retention(RetentionPolicy.RUNTIME) - @Target(ElementType.FIELD) - public static @interface ConfigInt { - - String cat(); - int min(); - int max(); - int def(); - String com() default ""; - - } - - public static class ReloadInfo { - boolean needReload; - } - -} diff --git a/src/main/java/makamys/neodymium/GuiFactory.java b/src/main/java/makamys/neodymium/GuiFactory.java deleted file mode 100644 index 7db2e32..0000000 --- a/src/main/java/makamys/neodymium/GuiFactory.java +++ /dev/null @@ -1,35 +0,0 @@ -package makamys.neodymium; - -import java.util.Set; - -import cpw.mods.fml.client.IModGuiFactory; -import cpw.mods.fml.client.config.GuiConfig; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; - -public class GuiFactory implements IModGuiFactory { - - @Override - public void initialize(Minecraft minecraftInstance) { - // TODO Auto-generated method stub - - } - - @Override - public Class mainConfigGuiClass() { - return NdGuiConfig.class; - } - - @Override - public Set runtimeGuiCategories() { - // TODO Auto-generated method stub - return null; - } - - @Override - public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element) { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/src/main/java/makamys/neodymium/MixinConfigPlugin.java b/src/main/java/makamys/neodymium/MixinConfigPlugin.java index b745944..a572d3c 100644 --- a/src/main/java/makamys/neodymium/MixinConfigPlugin.java +++ b/src/main/java/makamys/neodymium/MixinConfigPlugin.java @@ -9,6 +9,7 @@ import org.spongepowered.asm.lib.tree.ClassNode; import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin; import org.spongepowered.asm.mixin.extensibility.IMixinInfo; +import makamys.neodymium.config.Config; import makamys.neodymium.util.OFUtil; public class MixinConfigPlugin implements IMixinConfigPlugin { diff --git a/src/main/java/makamys/neodymium/NdGuiConfig.java b/src/main/java/makamys/neodymium/NdGuiConfig.java deleted file mode 100644 index d61dffd..0000000 --- a/src/main/java/makamys/neodymium/NdGuiConfig.java +++ /dev/null @@ -1,14 +0,0 @@ -package makamys.neodymium; - -import static makamys.neodymium.Neodymium.MODID; - -import cpw.mods.fml.client.config.GuiConfig; -import net.minecraft.client.gui.GuiScreen; - -public class NdGuiConfig extends GuiConfig { - - public NdGuiConfig(GuiScreen parent) { - super(parent, Config.getElements(), MODID, MODID, false, false, "Neodymium render settings"); - } - -} diff --git a/src/main/java/makamys/neodymium/Neodymium.java b/src/main/java/makamys/neodymium/Neodymium.java index 7573dd1..73647cf 100644 --- a/src/main/java/makamys/neodymium/Neodymium.java +++ b/src/main/java/makamys/neodymium/Neodymium.java @@ -22,6 +22,7 @@ import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import makamys.mclib.core.MCLib; import makamys.mclib.core.MCLibModules; +import makamys.neodymium.config.Config; import makamys.neodymium.renderer.NeoRenderer; import makamys.neodymium.util.ChatUtil; import makamys.neodymium.util.OFUtil; @@ -37,7 +38,7 @@ import net.minecraftforge.client.event.RenderGameOverlayEvent.ElementType; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.world.WorldEvent; -@Mod(modid = Neodymium.MODID, version = Neodymium.VERSION, guiFactory = "makamys.neodymium.GuiFactory") +@Mod(modid = Neodymium.MODID, version = Neodymium.VERSION, guiFactory = "makamys.neodymium.config.GuiFactory") public class Neodymium { public static final String MODID = "neodymium"; diff --git a/src/main/java/makamys/neodymium/config/Config.java b/src/main/java/makamys/neodymium/config/Config.java new file mode 100644 index 0000000..7e5318d --- /dev/null +++ b/src/main/java/makamys/neodymium/config/Config.java @@ -0,0 +1,242 @@ +package makamys.neodymium.config; + +import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE; +import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE; +import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY; + +import static makamys.neodymium.Neodymium.LOGGER; +import static makamys.neodymium.Neodymium.MODID; + +import java.io.File; +import java.io.IOException; +import java.lang.annotation.Annotation; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.WatchEvent; +import java.nio.file.WatchKey; +import java.nio.file.WatchService; +import java.util.ArrayList; +import java.util.List; + +import org.lwjgl.input.Keyboard; + +import cpw.mods.fml.client.config.IConfigElement; +import makamys.neodymium.Neodymium; +import net.minecraft.launchwrapper.Launch; +import net.minecraftforge.common.config.ConfigElement; +import net.minecraftforge.common.config.Configuration; +import net.minecraftforge.common.config.Property; + +public class Config { + + @ConfigBoolean(cat="_general", def=true, com="Set this to false to fully disable the mod.") + public static boolean enabled; + @ConfigBoolean(cat="_general", def=false, com="Apply changes made in the config file immediately without having to manually reload the renderer. Off by default because it could potentially cause poor performance on certain platforms.") + public static boolean hotswap; + + @NeedsReload + @ConfigBoolean(cat="render", def=false, com="Simplify chunk meshes so they are made of less vertices. Reduces vertex count at the cost of increasing shader complexity. It seems to reduce performance overall.") + public static boolean simplifyChunkMeshes; + @ConfigBoolean(cat="render", def=true, com="Don't submit faces for rendering if they are facing away from the camera. Reduces GPU workload at the cost of increasing driver overhead. This will improve the framerate most of the time, but may reduce it if you are not fillrate-limited (such as when playing on a small resolution).") + public static boolean cullFaces; + @NeedsReload + @ConfigBoolean(cat="render", def=false, com="Store texture coordinates as shorts instead of floats. Slightly reduces memory usage and might improve performance by small amount. Might affect visuals slightly, but it's only noticable if the texture atlas is huge.") + public static boolean shortUV; + @ConfigInt(cat="render", def=1, min=1, max=Integer.MAX_VALUE, com="Interval (in frames) between the sorting of transparent meshes. Increasing this will reduce CPU usage, but also increase the likelyhood of graphical artifacts appearing when transparent chunks are loaded.") + public static int sortFrequency; + @ConfigBoolean(cat="render", def=true, com="Don't render meshes that are shrouded in fog. OptiFine also does this when fog is turned on, this setting makes Neodymium follow suit.") + public static boolean fogOcclusion; + @ConfigBoolean(cat="render", def=false, com="Do fog occlusion even if fog is disabled.") + public static boolean fogOcclusionWithoutFog; + + @NeedsReload + @ConfigInt(cat="render", def=512, min=1, max=Integer.MAX_VALUE, com="VRAM buffer size (MB). 512 seems to be a good value on Normal render distance. Increase this if you encounter warnings about the VRAM getting full. Does not affect RAM usage.") + public static int VRAMSize; + @ConfigBoolean(cat="render", def=true, com="Render fog? Slightly reduces framerate.") + public static boolean renderFog; + + @ConfigBoolean(cat="misc", def=true, com="Replace splash that says 'OpenGL 1.2!' with 'OpenGL 3.3!'. Just for fun.") + public static boolean replaceOpenGLSplash; + @ConfigBoolean(cat="misc", def=false, com="Don't warn about incompatibilities in chat, and activate renderer even in spite of critical ones.") + public static boolean ignoreIncompatibilities; + + @ConfigInt(cat="debug", def=-1, min=-1, max=Integer.MAX_VALUE) + public static int maxMeshesPerFrame; + @ConfigInt(cat="debug", def=Keyboard.KEY_F4, min=-1, max=Integer.MAX_VALUE, com="The LWJGL keycode of the key that has to be held down while pressing the debug keybinds. Setting this to 0 will make the keybinds usable without holding anything else down. Setting this to -1 will disable debug keybinds entirely.") + public static int debugPrefix; + @ConfigBoolean(cat="debug", def=true, com="Set this to false to stop showing the debug info in the F3 overlay.") + public static boolean showDebugInfo; + @ConfigBoolean(cat="debug", def=false) + public static boolean wireframe; + + private static Configuration config; + private static File configFile = new File(Launch.minecraftHome, "config/" + MODID + ".cfg"); + private static WatchService watcher; + + public static void reloadConfig(ReloadInfo info) { + try { + if(Files.size(configFile.toPath()) == 0) { + // Sometimes the watcher fires twice, and the first time the file is empty. + // I don't know why. This is the workaround. + return; + } + } catch (IOException e) { + e.printStackTrace(); + } + + config = new Configuration(configFile, Neodymium.VERSION); + + config.load(); + + boolean needReload = loadFields(config); + if(info != null) { + info.needReload = needReload; + } + + if(config.hasChanged() || (!config.getLoadedConfigVersion().equals(config.getDefinedConfigVersion()))) { + config.save(); + } + + if(hotswap && watcher == null) { + try { + registerWatchService(); + } catch(IOException e) { + LOGGER.warn("Failed to register watch service: " + e + " (" + e.getMessage() + "). Changes to the config file will not be reflected"); + } + } + } + + public static void reloadConfig() { + reloadConfig(null); + } + + private static boolean loadFields(Configuration config) { + boolean needReload = false; + + for(Field field : Config.class.getFields()) { + if(!Modifier.isStatic(field.getModifiers())) continue; + + NeedsReload needsReload = null; + ConfigBoolean configBoolean = null; + ConfigInt configInt = null; + + for(Annotation an : field.getAnnotations()) { + if(an instanceof NeedsReload) { + needsReload = (NeedsReload) an; + } else if(an instanceof ConfigInt) { + configInt = (ConfigInt) an; + } else if(an instanceof ConfigBoolean) { + configBoolean = (ConfigBoolean) an; + } + } + + if(configBoolean == null && configInt == null) continue; + + Object currentValue = null; + Object newValue = null; + try { + currentValue = field.get(null); + } catch (Exception e) { + LOGGER.error("Failed to get value of field " + field.getName()); + e.printStackTrace(); + continue; + } + + if(configBoolean != null) { + newValue = config.getBoolean(field.getName(), configBoolean.cat(), configBoolean.def(), configBoolean.com()); + } else if(configInt != null) { + newValue = config.getInt(field.getName(), configInt.cat(), configInt.def(), configInt.min(), configInt.max(), configInt.com()); + } + + if(needsReload != null && !newValue.equals(currentValue)) { + needReload = true; + } + + try { + field.set(null, newValue); + } catch (Exception e) { + LOGGER.error("Failed to set value of field " + field.getName()); + e.printStackTrace(); + } + } + + return needReload; + } + + public static boolean reloadIfChanged(ReloadInfo info) { + boolean reloaded = false; + if(watcher != null) { + WatchKey key = watcher.poll(); + + if(key != null) { + for(WatchEvent event: key.pollEvents()) { + if(event.context().toString().equals(configFile.getName())) { + reloadConfig(info); + reloaded = true; + } + } + key.reset(); + } + } + + return reloaded; + } + + private static void registerWatchService() throws IOException { + watcher = FileSystems.getDefault().newWatchService(); + configFile.toPath().getParent().register(watcher, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY); + } + + public static List getElements() { + List list = new ArrayList(); + for(Property prop : config.getCategory("render").values()) { + list.add(new HumanReadableConfigElement(prop)); + } + return list; + } + + public static void flush() { + if(config.hasChanged()) { + config.save(); + } + } + + @Retention(RetentionPolicy.RUNTIME) + @Target(ElementType.FIELD) + public static @interface NeedsReload { + + } + + @Retention(RetentionPolicy.RUNTIME) + @Target(ElementType.FIELD) + public static @interface ConfigBoolean { + + String cat(); + boolean def(); + String com() default ""; + + } + + @Retention(RetentionPolicy.RUNTIME) + @Target(ElementType.FIELD) + public static @interface ConfigInt { + + String cat(); + int min(); + int max(); + int def(); + String com() default ""; + + } + + public static class ReloadInfo { + public boolean needReload; + } + +} diff --git a/src/main/java/makamys/neodymium/config/GuiFactory.java b/src/main/java/makamys/neodymium/config/GuiFactory.java new file mode 100644 index 0000000..2b9bb8e --- /dev/null +++ b/src/main/java/makamys/neodymium/config/GuiFactory.java @@ -0,0 +1,35 @@ +package makamys.neodymium.config; + +import java.util.Set; + +import cpw.mods.fml.client.IModGuiFactory; +import cpw.mods.fml.client.config.GuiConfig; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; + +public class GuiFactory implements IModGuiFactory { + + @Override + public void initialize(Minecraft minecraftInstance) { + // TODO Auto-generated method stub + + } + + @Override + public Class mainConfigGuiClass() { + return NdGuiConfig.class; + } + + @Override + public Set runtimeGuiCategories() { + // TODO Auto-generated method stub + return null; + } + + @Override + public RuntimeOptionGuiHandler getHandlerFor(RuntimeOptionCategoryElement element) { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/main/java/makamys/neodymium/config/NdGuiConfig.java b/src/main/java/makamys/neodymium/config/NdGuiConfig.java new file mode 100644 index 0000000..ff16595 --- /dev/null +++ b/src/main/java/makamys/neodymium/config/NdGuiConfig.java @@ -0,0 +1,14 @@ +package makamys.neodymium.config; + +import static makamys.neodymium.Neodymium.MODID; + +import cpw.mods.fml.client.config.GuiConfig; +import net.minecraft.client.gui.GuiScreen; + +public class NdGuiConfig extends GuiConfig { + + public NdGuiConfig(GuiScreen parent) { + super(parent, Config.getElements(), MODID, MODID, false, false, "Neodymium render settings"); + } + +} diff --git a/src/main/java/makamys/neodymium/renderer/ChunkMesh.java b/src/main/java/makamys/neodymium/renderer/ChunkMesh.java index df4f9f7..ea2bcb9 100644 --- a/src/main/java/makamys/neodymium/renderer/ChunkMesh.java +++ b/src/main/java/makamys/neodymium/renderer/ChunkMesh.java @@ -9,8 +9,8 @@ import java.util.Comparator; import java.util.List; import org.lwjgl.BufferUtils; -import makamys.neodymium.Config; import makamys.neodymium.Neodymium; +import makamys.neodymium.config.Config; import makamys.neodymium.ducks.IWorldRenderer; import makamys.neodymium.util.BufferWriter; import makamys.neodymium.util.OFUtil; diff --git a/src/main/java/makamys/neodymium/renderer/GPUMemoryManager.java b/src/main/java/makamys/neodymium/renderer/GPUMemoryManager.java index 4f13327..fcdec07 100644 --- a/src/main/java/makamys/neodymium/renderer/GPUMemoryManager.java +++ b/src/main/java/makamys/neodymium/renderer/GPUMemoryManager.java @@ -6,8 +6,8 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import makamys.neodymium.Config; import makamys.neodymium.Neodymium; +import makamys.neodymium.config.Config; import makamys.neodymium.renderer.Mesh.GPUStatus; import makamys.neodymium.util.GuiHelper; import makamys.neodymium.util.ChatUtil; diff --git a/src/main/java/makamys/neodymium/renderer/MeshQuad.java b/src/main/java/makamys/neodymium/renderer/MeshQuad.java index d33bc75..ce3aa6f 100644 --- a/src/main/java/makamys/neodymium/renderer/MeshQuad.java +++ b/src/main/java/makamys/neodymium/renderer/MeshQuad.java @@ -7,7 +7,7 @@ import java.util.Locale; import org.lwjgl.util.vector.Vector3f; -import makamys.neodymium.Config; +import makamys.neodymium.config.Config; import makamys.neodymium.util.BufferWriter; /* diff --git a/src/main/java/makamys/neodymium/renderer/NeoRenderer.java b/src/main/java/makamys/neodymium/renderer/NeoRenderer.java index e669ff9..9feb547 100644 --- a/src/main/java/makamys/neodymium/renderer/NeoRenderer.java +++ b/src/main/java/makamys/neodymium/renderer/NeoRenderer.java @@ -25,8 +25,8 @@ import org.lwjgl.opengl.GL11; import org.lwjgl.util.vector.Matrix4f; import org.lwjgl.util.vector.Vector4f; -import makamys.neodymium.Config; import makamys.neodymium.Neodymium; +import makamys.neodymium.config.Config; import makamys.neodymium.ducks.IWorldRenderer; import makamys.neodymium.renderer.Mesh.GPUStatus; import makamys.neodymium.util.GuiHelper; -- cgit