diff options
34 files changed, 735 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..33068bf --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +# eclipse +bin +*.launch +.settings +.metadata +.classpath +.project + +# idea +out +*.ipr +*.iws +*.iml +.idea + +# gradle +build +.gradle + +# other +eclipse +run +build - Copy.gradle diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..4bb78e7 --- /dev/null +++ b/build.gradle @@ -0,0 +1,86 @@ +plugins { + id "java" + id "com.github.johnrengelman.shadow" version "6.1.0" + id "net.minecraftforge.gradle.forge" version "6f53277" + id "org.jetbrains.kotlin.jvm" version "1.5.31" +} + +group "io.github.dediamondpro" +version "1.0-SNAPSHOT" +archivesBaseName = "OneConfig" + +sourceCompatibility = targetCompatibility = 1.8 +compileJava.options.encoding = 'UTF-8' + +minecraft { + version = "1.8.9-11.15.1.2318-1.8.9" + runDir = "run" + mappings = "stable_22" + makeObfSourceJar = false +} + +configurations { + implementation.extendsFrom(include) +} + +repositories { + maven { url "https://repo.sk1er.club/repository/maven-public" } + maven { url 'https://jitpack.io' } +} + +dependencies { + +} + +/** + * This task simply replaces the `${version}` and `${mcversion}` properties in the mcmod.info with the data from Gradle + */ +processResources { + // this will ensure that this task is redone when the versions change. + inputs.property "version", project.version + inputs.property "mcversion", project.minecraft.version + + // replace stuff in mcmod.info, nothing else + from(sourceSets.main.resources.srcDirs) { + include 'mcmod.info' + + // replace version and mcversion + expand 'version': project.version, 'mcversion': project.minecraft.version + } + + // copy everything else, thats not the mcmod.info + from(sourceSets.main.resources.srcDirs) { + exclude 'mcmod.info' + } +} + +/** + * This task simply moves resources so they can be accessed at runtime, Forge is quite weird isn't it + */ +task moveResources { + doLast { + ant.move file: "${buildDir}/resources/main", + todir: "${buildDir}/classes/java" + } +} + +moveResources.dependsOn processResources +classes.dependsOn moveResources + +shadowJar { + archiveClassifier.set('dep') + configurations = [project.configurations.include] + duplicatesStrategy DuplicatesStrategy.EXCLUDE +} + +compileKotlin { + kotlinOptions { + jvmTarget = "1.8" + } +} + +reobf { shadowJar { mappingType = "SEARGE" } } +tasks.reobfShadowJar.mustRunAfter shadowJar +afterEvaluate { + build.dependsOn reobfShadowJar +}
\ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar Binary files differnew file mode 100644 index 0000000..7454180 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..442d913 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MSYS* | MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..9c76f81 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,30 @@ +pluginManagement { + repositories { + mavenCentral() + gradlePluginPortal() + + // Add the Forge Repository (ForgeGradle fetches most of its stuff from here) + maven { + name = "Forge" + url = "https://maven.minecraftforge.net" + } + + // Add the Jitpack Repository (We fetch ForgeGradle from this) + maven { + name = "Jitpack" + url = "https://jitpack.io/" + } + } + resolutionStrategy { + eachPlugin { + // If the "net.minecraftforge.gradle.forge" plugin is requested we redirect it to asbyth's ForgeGradle fork + if (requested.id.id == "net.minecraftforge.gradle.forge") { + useModule("com.github.asbyth:ForgeGradle:${requested.version}") + } + } + } +} + + +rootProject.name = 'oneConfig' + diff --git a/src/main/java/io/polyfrost/oneconfig/OneConfig.java b/src/main/java/io/polyfrost/oneconfig/OneConfig.java new file mode 100644 index 0000000..4b916d9 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/OneConfig.java @@ -0,0 +1,17 @@ +package io.polyfrost.oneconfig; + +import io.polyfrost.oneconfig.command.OneConfigCommand; +import net.minecraftforge.client.ClientCommandHandler; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.event.FMLInitializationEvent; + +@Mod(modid = "oneconfig", name = "OneConfig", version = "${version}") +public class OneConfig { + + @Mod.EventHandler + public void onFMLInitialization(FMLInitializationEvent event) { + ClientCommandHandler.instance.registerCommand(new OneConfigCommand()); + MinecraftForge.EVENT_BUS.register(this); + } +} diff --git a/src/main/java/io/polyfrost/oneconfig/command/OneConfigCommand.java b/src/main/java/io/polyfrost/oneconfig/command/OneConfigCommand.java new file mode 100644 index 0000000..3433c56 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/command/OneConfigCommand.java @@ -0,0 +1,65 @@ +package io.polyfrost.oneconfig.command; + +import io.polyfrost.oneconfig.gui.Window; +import io.polyfrost.oneconfig.utils.TickDelay; +import net.minecraft.client.Minecraft; +import net.minecraft.command.CommandException; +import net.minecraft.command.ICommand; +import net.minecraft.command.ICommandSender; +import net.minecraft.util.BlockPos; +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class OneConfigCommand implements ICommand { + + private final List<String> aliases; + private static final Minecraft mc = Minecraft.getMinecraft(); + + public OneConfigCommand() { + aliases = new ArrayList<>(); + aliases.add("oneconfig"); + aliases.add("ocfg"); + } + + @Override + public String getCommandName() { + return "oneconfig"; + } + + @Override + public String getCommandUsage(ICommandSender sender) { + return "oneconfig <>"; + } + + @Override + public List<String> getCommandAliases() { + return this.aliases; + } + + @Override + public void processCommand(ICommandSender sender, String[] args) throws CommandException { + new TickDelay(() -> mc.displayGuiScreen(new Window()), 1); + } + + @Override + public boolean canCommandSenderUseCommand(ICommandSender sender) { + return true; + } + + @Override + public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) { + return null; + } + + @Override + public boolean isUsernameIndex(String[] args, int index) { + return false; + } + + @Override + public int compareTo(@NotNull ICommand o) { + return 0; + } +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/Window.java b/src/main/java/io/polyfrost/oneconfig/gui/Window.java new file mode 100644 index 0000000..ed420aa --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/Window.java @@ -0,0 +1,46 @@ +package io.polyfrost.oneconfig.gui; + +import io.polyfrost.oneconfig.renderer.Renderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.gui.GuiScreen; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.util.ResourceLocation; + +import java.awt.*; + +import static io.polyfrost.oneconfig.renderer.Renderer.easeOut; + +public class Window extends GuiScreen { + private static ResourceLocation location = new ResourceLocation("oneconfig", "textures/hudsettings128.png"); + private float currentProgress = 0f; + public static Window currentWindow; + + public Window() { + super.initGui(); + currentWindow = this; + } + + public boolean doesGuiPauseGame() { + return false; + } + + public void drawScreen(int mouseX, int mouseY, float partialTicks) { + super.drawScreen(mouseX, mouseY, partialTicks); + currentProgress = easeOut(currentProgress, 1f); + int alphaVal = (int) (50 * currentProgress); + //drawGradientRect(0, 0, super.width, super.height, new Color(80, 80, 80, alphaVal).getRGB(), new Color(80, 80, 80, alphaVal + 10).getRGB()); + drawWindow(); + + } + + public void drawWindow() { + Renderer.drawScaledImage(location, 10, 10, 64 ,64); + Renderer.drawRoundRectangle(50,50,100,100,10,-1); + } + + public static Window getWindow() { + return currentWindow; + } + + +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/OCBlock.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCBlock.java new file mode 100644 index 0000000..774d936 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCBlock.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements; + +public class OCBlock { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/OCButton.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCButton.java new file mode 100644 index 0000000..4df6f93 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCButton.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements; + +public class OCButton { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/OCColorPicker.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCColorPicker.java new file mode 100644 index 0000000..e055d25 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCColorPicker.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements; + +public class OCColorPicker { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/OCSelector.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCSelector.java new file mode 100644 index 0000000..83805fa --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCSelector.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements; + +public class OCSelector { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/OCTextField.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCTextField.java new file mode 100644 index 0000000..da0df96 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/OCTextField.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements; + +public class OCTextField { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigButton.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigButton.java new file mode 100644 index 0000000..de21d9d --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigButton.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements.config; + +public class OConfigButton { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigColor.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigColor.java new file mode 100644 index 0000000..299c4f2 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigColor.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements.config; + +public class OConfigColor { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigSelector.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigSelector.java new file mode 100644 index 0000000..cc76814 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigSelector.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements.config; + +public class OConfigSelector { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigSlider.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigSlider.java new file mode 100644 index 0000000..38bacf7 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigSlider.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements.config; + +public class OConfigSlider { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigSwitch.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigSwitch.java new file mode 100644 index 0000000..c9d6091 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigSwitch.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements.config; + +public class OConfigSwitch { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigText.java b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigText.java new file mode 100644 index 0000000..68f2b8b --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/elements/config/OConfigText.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.elements.config; + +public class OConfigText { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/pages/BasicWindowPage.java b/src/main/java/io/polyfrost/oneconfig/gui/pages/BasicWindowPage.java new file mode 100644 index 0000000..0d09526 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/pages/BasicWindowPage.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.pages; + +public class BasicWindowPage { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/pages/HomePage.java b/src/main/java/io/polyfrost/oneconfig/gui/pages/HomePage.java new file mode 100644 index 0000000..65ad1e9 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/pages/HomePage.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.pages; + +public class HomePage { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/pages/ModsPage.java b/src/main/java/io/polyfrost/oneconfig/gui/pages/ModsPage.java new file mode 100644 index 0000000..4cbda94 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/pages/ModsPage.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.pages; + +public class ModsPage { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/pages/SettingsPage.java b/src/main/java/io/polyfrost/oneconfig/gui/pages/SettingsPage.java new file mode 100644 index 0000000..9fecc75 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/pages/SettingsPage.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.pages; + +public class SettingsPage { +} diff --git a/src/main/java/io/polyfrost/oneconfig/gui/pages/StorePage.java b/src/main/java/io/polyfrost/oneconfig/gui/pages/StorePage.java new file mode 100644 index 0000000..4aa1616 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/gui/pages/StorePage.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.gui.pages; + +public class StorePage { +} diff --git a/src/main/java/io/polyfrost/oneconfig/renderer/Renderer.java b/src/main/java/io/polyfrost/oneconfig/renderer/Renderer.java new file mode 100644 index 0000000..05e2731 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/renderer/Renderer.java @@ -0,0 +1,39 @@ +package io.polyfrost.oneconfig.renderer; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.gui.Gui; +import net.minecraft.util.ResourceLocation; + +public class Renderer extends Gui { + private static final Minecraft mc = Minecraft.getMinecraft(); + private static final FontRenderer fr = mc.fontRendererObj; + + public static void drawRectangle(int left, int top, int right, int bottom, int color) { + Gui.drawRect(left, top, right, bottom, color); + } + + public static void drawString(String text, int x, int y, int color, boolean shadow) { + fr.drawString(text, x, y, color, shadow); + } + + public static void drawScaledImage(ResourceLocation location, int x, int y, int targetX, int targetY) { + //GlStateManager.color(1f, 1f, 1f, 1f); + mc.getTextureManager().bindTexture(location); + Gui.drawScaledCustomSizeModalRect(x, y, 0, 0, targetX, targetY, targetX, targetY, targetX, targetY); + } + + public static void drawRoundRectangle(int left, int top, int right, int bottom, int cornerRadius, int color) { + + } + + + public static float easeOut(float current, float goal) { + if (Math.floor(Math.abs(goal - current) / (float) 0.01) > 0) { + return current + (goal - current) / (float) 20.0; + } else { + return goal; + } + } + +} diff --git a/src/main/java/io/polyfrost/oneconfig/themes/Themes.java b/src/main/java/io/polyfrost/oneconfig/themes/Themes.java new file mode 100644 index 0000000..7ba8097 --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/themes/Themes.java @@ -0,0 +1,4 @@ +package io.polyfrost.oneconfig.themes; + +public class Themes { +} diff --git a/src/main/java/io/polyfrost/oneconfig/utils/TickDelay.java b/src/main/java/io/polyfrost/oneconfig/utils/TickDelay.java new file mode 100644 index 0000000..33b02fe --- /dev/null +++ b/src/main/java/io/polyfrost/oneconfig/utils/TickDelay.java @@ -0,0 +1,43 @@ +package io.polyfrost.oneconfig.utils; + +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; + +public class TickDelay { + Integer delay; + Runnable function; + + public TickDelay(Runnable functionName, int ticks) { + register(); + delay = ticks; + function = functionName; + } + + @SubscribeEvent + public void onTick(TickEvent.ClientTickEvent event) { + if (event.phase == TickEvent.Phase.START) { + // Delay expired + if (delay < 1) { + run(); + destroy(); + } + delay--; + } + } + + @EventHandler() + private void destroy() { + MinecraftForge.EVENT_BUS.unregister(this); + } + + @EventHandler() + private void register() { + MinecraftForge.EVENT_BUS.register(this); + } + + private void run() { + function.run(); + } +} diff --git a/src/main/resources/assets/oneconfig/shaders/rounded_rect.fsh b/src/main/resources/assets/oneconfig/shaders/rounded_rect.fsh new file mode 100644 index 0000000..f0bec7c --- /dev/null +++ b/src/main/resources/assets/oneconfig/shaders/rounded_rect.fsh @@ -0,0 +1,18 @@ +#version 110 + +uniform float u_Radius; +uniform vec4 u_InnerRect; + +varying vec2 f_Position; + +//out vec4 fragColor; + +void main() { + vec2 tl = u_InnerRect.xy - f_Position; + vec2 br = f_Position - u_InnerRect.zw; + vec2 dis = max(br, tl); + + float v = length(max(vec2(0.0), dis)) - u_Radius; + float a = 1.0 - smoothstep(0.0, 1.0, v); + gl_FragColor = gl_Color * vec4(1.0, 1.0, 1.0, a); +}
\ No newline at end of file diff --git a/src/main/resources/assets/oneconfig/textures/hudsettings.png b/src/main/resources/assets/oneconfig/textures/hudsettings.png Binary files differnew file mode 100644 index 0000000..b901c97 --- /dev/null +++ b/src/main/resources/assets/oneconfig/textures/hudsettings.png diff --git a/src/main/resources/assets/oneconfig/textures/hudsettings128.png b/src/main/resources/assets/oneconfig/textures/hudsettings128.png Binary files differnew file mode 100644 index 0000000..b9726d5 --- /dev/null +++ b/src/main/resources/assets/oneconfig/textures/hudsettings128.png diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info new file mode 100644 index 0000000..6e83630 --- /dev/null +++ b/src/main/resources/mcmod.info @@ -0,0 +1,19 @@ +[ + { + "modid": "oneconfig", + "name": "OneConfig", + "description": "OneConfig", + "version": "${version}", + "mcversion": "${mcversion}", + "url": "", + "updateUrl": "", + "authorList": [ + "MoonTidez", + "DeDiamondPro" + ], + "credits": "", + "logoFile": "", + "screenshots": [], + "dependencies": [] + } +]
\ No newline at end of file |