diff --git a/build.gradle b/build.gradle index bf39dc8..0ef3d50 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,11 @@ buildscript { repositories { - maven { url = 'https://files.minecraftforge.net/maven' } - jcenter() + // These repositories are only for Gradle plugins, put any other repositories in the repository block further below + maven { url = 'https://maven.minecraftforge.net' } mavenCentral() } dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '5.1.+', changing: true } } apply plugin: 'net.minecraftforge.gradle' @@ -13,23 +13,29 @@ apply plugin: 'net.minecraftforge.gradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' -version = '1.16.4-0.2.3' +version = '1.17.1-0.2.3' group = 'brentmaas.buildguide' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'buildguide' -sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. +// Mojang ships Java 16 to end users in 1.17+ instead of Java 8 in 1.16 or lower, so your mod should target Java 16. +java.toolchain.languageVersion = JavaLanguageVersion.of(16) println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { - // The mappings can be changed at any time, and must be in the following format. - // snapshot_YYYYMMDD Snapshot are built nightly. - // stable_# Stables are built at the discretion of the MCP team. - // Use non-default mappings at your own risk. they may not always work. + // The mappings can be changed at any time and must be in the following format. + // Channel: Version: + // snapshot YYYYMMDD Snapshot are built nightly. + // stable # Stables are built at the discretion of the MCP team. + // official MCVersion Official field/method names from Mojang mapping files + // + // You must be aware of the Mojang license when using the 'official' mappings. + // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md + // + // Use non-default mappings at your own risk. They may not always work. // Simply re-run your setup task after changing the mappings to update your workspace. - mappings channel: 'snapshot', version: '20201028-1.16.3' - // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. - - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') + mappings channel: 'official', version: '1.17.1' + + // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') // Currently, this location cannot be changed from the default. // Default run configurations. // These can be tweaked, removed, or duplicated as needed. @@ -38,9 +44,15 @@ minecraft { workingDirectory project.file('run') // Recommended logging data for a userdev environment - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + property 'forge.logging.markers', 'REGISTRIES' // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' mods { @@ -54,9 +66,15 @@ minecraft { workingDirectory project.file('run') // Recommended logging data for a userdev environment - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + property 'forge.logging.markers', 'REGISTRIES' // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' mods { @@ -70,9 +88,15 @@ minecraft { workingDirectory project.file('run') // Recommended logging data for a userdev environment - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + property 'forge.logging.markers', 'REGISTRIES' // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. @@ -90,52 +114,55 @@ minecraft { // Include resources generated by data generators. sourceSets.main.resources { srcDir 'src/generated/resources' } -dependencies { - // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed - // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied. - // The userdev artifact is a special name and will get all sorts of transformations applied to it. - minecraft 'net.minecraftforge:forge:1.16.4-35.1.37' +repositories { + // Put repositories for dependencies here + // ForgeGradle automatically adds the Forge maven and Maven Central for you - // You may put jars on which you depend on in ./libs or you may define them like so.. - // compile "some.group:artifact:version:classifier" - // compile "some.group:artifact:version" + // If you have mod jar dependencies in ./libs, you can declare them as a repository like so: + // flatDir { + // dir 'libs' + // } +} - // Real examples - // compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env - // compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env +dependencies { + // Specify the version of Minecraft to use. If this is any group other than 'net.minecraft', it is assumed + // that the dep is a ForgeGradle 'patcher' dependency, and its patches will be applied. + // The userdev artifact is a special name and will get all sorts of transformations applied to it. + minecraft 'net.minecraftforge:forge:1.17.1-37.0.17' - // The 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. - // provided 'com.mod-buildcraft:buildcraft:6.0.8:dev' + // Real mod deobf dependency examples - these get remapped to your current mappings + // compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency + // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") // Adds the full JEI mod as a runtime dependency + // implementation fg.deobf("com.tterrag.registrate:Registrate:MC${mc_version}-${registrate_version}") // Adds registrate as a dependency - // These dependencies get remapped to your current MCP mappings - // deobf 'com.mod-buildcraft:buildcraft:6.0.8:dev' + // Examples using mod jars from ./libs + // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") // For more info... // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html - } -// Example for how to get properties into the manifest for reading by the runtime.. +// Example for how to get properties into the manifest for reading at runtime. jar { manifest { attributes([ - "Specification-Title": "buildguide", - "Specification-Vendor": "buildguide", - "Specification-Version": "7", - "Implementation-Title": project.name, - "Implementation-Version": "${version}", - "Implementation-Vendor" :"buildguide", - "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") + "Specification-Title" : "buildguide", + "Specification-Vendor" : "buildguide", + "Specification-Version" : "7", // We are version 1 of ourselves + "Implementation-Title" : project.name, + "Implementation-Version" : project.jar.archiveVersion, + "Implementation-Vendor" : "buildguide", + "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } -// Example configuration to allow publishing using the maven-publish task +// Example configuration to allow publishing using the maven-publish plugin // This is the preferred method to reobfuscate your jar file -jar.finalizedBy('reobfJar') +jar.finalizedBy('reobfJar') // However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing -//publish.dependsOn('reobfJar') +// publish.dependsOn('reobfJar') publishing { publications { @@ -145,7 +172,7 @@ publishing { } repositories { maven { - url "file:///${project.projectDir}/mcmodsrepo" + url "file://${project.projectDir}/mcmodsrepo" } } -} \ No newline at end of file +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7a3265e..7454180 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1d5b29f..0595cf7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions-snapshots/gradle-7.2-20210702220150+0000-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip diff --git a/gradlew b/gradlew index cccdd3d..744e882 100644 --- a/gradlew +++ b/gradlew @@ -1,5 +1,21 @@ #!/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 @@ -28,7 +44,7 @@ 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="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -56,7 +72,7 @@ case "`uname`" in Darwin* ) darwin=true ;; - MINGW* ) + MSYS* | MINGW* ) msys=true ;; NONSTOP* ) @@ -66,6 +82,7 @@ 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 @@ -109,10 +126,11 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# 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 @@ -138,19 +156,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + 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" ;; + 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 @@ -159,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +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" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index e95643d..ac1b06f 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,3 +1,19 @@ +@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 @@ -13,15 +29,18 @@ 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= +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 init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :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 %CMD_LINE_ARGS% +"%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 diff --git a/src/main/java/brentmaas/buildguide/BuildGuide.java b/src/main/java/brentmaas/buildguide/BuildGuide.java index 6290a8f..e6784f3 100644 --- a/src/main/java/brentmaas/buildguide/BuildGuide.java +++ b/src/main/java/brentmaas/buildguide/BuildGuide.java @@ -1,6 +1,5 @@ package brentmaas.buildguide; -import org.apache.commons.lang3.tuple.Pair; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -8,14 +7,14 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.fml.ExtensionPoint; +import net.minecraftforge.fml.IExtensionPoint; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.config.ModConfig; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; -import net.minecraftforge.fml.event.server.FMLServerStartingEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.fml.network.FMLNetworkConstants; +import net.minecraftforge.fmllegacy.network.FMLNetworkConstants; +import net.minecraftforge.fmlserverevents.FMLServerStartingEvent; @Mod(BuildGuide.modid) public class BuildGuide { @@ -24,8 +23,8 @@ public class BuildGuide { public static State state; public BuildGuide() { - ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.DISPLAYTEST, () -> Pair.of(() -> FMLNetworkConstants.IGNORESERVERONLY, (a, b) -> true)); - DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> { + ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> FMLNetworkConstants.IGNORESERVERONLY, (a, b) -> true)); + DistExecutor.unsafeRunWhenOn(Dist.CLIENT, () -> () -> { state = new State(); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, State.clientConfigSpec); diff --git a/src/main/java/brentmaas/buildguide/RenderHandler.java b/src/main/java/brentmaas/buildguide/RenderHandler.java index c735638..ae4ef3c 100644 --- a/src/main/java/brentmaas/buildguide/RenderHandler.java +++ b/src/main/java/brentmaas/buildguide/RenderHandler.java @@ -2,13 +2,14 @@ import org.lwjgl.opengl.GL11; -import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.platform.GlStateManager; import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.PoseStack; import brentmaas.buildguide.shapes.ShapeEmpty; import net.minecraft.client.Minecraft; -import net.minecraft.util.math.vector.Vector3d; +import net.minecraft.client.renderer.GameRenderer; +import net.minecraft.world.phys.Vec3; import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -22,16 +23,15 @@ public static void register() { @SubscribeEvent public void onRenderBlock(RenderWorldLastEvent event) { - Minecraft.getInstance().getProfiler().startSection("buildguide"); + Minecraft.getInstance().getProfiler().push("buildguide"); if(BuildGuide.state.basePos != null && !(State.getCurrentShape() instanceof ShapeEmpty)) { - MatrixStack stack = event.getMatrixStack(); - stack.push(); - Vector3d projectedView = Minecraft.getInstance().gameRenderer.getActiveRenderInfo().getProjectedView(); - stack.translate(-projectedView.x + BuildGuide.state.basePos.x, -projectedView.y + BuildGuide.state.basePos.y, -projectedView.z + BuildGuide.state.basePos.z); + RenderSystem.setShader(GameRenderer::getPositionColorShader); - RenderSystem.pushMatrix(); - RenderSystem.multMatrix(stack.getLast().getMatrix()); + PoseStack stack = event.getMatrixStack(); + stack.pushPose(); + Vec3 projectedView = Minecraft.getInstance().gameRenderer.getMainCamera().getPosition(); + stack.translate(-projectedView.x + BuildGuide.state.basePos.x, -projectedView.y + BuildGuide.state.basePos.y, -projectedView.z + BuildGuide.state.basePos.z); boolean toggleTexture = GL11.glIsEnabled(GL11.GL_TEXTURE_2D); @@ -50,7 +50,7 @@ public void onRenderBlock(RenderWorldLastEvent event) { RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); if(toggleBlend) RenderSystem.enableBlend(); - State.getCurrentShape().render(stack.getLast().getMatrix()); + State.getCurrentShape().render(stack.last().pose(), event.getProjectionMatrix()); if(toggleBlend) RenderSystem.disableBlend(); if(toggleDepthTest && hasDepthTest) RenderSystem.enableDepthTest(); @@ -58,11 +58,9 @@ public void onRenderBlock(RenderWorldLastEvent event) { if(toggleDepthMask) RenderSystem.depthMask(true); if(toggleTexture) RenderSystem.enableTexture(); - RenderSystem.popMatrix(); - - stack.pop(); + stack.popPose(); } - Minecraft.getInstance().getProfiler().endSection(); + Minecraft.getInstance().getProfiler().pop(); } } diff --git a/src/main/java/brentmaas/buildguide/State.java b/src/main/java/brentmaas/buildguide/State.java index f49adc3..d5753e3 100644 --- a/src/main/java/brentmaas/buildguide/State.java +++ b/src/main/java/brentmaas/buildguide/State.java @@ -2,6 +2,8 @@ import org.apache.commons.lang3.tuple.Pair; +import com.mojang.math.Vector3d; + import brentmaas.buildguide.property.PropertyBoolean; import brentmaas.buildguide.shapes.Shape; import brentmaas.buildguide.shapes.ShapeCircle; @@ -13,13 +15,12 @@ import brentmaas.buildguide.shapes.ShapePolygon; import brentmaas.buildguide.shapes.ShapeSphere; import brentmaas.buildguide.shapes.ShapeTorus; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.common.ForgeConfigSpec.BooleanValue; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod.EventBusSubscriber; -import net.minecraftforge.fml.config.ModConfig; +import net.minecraftforge.fml.event.config.ModConfigEvent; @EventBusSubscriber(modid=BuildGuide.modid, bus=EventBusSubscriber.Bus.MOD) public class State { @@ -37,7 +38,7 @@ public class State { public Shape[] shapeStore = {new ShapeEmpty(), new ShapeCircle(), new ShapeCuboid(), new ShapeEllipse(), new ShapeEllipsoid(), new ShapeLine(), new ShapePolygon(), new ShapeSphere(), new ShapeTorus()}; public int i_shape = 0; public Vector3d basePos = null; - public PropertyBoolean propertyDepthTest = new PropertyBoolean(0, 80, true, new TranslationTextComponent("screen.buildguide.depthtest"), null); + public PropertyBoolean propertyDepthTest = new PropertyBoolean(0, 80, true, new TranslatableComponent("screen.buildguide.depthtest"), null); public float colourShapeR = 1.0f; public float colourShapeG = 1.0f; @@ -54,7 +55,7 @@ public static void bakeConfig() { } @SubscribeEvent - public static void onModConfigEvent(final ModConfig.ModConfigEvent event) { + public static void onModConfigEvent(final ModConfigEvent event) { if(event.getConfig().getSpec() == State.clientConfigSpec) { State.bakeConfig(); } diff --git a/src/main/java/brentmaas/buildguide/input/InputHandler.java b/src/main/java/brentmaas/buildguide/input/InputHandler.java index a6b0bed..8a6d20c 100644 --- a/src/main/java/brentmaas/buildguide/input/InputHandler.java +++ b/src/main/java/brentmaas/buildguide/input/InputHandler.java @@ -8,8 +8,8 @@ public class InputHandler { @SubscribeEvent public void onKeyInput(KeyInputEvent event) { - if(Keybindings.openBuildGuide.isPressed()) { - Minecraft.getInstance().displayGuiScreen(new BuildGuideScreen()); + if(Keybindings.openBuildGuide.isDown()) { + Minecraft.getInstance().setScreen(new BuildGuideScreen()); } } } diff --git a/src/main/java/brentmaas/buildguide/input/Keybindings.java b/src/main/java/brentmaas/buildguide/input/Keybindings.java index 1ec2870..1ebf872 100644 --- a/src/main/java/brentmaas/buildguide/input/Keybindings.java +++ b/src/main/java/brentmaas/buildguide/input/Keybindings.java @@ -2,17 +2,18 @@ import org.lwjgl.glfw.GLFW; -import net.minecraft.client.settings.KeyBinding; -import net.minecraft.client.util.InputMappings; +import com.mojang.blaze3d.platform.InputConstants; + +import net.minecraft.client.KeyMapping; import net.minecraftforge.client.settings.KeyConflictContext; import net.minecraftforge.common.MinecraftForge; -import net.minecraftforge.fml.client.registry.ClientRegistry; +import net.minecraftforge.fmlclient.registry.ClientRegistry; public class Keybindings { - public static KeyBinding openBuildGuide; + public static KeyMapping openBuildGuide; public static void register() { - openBuildGuide = new KeyBinding("key.buildguide.openbuildguide", KeyConflictContext.IN_GAME, InputMappings.Type.KEYSYM, GLFW.GLFW_KEY_B, "key.buildguide.category"); + openBuildGuide = new KeyMapping("key.buildguide.openbuildguide", KeyConflictContext.IN_GAME, InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_B, "key.buildguide.category"); ClientRegistry.registerKeyBinding(openBuildGuide); diff --git a/src/main/java/brentmaas/buildguide/property/Property.java b/src/main/java/brentmaas/buildguide/property/Property.java index 7608f22..6de6100 100644 --- a/src/main/java/brentmaas/buildguide/property/Property.java +++ b/src/main/java/brentmaas/buildguide/property/Property.java @@ -2,22 +2,22 @@ import java.util.ArrayList; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import brentmaas.buildguide.screen.BuildGuideScreen; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.gui.widget.button.AbstractButton; -import net.minecraft.util.text.TextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.AbstractButton; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.network.chat.BaseComponent; public abstract class Property { protected int x, y; public T value; - protected TextComponent name; + protected BaseComponent name; public ArrayList buttonList = new ArrayList(); - public ArrayList textFieldList = new ArrayList(); + public ArrayList editBoxList = new ArrayList(); - public Property(int x, int y, T value, TextComponent name, Runnable onUpdate){ + public Property(int x, int y, T value, BaseComponent name, Runnable onUpdate){ this.x = x; this.y = y; this.value = value; @@ -28,8 +28,8 @@ public void onSelectedInGUI() { for(AbstractButton b: buttonList) { b.visible = true; } - for(TextFieldWidget tfw: textFieldList) { - tfw.visible = true; + for(EditBox eb: editBoxList) { + eb.visible = true; } } @@ -37,8 +37,8 @@ public void onDeselectedInGUI() { for(AbstractButton b: buttonList) { b.visible = false; } - for(TextFieldWidget tfw: textFieldList) { - tfw.visible = false; + for(EditBox eb: editBoxList) { + eb.visible = false; } } @@ -46,8 +46,8 @@ public void addToBuildGuideScreen(BuildGuideScreen screen) { for(AbstractButton b: buttonList) { screen.addButtonExternal(b); } - for(TextFieldWidget tfw: textFieldList) { - screen.addTextFieldExternal(tfw); + for(EditBox eb: editBoxList) { + screen.addEditBoxExternal(eb); } } @@ -55,19 +55,19 @@ public void setValue(T value) { this.value = value; } - public void setName(TextComponent name) { + public void setName(BaseComponent name) { this.name = name; } public boolean mightNeedTextFields() { - return textFieldList.size() == 0; + return editBoxList.size() == 0; } - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks, FontRenderer font) { - for(TextFieldWidget tfw: textFieldList) { - tfw.render(matrixStack, mouseX, mouseY, partialTicks); + public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks, Font font) { + for(EditBox eb: editBoxList) { + eb.render(matrixStack, mouseX, mouseY, partialTicks); } } - public abstract void addTextFields(FontRenderer fr); + public abstract void addTextFields(Font fr); } diff --git a/src/main/java/brentmaas/buildguide/property/PropertyBoolean.java b/src/main/java/brentmaas/buildguide/property/PropertyBoolean.java index 7a227fc..3db8366 100644 --- a/src/main/java/brentmaas/buildguide/property/PropertyBoolean.java +++ b/src/main/java/brentmaas/buildguide/property/PropertyBoolean.java @@ -1,28 +1,28 @@ package brentmaas.buildguide.property; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.button.CheckboxButton; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.Checkbox; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.TextComponent; public class PropertyBoolean extends Property{ - private CheckboxButton button; + private Checkbox button; - public PropertyBoolean(int x, int y, Boolean value, TextComponent name, Runnable onUpdate) { + public PropertyBoolean(int x, int y, Boolean value, BaseComponent name, Runnable onUpdate) { super(x, y, value, name, onUpdate); - button = new CheckboxButton(x + 140, y, 20, 20, new StringTextComponent(""), value, false); //Definitely not this value so the UI lines up nicely + button = new Checkbox(x + 140, y, 20, 20, new TextComponent(""), value, false); //Definitely not this value so the UI lines up nicely buttonList.add(button); } - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks, FontRenderer font) { + public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks, Font font) { super.render(matrixStack, mouseX, mouseY, partialTicks, font); - value = button.isChecked(); - font.drawStringWithShadow(matrixStack, name.getString(), x + 5, y + 5, 0xFFFFFF); + value = button.selected(); + font.drawShadow(matrixStack, name.getString(), x + 5, y + 5, 0xFFFFFF); } - public void addTextFields(FontRenderer fr) { + public void addTextFields(Font fr) { } } diff --git a/src/main/java/brentmaas/buildguide/property/PropertyEnum.java b/src/main/java/brentmaas/buildguide/property/PropertyEnum.java index 00fa4cb..96b646e 100644 --- a/src/main/java/brentmaas/buildguide/property/PropertyEnum.java +++ b/src/main/java/brentmaas/buildguide/property/PropertyEnum.java @@ -1,35 +1,35 @@ package brentmaas.buildguide.property; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.Button; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.TextComponent; public class PropertyEnum> extends Property { private String[] names; - public PropertyEnum(int x, int y, T value, TextComponent name, Runnable onUpdate, String[] names) { + public PropertyEnum(int x, int y, T value, BaseComponent name, Runnable onUpdate, String[] names) { super(x, y, value, name, onUpdate); this.names = names; - buttonList.add(new Button(x + 90, y, 20, 20, new StringTextComponent("<-"), button -> { + buttonList.add(new Button(x + 90, y, 20, 20, new TextComponent("<-"), button -> { this.value = this.value.getDeclaringClass().getEnumConstants()[Math.floorMod(this.value.ordinal() - 1, this.value.getDeclaringClass().getEnumConstants().length)]; if(onUpdate != null) onUpdate.run(); })); - buttonList.add(new Button(x + 190, y, 20, 20, new StringTextComponent("->"), button -> { + buttonList.add(new Button(x + 190, y, 20, 20, new TextComponent("->"), button -> { this.value = this.value.getDeclaringClass().getEnumConstants()[Math.floorMod(this.value.ordinal() + 1, this.value.getDeclaringClass().getEnumConstants().length)]; if(onUpdate != null) onUpdate.run(); })); } - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks, FontRenderer font) { + public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks, Font font) { super.render(matrixStack, mouseX, mouseY, partialTicks, font); - font.drawStringWithShadow(matrixStack, name.getString(), x + 5, y + 5, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, names[value.ordinal()], x + 110 + (80 - font.getStringWidth(names[value.ordinal()])) / 2, y + 5, 0xFFFFFF); + font.drawShadow(matrixStack, name.getString(), x + 5, y + 5, 0xFFFFFF); + font.drawShadow(matrixStack, names[value.ordinal()], x + 110 + (80 - font.width(names[value.ordinal()])) / 2, y + 5, 0xFFFFFF); } - public void addTextFields(FontRenderer fr) { + public void addTextFields(Font fr) { } } diff --git a/src/main/java/brentmaas/buildguide/property/PropertyInt.java b/src/main/java/brentmaas/buildguide/property/PropertyInt.java index f9306e0..9d1f3ed 100644 --- a/src/main/java/brentmaas/buildguide/property/PropertyInt.java +++ b/src/main/java/brentmaas/buildguide/property/PropertyInt.java @@ -1,34 +1,34 @@ package brentmaas.buildguide.property; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class PropertyInt extends Property{ - private TextFieldWidget valueWidget; + private EditBox valueWidget; - public PropertyInt(int x, int y, int value, TextComponent name, Runnable onUpdate) { + public PropertyInt(int x, int y, int value, BaseComponent name, Runnable onUpdate) { super(x, y, value, name, onUpdate); - buttonList.add(new Button(x + 90, y, 20, 20, new StringTextComponent("-"), button -> { + buttonList.add(new Button(x + 90, y, 20, 20, new TextComponent("-"), button -> { --this.value; - valueWidget.setText("" + this.value); + valueWidget.setValue("" + this.value); valueWidget.setTextColor(0xFFFFFF); if(onUpdate != null) onUpdate.run(); })); - buttonList.add(new Button(x + 190, y, 20, 20, new StringTextComponent("+"), button -> { + buttonList.add(new Button(x + 190, y, 20, 20, new TextComponent("+"), button -> { ++this.value; - valueWidget.setText("" + this.value); + valueWidget.setValue("" + this.value); valueWidget.setTextColor(0xFFFFFF); if(onUpdate != null) onUpdate.run(); })); - buttonList.add(new Button(x + 160, y, 30, 20, new TranslationTextComponent("screen.buildguide.set"), button -> { + buttonList.add(new Button(x + 160, y, 30, 20, new TranslatableComponent("screen.buildguide.set"), button -> { try { - int newval = Integer.parseInt(valueWidget.getText()); + int newval = Integer.parseInt(valueWidget.getValue()); this.value = newval; valueWidget.setTextColor(0xFFFFFF); }catch(NumberFormatException e) { @@ -37,21 +37,21 @@ public PropertyInt(int x, int y, int value, TextComponent name, Runnable onUpdat })); } - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks, FontRenderer font) { + public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks, Font font) { super.render(matrixStack, mouseX, mouseY, partialTicks, font); - font.drawStringWithShadow(matrixStack, name.getString(), x + 5, y + 5, 0xFFFFFF); + font.drawShadow(matrixStack, name.getString(), x + 5, y + 5, 0xFFFFFF); } public void setValue(Integer value) { super.setValue(value); - valueWidget.setText("" + value); + valueWidget.setValue("" + value); valueWidget.setTextColor(0xFFFFFF); } - public void addTextFields(FontRenderer fr) { - valueWidget = new TextFieldWidget(fr, x + 110, y, 50, 20, new StringTextComponent("")); - valueWidget.setText("" + value); + public void addTextFields(Font fr) { + valueWidget = new EditBox(fr, x + 110, y, 50, 20, new TextComponent("")); + valueWidget.setValue("" + value); valueWidget.setTextColor(0xFFFFFF); - textFieldList.add(valueWidget); + editBoxList.add(valueWidget); } } diff --git a/src/main/java/brentmaas/buildguide/property/PropertyMinimumInt.java b/src/main/java/brentmaas/buildguide/property/PropertyMinimumInt.java index bc87d3a..d5fba76 100644 --- a/src/main/java/brentmaas/buildguide/property/PropertyMinimumInt.java +++ b/src/main/java/brentmaas/buildguide/property/PropertyMinimumInt.java @@ -1,41 +1,41 @@ package brentmaas.buildguide.property; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class PropertyMinimumInt extends Property{ - private TextFieldWidget valueWidget; + private EditBox valueWidget; private int minInt; - public PropertyMinimumInt(int x, int y, int value, TextComponent name, Runnable onUpdate, int minInt) { + public PropertyMinimumInt(int x, int y, int value, BaseComponent name, Runnable onUpdate, int minInt) { super(x, y, value, name, onUpdate); this.minInt = minInt; - buttonList.add(new Button(x + 90, y, 20, 20, new StringTextComponent("-"), button -> { + buttonList.add(new Button(x + 90, y, 20, 20, new TextComponent("-"), button -> { if(this.value > this.minInt) --this.value; - valueWidget.setText("" + this.value); + valueWidget.setValue("" + this.value); valueWidget.setTextColor(0xFFFFFF); if(onUpdate != null) onUpdate.run(); })); - buttonList.add(new Button(x + 190, y, 20, 20, new StringTextComponent("+"), button -> { + buttonList.add(new Button(x + 190, y, 20, 20, new TextComponent("+"), button -> { ++this.value; - valueWidget.setText("" + this.value); + valueWidget.setValue("" + this.value); valueWidget.setTextColor(0xFFFFFF); if(onUpdate != null) onUpdate.run(); })); - buttonList.add(new Button(x + 160, y, 30, 20, new TranslationTextComponent("screen.buildguide.set"), button -> { + buttonList.add(new Button(x + 160, y, 30, 20, new TranslatableComponent("screen.buildguide.set"), button -> { try { - int newval = Integer.parseInt(valueWidget.getText()); + int newval = Integer.parseInt(valueWidget.getValue()); this.value = newval; if(this.value < minInt) { this.value = minInt; } - valueWidget.setText("" + this.value); + valueWidget.setValue("" + this.value); valueWidget.setTextColor(0xFFFFFF); if(onUpdate != null) onUpdate.run(); }catch(NumberFormatException e) { @@ -44,21 +44,21 @@ public PropertyMinimumInt(int x, int y, int value, TextComponent name, Runnable })); } - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks, FontRenderer font) { - super.render(matrixStack, mouseX, mouseY, partialTicks, font); - font.drawStringWithShadow(matrixStack, name.getString(), x + 5, y + 5, 0xFFFFFF); + public void render(PoseStack PoseStack, int mouseX, int mouseY, float partialTicks, Font font) { + super.render(PoseStack, mouseX, mouseY, partialTicks, font); + font.drawShadow(PoseStack, name.getString(), x + 5, y + 5, 0xFFFFFF); } public void setValue(Integer value) { super.setValue(value); - valueWidget.setText("" + value); + valueWidget.setValue("" + value); valueWidget.setTextColor(0xFFFFFF); } - public void addTextFields(FontRenderer fr) { - valueWidget = new TextFieldWidget(fr, x + 110, y, 50, 20, new StringTextComponent("")); - valueWidget.setText("" + value); + public void addTextFields(Font fr) { + valueWidget = new EditBox(fr, x + 110, y, 50, 20, new TextComponent("")); + valueWidget.setValue("" + value); valueWidget.setTextColor(0xFFFFFF); - textFieldList.add(valueWidget); + editBoxList.add(valueWidget); } } diff --git a/src/main/java/brentmaas/buildguide/property/PropertyNonzeroInt.java b/src/main/java/brentmaas/buildguide/property/PropertyNonzeroInt.java index 57d35ff..395d4e3 100644 --- a/src/main/java/brentmaas/buildguide/property/PropertyNonzeroInt.java +++ b/src/main/java/brentmaas/buildguide/property/PropertyNonzeroInt.java @@ -1,41 +1,41 @@ package brentmaas.buildguide.property; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.gui.FontRenderer; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.Font; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class PropertyNonzeroInt extends Property{ - private TextFieldWidget valueWidget; + private EditBox valueWidget; - public PropertyNonzeroInt(int x, int y, int value, TextComponent name, Runnable onUpdate) { + public PropertyNonzeroInt(int x, int y, int value, BaseComponent name, Runnable onUpdate) { super(x, y, value, name, onUpdate); - buttonList.add(new Button(x + 90, y, 20, 20, new StringTextComponent("-"), button -> { + buttonList.add(new Button(x + 90, y, 20, 20, new TextComponent("-"), button -> { --this.value; if(this.value == 0) --this.value; - valueWidget.setText("" + this.value); + valueWidget.setValue("" + this.value); valueWidget.setTextColor(0xFFFFFF); if(onUpdate != null) onUpdate.run(); })); - buttonList.add(new Button(x + 190, y, 20, 20, new StringTextComponent("+"), button -> { + buttonList.add(new Button(x + 190, y, 20, 20, new TextComponent("+"), button -> { ++this.value; if(this.value == 0) ++this.value; - valueWidget.setText("" + this.value); + valueWidget.setValue("" + this.value); valueWidget.setTextColor(0xFFFFFF); if(onUpdate != null) onUpdate.run(); })); - buttonList.add(new Button(x + 160, y, 30, 20, new TranslationTextComponent("screen.buildguide.set"), button -> { + buttonList.add(new Button(x + 160, y, 30, 20, new TranslatableComponent("screen.buildguide.set"), button -> { try { - int newval = Integer.parseInt(valueWidget.getText()); + int newval = Integer.parseInt(valueWidget.getValue()); this.value = newval; if(this.value == 0) { this.value = 1; } - valueWidget.setText("" + this.value); + valueWidget.setValue("" + this.value); valueWidget.setTextColor(0xFFFFFF); if(onUpdate != null) onUpdate.run(); }catch(NumberFormatException e) { @@ -44,21 +44,21 @@ public PropertyNonzeroInt(int x, int y, int value, TextComponent name, Runnable })); } - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks, FontRenderer font) { - super.render(matrixStack, mouseX, mouseY, partialTicks, font); - font.drawStringWithShadow(matrixStack, name.getString(), x + 5, y + 5, 0xFFFFFF); + public void render(PoseStack PoseStack, int mouseX, int mouseY, float partialTicks, Font font) { + super.render(PoseStack, mouseX, mouseY, partialTicks, font); + font.drawShadow(PoseStack, name.getString(), x + 5, y + 5, 0xFFFFFF); } public void setValue(Integer value) { super.setValue(value); - valueWidget.setText("" + value); + valueWidget.setValue("" + value); valueWidget.setTextColor(0xFFFFFF); } - public void addTextFields(FontRenderer fr) { - valueWidget = new TextFieldWidget(fr, x + 110, y, 50, 20, new StringTextComponent("")); - valueWidget.setText("" + value); + public void addTextFields(Font fr) { + valueWidget = new EditBox(fr, x + 110, y, 50, 20, new TextComponent("")); + valueWidget.setValue("" + value); valueWidget.setTextColor(0xFFFFFF); - textFieldList.add(valueWidget); + editBoxList.add(valueWidget); } } diff --git a/src/main/java/brentmaas/buildguide/property/PropertyPositiveInt.java b/src/main/java/brentmaas/buildguide/property/PropertyPositiveInt.java index 571f3b9..ed571bb 100644 --- a/src/main/java/brentmaas/buildguide/property/PropertyPositiveInt.java +++ b/src/main/java/brentmaas/buildguide/property/PropertyPositiveInt.java @@ -1,11 +1,11 @@ package brentmaas.buildguide.property; -import net.minecraft.util.text.TextComponent; +import net.minecraft.network.chat.BaseComponent; public class PropertyPositiveInt extends PropertyMinimumInt{ - public PropertyPositiveInt(int x, int y, int value, TextComponent name, Runnable onUpdate) { + public PropertyPositiveInt(int x, int y, int value, BaseComponent name, Runnable onUpdate) { super(x, y, value, name, onUpdate, 1); } } diff --git a/src/main/java/brentmaas/buildguide/screen/BuildGuideScreen.java b/src/main/java/brentmaas/buildguide/screen/BuildGuideScreen.java index c155d3e..ff401b2 100644 --- a/src/main/java/brentmaas/buildguide/screen/BuildGuideScreen.java +++ b/src/main/java/brentmaas/buildguide/screen/BuildGuideScreen.java @@ -2,20 +2,21 @@ import java.util.ArrayList; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.math.Vector3d; import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.State; import brentmaas.buildguide.property.Property; import brentmaas.buildguide.shapes.Shape; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.widget.TextFieldWidget; -import net.minecraft.client.gui.widget.button.AbstractButton; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.util.math.vector.Vector3d; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.client.gui.components.AbstractButton; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.EditBox; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.phys.Vec3; public class BuildGuideScreen extends Screen{ private String titleGlobalProperties; @@ -28,43 +29,43 @@ public class BuildGuideScreen extends Screen{ private Button buttonClose; //It's better off as custom buttons instead of PropertyEnum - private Button buttonShapePrevious = new Button(60, 40, 20, 20, new StringTextComponent("<-"), button -> updateShape(-1)); - private Button buttonShapeNext = new Button(140, 40, 20, 20, new StringTextComponent("->"), button -> updateShape(1)); - private Button buttonBasepos = new Button(0, 60, 160, 20, new TranslationTextComponent("screen.buildguide.setbasepos"), button -> setBasePos()); - private Button buttonColours = new Button(0, 100, 160, 20, new TranslationTextComponent("screen.buildguide.colours"), button -> { - Minecraft.getInstance().displayGuiScreen(new ColoursScreen()); + private Button buttonShapePrevious = new Button(60, 40, 20, 20, new TextComponent("<-"), button -> updateShape(-1)); + private Button buttonShapeNext = new Button(140, 40, 20, 20, new TextComponent("->"), button -> updateShape(1)); + private Button buttonBasepos = new Button(0, 60, 160, 20, new TranslatableComponent("screen.buildguide.setbasepos"), button -> setBasePos()); + private Button buttonColours = new Button(0, 100, 160, 20, new TranslatableComponent("screen.buildguide.colours"), button -> { + Minecraft.getInstance().setScreen(new ColoursScreen()); }); //It's better off as custom buttons instead of PropertyInt - private Button buttonBaseposXDecrease = new Button(200, 40, 20, 20, new StringTextComponent("-"), button -> shiftBasePos(-1, 0, 0)); - private Button buttonBaseposXIncrease = new Button(300, 40, 20, 20, new StringTextComponent("+"), button -> shiftBasePos(1, 0, 0)); - private Button buttonBaseposYDecrease = new Button(200, 60, 20, 20, new StringTextComponent("-"), button -> shiftBasePos(0, -1, 0)); - private Button buttonBaseposYIncrease = new Button(300, 60, 20, 20, new StringTextComponent("+"), button -> shiftBasePos(0, 1, 0)); - private Button buttonBaseposZDecrease = new Button(200, 80, 20, 20, new StringTextComponent("-"), button -> shiftBasePos(0, 0, -1)); - private Button buttonBaseposZIncrease = new Button(300, 80, 20, 20, new StringTextComponent("+"), button -> shiftBasePos(0, 0, 1)); - private TextFieldWidget textFieldX; - private TextFieldWidget textFieldY; - private TextFieldWidget textFieldZ; - private Button buttonSetX = new Button(270, 40, 30, 20, new TranslationTextComponent("screen.buildguide.set"), button -> { + private Button buttonBaseposXDecrease = new Button(200, 40, 20, 20, new TextComponent("-"), button -> shiftBasePos(-1, 0, 0)); + private Button buttonBaseposXIncrease = new Button(300, 40, 20, 20, new TextComponent("+"), button -> shiftBasePos(1, 0, 0)); + private Button buttonBaseposYDecrease = new Button(200, 60, 20, 20, new TextComponent("-"), button -> shiftBasePos(0, -1, 0)); + private Button buttonBaseposYIncrease = new Button(300, 60, 20, 20, new TextComponent("+"), button -> shiftBasePos(0, 1, 0)); + private Button buttonBaseposZDecrease = new Button(200, 80, 20, 20, new TextComponent("-"), button -> shiftBasePos(0, 0, -1)); + private Button buttonBaseposZIncrease = new Button(300, 80, 20, 20, new TextComponent("+"), button -> shiftBasePos(0, 0, 1)); + private EditBox textFieldX; + private EditBox textFieldY; + private EditBox textFieldZ; + private Button buttonSetX = new Button(270, 40, 30, 20, new TranslatableComponent("screen.buildguide.set"), button -> { try { - int newval = Integer.parseInt(textFieldX.getText()); + int newval = Integer.parseInt(textFieldX.getValue()); BuildGuide.state.basePos = new Vector3d(newval, BuildGuide.state.basePos.y, BuildGuide.state.basePos.z); textFieldX.setTextColor(0xFFFFFF); }catch(NumberFormatException e) { textFieldX.setTextColor(0xFF0000); } }); - private Button buttonSetY = new Button(270, 60, 30, 20, new TranslationTextComponent("screen.buildguide.set"), button -> { + private Button buttonSetY = new Button(270, 60, 30, 20, new TranslatableComponent("screen.buildguide.set"), button -> { try { - int newval = Integer.parseInt(textFieldY.getText()); + int newval = Integer.parseInt(textFieldY.getValue()); BuildGuide.state.basePos = new Vector3d(BuildGuide.state.basePos.x, newval, BuildGuide.state.basePos.z); textFieldY.setTextColor(0xFFFFFF); }catch(NumberFormatException e) { textFieldY.setTextColor(0xFF0000); } }); - private Button buttonSetZ = new Button(270, 80, 30, 20, new TranslationTextComponent("screen.buildguide.set"), button -> { + private Button buttonSetZ = new Button(270, 80, 30, 20, new TranslatableComponent("screen.buildguide.set"), button -> { try { - int newval = Integer.parseInt(textFieldZ.getText()); + int newval = Integer.parseInt(textFieldZ.getValue()); BuildGuide.state.basePos = new Vector3d(BuildGuide.state.basePos.x, BuildGuide.state.basePos.y, newval); textFieldZ.setTextColor(0xFFFFFF); }catch(NumberFormatException e) { @@ -73,52 +74,52 @@ public class BuildGuideScreen extends Screen{ }); public BuildGuideScreen() { - super(new TranslationTextComponent("screen.buildguide.title")); + super(new TranslatableComponent("screen.buildguide.title")); } @Override protected void init() { - titleGlobalProperties = new TranslationTextComponent("screen.buildguide.globalproperties").getString(); - titleShapeProperties = new TranslationTextComponent("screen.buildguide.shapeproperties").getString(); - titleBasepos = new TranslationTextComponent("screen.buildguide.basepos").getString(); - titleNumberOfBlocks = new TranslationTextComponent("screen.buildguide.numberofblocks").getString(); - textShape = new TranslationTextComponent("screen.buildguide.shape").getString(); + titleGlobalProperties = new TranslatableComponent("screen.buildguide.globalproperties").getString(); + titleShapeProperties = new TranslatableComponent("screen.buildguide.shapeproperties").getString(); + titleBasepos = new TranslatableComponent("screen.buildguide.basepos").getString(); + titleNumberOfBlocks = new TranslatableComponent("screen.buildguide.numberofblocks").getString(); + textShape = new TranslatableComponent("screen.buildguide.shape").getString(); if(BuildGuide.state.basePos == null) { //Very likely the first time opening, so basepos and shapes haven't been properly set up yet setBasePos(); for(Shape shape: BuildGuide.state.shapeStore) shape.update(); } - buttonClose = new Button(this.width - 20, 0, 20, 20, new StringTextComponent("X"), button -> Minecraft.getInstance().displayGuiScreen(null)); + buttonClose = new Button(this.width - 20, 0, 20, 20, new TextComponent("X"), button -> Minecraft.getInstance().setScreen(null)); - addButton(buttonClose); - addButton(buttonShapePrevious); - addButton(buttonShapeNext); - addButton(buttonBasepos); - addButton(buttonColours); - addButton(buttonBaseposXDecrease); - addButton(buttonBaseposXIncrease); - addButton(buttonBaseposYDecrease); - addButton(buttonBaseposYIncrease); - addButton(buttonBaseposZDecrease); - addButton(buttonBaseposZIncrease); + addRenderableWidget(buttonClose); + addRenderableWidget(buttonShapePrevious); + addRenderableWidget(buttonShapeNext); + addRenderableWidget(buttonBasepos); + addRenderableWidget(buttonColours); + addRenderableWidget(buttonBaseposXDecrease); + addRenderableWidget(buttonBaseposXIncrease); + addRenderableWidget(buttonBaseposYDecrease); + addRenderableWidget(buttonBaseposYIncrease); + addRenderableWidget(buttonBaseposZDecrease); + addRenderableWidget(buttonBaseposZIncrease); - textFieldX = new TextFieldWidget(font, 220, 40, 50, 20, new StringTextComponent("")); - textFieldX.setText("" + (int) BuildGuide.state.basePos.x); + textFieldX = new EditBox(font, 220, 40, 50, 20, new TextComponent("")); + textFieldX.setValue("" + (int) BuildGuide.state.basePos.x); textFieldX.setTextColor(0xFFFFFF); - children.add(textFieldX); - textFieldY = new TextFieldWidget(font, 220, 60, 50, 20, new StringTextComponent("")); - textFieldY.setText("" + (int) BuildGuide.state.basePos.y); + addRenderableWidget(textFieldX); + textFieldY = new EditBox(font, 220, 60, 50, 20, new TextComponent("")); + textFieldY.setValue("" + (int) BuildGuide.state.basePos.y); textFieldY.setTextColor(0xFFFFFF); - children.add(textFieldY); - textFieldZ = new TextFieldWidget(font, 220, 80, 50, 20, new StringTextComponent("")); - textFieldZ.setText("" + (int) BuildGuide.state.basePos.z); + addRenderableWidget(textFieldY); + textFieldZ = new EditBox(font, 220, 80, 50, 20, new TextComponent("")); + textFieldZ.setValue("" + (int) BuildGuide.state.basePos.z); textFieldZ.setTextColor(0xFFFFFF); - children.add(textFieldZ); + addRenderableWidget(textFieldZ); - addButton(buttonSetX); - addButton(buttonSetY); - addButton(buttonSetZ); + addRenderableWidget(buttonSetX); + addRenderableWidget(buttonSetY); + addRenderableWidget(buttonSetZ); properties.add(BuildGuide.state.propertyDepthTest); @@ -142,24 +143,24 @@ public boolean isPauseScreen() { } @Override - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { super.render(matrixStack, mouseX, mouseY, partialTicks); - font.drawStringWithShadow(matrixStack, title.getString(), (width - font.getStringWidth(title.getString())) / 2, 5, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, titleGlobalProperties, (160 - font.getStringWidth(titleGlobalProperties)) / 2, 25, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, titleShapeProperties, (160 - font.getStringWidth(titleShapeProperties)) / 2, 130, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, titleBasepos, 160 + (160 - font.getStringWidth(titleBasepos)) / 2, 25, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, titleNumberOfBlocks, 340 + (100 - font.getStringWidth(titleNumberOfBlocks)) / 2, 25, 0xFFFFFF); + font.drawShadow(matrixStack, title.getString(), (width - font.width(title.getString())) / 2, 5, 0xFFFFFF); + font.drawShadow(matrixStack, titleGlobalProperties, (160 - font.width(titleGlobalProperties)) / 2, 25, 0xFFFFFF); + font.drawShadow(matrixStack, titleShapeProperties, (160 - font.width(titleShapeProperties)) / 2, 130, 0xFFFFFF); + font.drawShadow(matrixStack, titleBasepos, 160 + (160 - font.width(titleBasepos)) / 2, 25, 0xFFFFFF); + font.drawShadow(matrixStack, titleNumberOfBlocks, 340 + (100 - font.width(titleNumberOfBlocks)) / 2, 25, 0xFFFFFF); String numberOfBlocks = "" + State.getCurrentShape().getNumberOfBlocks(); String numberOfStacks = "(" + (State.getCurrentShape().getNumberOfBlocks() / 64) + " x 64 + " + (State.getCurrentShape().getNumberOfBlocks() % 64) + ")"; - font.drawStringWithShadow(matrixStack, numberOfBlocks, 340 + (100 - font.getStringWidth(numberOfBlocks)) / 2, 45, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, numberOfStacks, 340 + (100 - font.getStringWidth(numberOfStacks)) / 2, 65, 0xFFFFFF); + font.drawShadow(matrixStack, numberOfBlocks, 340 + (100 - font.width(numberOfBlocks)) / 2, 45, 0xFFFFFF); + font.drawShadow(matrixStack, numberOfStacks, 340 + (100 - font.width(numberOfStacks)) / 2, 65, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, textShape, 5, 45, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, State.getCurrentShape().getTranslatedName(), 80 + (60 - font.getStringWidth(State.getCurrentShape().getTranslatedName())) / 2, 45, 0xFFFFFF); + font.drawShadow(matrixStack, textShape, 5, 45, 0xFFFFFF); + font.drawShadow(matrixStack, State.getCurrentShape().getTranslatedName(), 80 + (60 - font.width(State.getCurrentShape().getTranslatedName())) / 2, 45, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, "X", 185, 45, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, "Y", 185, 65, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, "Z", 185, 85, 0xFFFFFF); + font.drawShadow(matrixStack, "X", 185, 45, 0xFFFFFF); + font.drawShadow(matrixStack, "Y", 185, 65, 0xFFFFFF); + font.drawShadow(matrixStack, "Z", 185, 85, 0xFFFFFF); textFieldX.render(matrixStack, mouseX, mouseY, partialTicks); textFieldY.render(matrixStack, mouseX, mouseY, partialTicks); textFieldZ.render(matrixStack, mouseX, mouseY, partialTicks); @@ -183,37 +184,37 @@ private void updateShape(int di) { } private void setBasePos() { - Vector3d pos = Minecraft.getInstance().player.getPositionVec(); + Vec3 pos = Minecraft.getInstance().player.position(); BuildGuide.state.basePos = new Vector3d(Math.floor(pos.x), Math.floor(pos.y), Math.floor(pos.z)); if(textFieldX != null) { - textFieldX.setText("" + (int) BuildGuide.state.basePos.x); + textFieldX.setValue("" + (int) BuildGuide.state.basePos.x); textFieldX.setTextColor(0xFFFFFF); } if(textFieldY != null) { - textFieldY.setText("" + (int) BuildGuide.state.basePos.y); + textFieldY.setValue("" + (int) BuildGuide.state.basePos.y); textFieldY.setTextColor(0xFFFFFF); } if(textFieldZ != null) { - textFieldZ.setText("" + (int) BuildGuide.state.basePos.z); + textFieldZ.setValue("" + (int) BuildGuide.state.basePos.z); textFieldZ.setTextColor(0xFFFFFF); } } private void shiftBasePos(int dx, int dy, int dz) { BuildGuide.state.basePos = new Vector3d(BuildGuide.state.basePos.x + dx, BuildGuide.state.basePos.y + dy, BuildGuide.state.basePos.z + dz); - textFieldX.setText("" + (int) BuildGuide.state.basePos.x); - textFieldY.setText("" + (int) BuildGuide.state.basePos.y); - textFieldZ.setText("" + (int) BuildGuide.state.basePos.z); + textFieldX.setValue("" + (int) BuildGuide.state.basePos.x); + textFieldY.setValue("" + (int) BuildGuide.state.basePos.y); + textFieldZ.setValue("" + (int) BuildGuide.state.basePos.z); textFieldX.setTextColor(0xFFFFFF); textFieldY.setTextColor(0xFFFFFF); textFieldZ.setTextColor(0xFFFFFF); } public void addButtonExternal(AbstractButton button) { - addButton(button); + addRenderableWidget(button); } - public void addTextFieldExternal(TextFieldWidget tfw) { - children.add(tfw); + public void addEditBoxExternal(EditBox eb) { + addRenderableWidget(eb); } } diff --git a/src/main/java/brentmaas/buildguide/screen/ColoursScreen.java b/src/main/java/brentmaas/buildguide/screen/ColoursScreen.java index 9d3e33d..2ae696e 100644 --- a/src/main/java/brentmaas/buildguide/screen/ColoursScreen.java +++ b/src/main/java/brentmaas/buildguide/screen/ColoursScreen.java @@ -1,21 +1,22 @@ package brentmaas.buildguide.screen; -import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.vertex.PoseStack; import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.State; import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.client.gui.widget.button.Button; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; -import net.minecraftforge.fml.client.gui.widget.Slider; +import net.minecraft.client.gui.components.AbstractSliderButton; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.BaseComponent; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class ColoursScreen extends Screen{ private String titleShape; private String titleBasepos; - private Button buttonBack = new Button(0, 0, 20, 20, new StringTextComponent("<-"), button -> Minecraft.getInstance().displayGuiScreen(new BuildGuideScreen())); + private Button buttonBack = new Button(0, 0, 20, 20, new TextComponent("<-"), button -> Minecraft.getInstance().setScreen(new BuildGuideScreen())); private Slider sliderShapeR; private Slider sliderShapeG; private Slider sliderShapeB; @@ -30,31 +31,45 @@ public class ColoursScreen extends Screen{ private Button buttonDefaultBasepos; public ColoursScreen() { - super(new TranslationTextComponent("screen.buildguide.colours")); + super(new TranslatableComponent("screen.buildguide.colours")); } @Override protected void init() { - titleShape = new TranslationTextComponent("screen.buildguide.shape").getString(); - titleBasepos = new TranslationTextComponent("screen.buildguide.basepos").getString(); + titleShape = new TranslatableComponent("screen.buildguide.shape").getString(); + titleBasepos = new TranslatableComponent("screen.buildguide.basepos").getString(); - sliderShapeR = new Slider(0, 40, 100, 20, new StringTextComponent("R: "), new StringTextComponent(""), 0.0, 1.0, BuildGuide.state.colourShapeR, true, true, null); - sliderShapeG = new Slider(0, 60, 100, 20, new StringTextComponent("G: "), new StringTextComponent(""), 0.0, 1.0, BuildGuide.state.colourShapeG, true, true, null); - sliderShapeB = new Slider(0, 80, 100, 20, new StringTextComponent("B: "), new StringTextComponent(""), 0.0, 1.0, BuildGuide.state.colourShapeB, true, true, null); - sliderShapeA = new Slider(0, 100, 100, 20, new StringTextComponent("A: "), new StringTextComponent(""), 0.0, 1.0, BuildGuide.state.colourShapeA, true, true, null); - sliderBaseposR = new Slider(120, 40, 100, 20, new StringTextComponent("R: "), new StringTextComponent(""), 0.0, 1.0, BuildGuide.state.colourBaseposR, true, true, null); - sliderBaseposG = new Slider(120, 60, 100, 20, new StringTextComponent("G: "), new StringTextComponent(""), 0.0, 1.0, BuildGuide.state.colourBaseposG, true, true, null); - sliderBaseposB = new Slider(120, 80, 100, 20, new StringTextComponent("B: "), new StringTextComponent(""), 0.0, 1.0, BuildGuide.state.colourBaseposB, true, true, null); - sliderBaseposA = new Slider(120, 100, 100, 20, new StringTextComponent("A: "), new StringTextComponent(""), 0.0, 1.0, BuildGuide.state.colourBaseposA, true, true, null); + sliderShapeR = new Slider(0, 40, 100, 20, new TextComponent("R: "), 0.0, 1.0, BuildGuide.state.colourShapeR); + sliderShapeG = new Slider(0, 60, 100, 20, new TextComponent("G: "), 0.0, 1.0, BuildGuide.state.colourShapeG); + sliderShapeB = new Slider(0, 80, 100, 20, new TextComponent("B: "), 0.0, 1.0, BuildGuide.state.colourShapeB); + sliderShapeA = new Slider(0, 100, 100, 20, new TextComponent("A: "), 0.0, 1.0, BuildGuide.state.colourShapeA); + sliderBaseposR = new Slider(120, 40, 100, 20, new TextComponent("R: "), 0.0, 1.0, BuildGuide.state.colourBaseposR); + sliderBaseposG = new Slider(120, 60, 100, 20, new TextComponent("G: "), 0.0, 1.0, BuildGuide.state.colourBaseposG); + sliderBaseposB = new Slider(120, 80, 100, 20, new TextComponent("B: "), 0.0, 1.0, BuildGuide.state.colourBaseposB); + sliderBaseposA = new Slider(120, 100, 100, 20, new TextComponent("A: "), 0.0, 1.0, BuildGuide.state.colourBaseposA); - buttonSetShape = new Button(0, 120, 100, 20, new TranslationTextComponent("screen.buildguide.set"), button -> State.updateCurrentShape()); - buttonSetBasepos = new Button(120, 120, 100, 20, new TranslationTextComponent("screen.buildguide.set"), button -> State.updateCurrentShape()); + buttonSetShape = new Button(0, 120, 100, 20, new TranslatableComponent("screen.buildguide.set"), button -> { + BuildGuide.state.colourShapeR = (float) sliderShapeR.getValue(); + BuildGuide.state.colourShapeG = (float) sliderShapeG.getValue(); + BuildGuide.state.colourShapeB = (float) sliderShapeB.getValue(); + BuildGuide.state.colourShapeA = (float) sliderShapeA.getValue(); + + State.updateCurrentShape(); + }); + buttonSetBasepos = new Button(120, 120, 100, 20, new TranslatableComponent("screen.buildguide.set"), button -> { + BuildGuide.state.colourBaseposR = (float) sliderBaseposR.getValue(); + BuildGuide.state.colourBaseposG = (float) sliderBaseposG.getValue(); + BuildGuide.state.colourBaseposB = (float) sliderBaseposB.getValue(); + BuildGuide.state.colourBaseposA = (float) sliderBaseposA.getValue(); + + State.updateCurrentShape(); + }); - buttonDefaultShape = new Button(0, 140, 100, 20, new TranslationTextComponent("screen.buildguide.default"), button -> { - sliderShapeR.setValue(1.0); - sliderShapeG.setValue(1.0); - sliderShapeB.setValue(1.0); - sliderShapeA.setValue(0.5); + buttonDefaultShape = new Button(0, 140, 100, 20, new TranslatableComponent("screen.buildguide.default"), button -> { + sliderShapeR.setManualValue(1.0); + sliderShapeG.setManualValue(1.0); + sliderShapeB.setManualValue(1.0); + sliderShapeA.setManualValue(0.5); sliderShapeR.updateSlider(); sliderShapeG.updateSlider(); sliderShapeB.updateSlider(); @@ -65,11 +80,11 @@ protected void init() { BuildGuide.state.colourShapeA = 0.5f; State.updateCurrentShape(); }); - buttonDefaultBasepos = new Button(120, 140, 100, 20, new TranslationTextComponent("screen.buildguide.default"), button -> { - sliderBaseposR.setValue(1.0); - sliderBaseposG.setValue(0.0); - sliderBaseposB.setValue(0.0); - sliderBaseposA.setValue(0.5); + buttonDefaultBasepos = new Button(120, 140, 100, 20, new TranslatableComponent("screen.buildguide.default"), button -> { + sliderBaseposR.setManualValue(1.0); + sliderBaseposG.setManualValue(0.0); + sliderBaseposB.setManualValue(0.0); + sliderBaseposA.setManualValue(0.5); sliderBaseposR.updateSlider(); sliderBaseposG.updateSlider(); sliderBaseposB.updateSlider(); @@ -81,19 +96,19 @@ protected void init() { State.updateCurrentShape(); }); - addButton(buttonBack); - addButton(sliderShapeR); - addButton(sliderShapeG); - addButton(sliderShapeB); - addButton(sliderShapeA); - addButton(sliderBaseposR); - addButton(sliderBaseposG); - addButton(sliderBaseposB); - addButton(sliderBaseposA); - addButton(buttonSetShape); - addButton(buttonSetBasepos); - addButton(buttonDefaultShape); - addButton(buttonDefaultBasepos); + addRenderableWidget(buttonBack); + addRenderableWidget(sliderShapeR); + addRenderableWidget(sliderShapeG); + addRenderableWidget(sliderShapeB); + addRenderableWidget(sliderShapeA); + addRenderableWidget(sliderBaseposR); + addRenderableWidget(sliderBaseposG); + addRenderableWidget(sliderBaseposB); + addRenderableWidget(sliderBaseposA); + addRenderableWidget(buttonSetShape); + addRenderableWidget(buttonSetBasepos); + addRenderableWidget(buttonDefaultShape); + addRenderableWidget(buttonDefaultBasepos); } @Override @@ -102,33 +117,42 @@ public boolean isPauseScreen() { } @Override - public void render(MatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { + public void render(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { super.render(matrixStack, mouseX, mouseY, partialTicks); - font.drawStringWithShadow(matrixStack, title.getString(), (width - font.getStringWidth(title.getString())) / 2, 5, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, titleShape, (100 - font.getStringWidth(titleShape)) / 2, 25, 0xFFFFFF); - font.drawStringWithShadow(matrixStack, titleBasepos, 120 + (100 - font.getStringWidth(titleBasepos)) / 2, 25, 0xFFFFFF); - - BuildGuide.state.colourShapeR = (float) sliderShapeR.getValue(); - BuildGuide.state.colourShapeG = (float) sliderShapeG.getValue(); - BuildGuide.state.colourShapeB = (float) sliderShapeB.getValue(); - BuildGuide.state.colourShapeA = (float) sliderShapeA.getValue(); - BuildGuide.state.colourBaseposR = (float) sliderBaseposR.getValue(); - BuildGuide.state.colourBaseposG = (float) sliderBaseposG.getValue(); - BuildGuide.state.colourBaseposB = (float) sliderBaseposB.getValue(); - BuildGuide.state.colourBaseposA = (float) sliderBaseposA.getValue(); + font.drawShadow(matrixStack, title.getString(), (width - font.width(title.getString())) / 2, 5, 0xFFFFFF); + font.drawShadow(matrixStack, titleShape, (100 - font.width(titleShape)) / 2, 25, 0xFFFFFF); + font.drawShadow(matrixStack, titleBasepos, 120 + (100 - font.width(titleBasepos)) / 2, 25, 0xFFFFFF); } - @Override - public void onClose() { - BuildGuide.state.colourShapeR = (float) sliderShapeR.getValue(); - BuildGuide.state.colourShapeG = (float) sliderShapeG.getValue(); - BuildGuide.state.colourShapeB = (float) sliderShapeB.getValue(); - BuildGuide.state.colourShapeA = (float) sliderShapeA.getValue(); - BuildGuide.state.colourBaseposR = (float) sliderBaseposR.getValue(); - BuildGuide.state.colourBaseposG = (float) sliderBaseposG.getValue(); - BuildGuide.state.colourBaseposB = (float) sliderBaseposB.getValue(); - BuildGuide.state.colourBaseposA = (float) sliderBaseposA.getValue(); + class Slider extends AbstractSliderButton { + private double min, max; + private String prefix; + + public Slider(int x, int y, int width, int height, BaseComponent name, double min, double max, double value) { + super(x, y, width, height, new TextComponent(name.getString() + ": " + Math.round(10.0 * value) / 10.0), (value - min) / (max - min)); + this.min = min; + this.max = max; + prefix = name.getString() + ": "; + } + + protected void updateMessage() { + setMessage(new TextComponent(prefix + Math.round(10.0 * getValue()) / 10.0)); + } + + protected void applyValue() { + + } + + public void updateSlider() { + updateMessage(); + } + + public void setManualValue(double value) { + this.value = (value - min) / (max - min); + } - super.onClose(); + public double getValue() { + return value * (max - min) + min; + } } } diff --git a/src/main/java/brentmaas/buildguide/shapes/Shape.java b/src/main/java/brentmaas/buildguide/shapes/Shape.java index ee556fd..d9de3c3 100644 --- a/src/main/java/brentmaas/buildguide/shapes/Shape.java +++ b/src/main/java/brentmaas/buildguide/shapes/Shape.java @@ -2,15 +2,16 @@ import java.util.ArrayList; -import org.lwjgl.opengl.GL11; +import com.mojang.blaze3d.systems.RenderSystem; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.VertexBuffer; +import com.mojang.blaze3d.vertex.VertexFormat; +import com.mojang.math.Matrix4f; import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.property.Property; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.client.renderer.vertex.DefaultVertexFormats; -import net.minecraft.client.renderer.vertex.VertexBuffer; -import net.minecraft.util.math.vector.Matrix4f; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; public abstract class Shape { public ArrayList> properties = new ArrayList>(); @@ -18,7 +19,7 @@ public abstract class Shape { private int nBlocks = 0; public Shape() { - buffer = new VertexBuffer(DefaultVertexFormats.POSITION_COLOR); + buffer = new VertexBuffer(); } protected abstract void updateShape(BufferBuilder builder); @@ -28,63 +29,58 @@ public void update() { nBlocks = -1; //Counteract the add from the base position long t = System.currentTimeMillis(); BufferBuilder builder = new BufferBuilder(4); //4 is lowest working. Number of blocks isn't always known, so it'll have to grow on its own - builder.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR); + builder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); this.updateShape(builder); addCube(builder, 0.4, 0.4, 0.4, 0.2, BuildGuide.state.colourBaseposR, BuildGuide.state.colourBaseposG, BuildGuide.state.colourBaseposB, BuildGuide.state.colourBaseposA); //Base position - builder.finishDrawing(); + builder.end(); buffer.close(); - buffer = new VertexBuffer(DefaultVertexFormats.POSITION_COLOR); + buffer = new VertexBuffer(); buffer.upload(builder); if(BuildGuide.state.debugGenerationTimingsEnabled) { BuildGuide.logger.debug("Shape " + getTranslatedName() + " has been generated in " + (System.currentTimeMillis() - t) + " ms"); } } - public void render(Matrix4f matrix) { - //https://gist.github.com/gigaherz/87939db73d8adf4aace6ec7cf611bd2d - this.buffer.bindBuffer(); - DefaultVertexFormats.POSITION_COLOR.setupBufferState(0); - this.buffer.draw(matrix, GL11.GL_QUADS); - VertexBuffer.unbindBuffer(); - DefaultVertexFormats.POSITION_COLOR.clearBufferState(); + public void render(Matrix4f model, Matrix4f projection) { + buffer.drawWithShader(model, projection, RenderSystem.getShader()); } protected void addCube(BufferBuilder buffer, double x, double y, double z, double s, float r, float g, float b, float a) { //-X - buffer.pos(x, y, z).color(r, g, b, a).endVertex(); - buffer.pos(x, y, z+s).color(r, g, b, a).endVertex(); - buffer.pos(x, y+s, z+s).color(r, g, b, a).endVertex(); - buffer.pos(x, y+s, z).color(r, g, b, a).endVertex(); + buffer.vertex(x, y, z).color(r, g, b, a).endVertex(); + buffer.vertex(x, y, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x, y+s, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x, y+s, z).color(r, g, b, a).endVertex(); //-Y - buffer.pos(x, y, z).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y, z).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y, z+s).color(r, g, b, a).endVertex(); - buffer.pos(x, y, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x, y, z).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y, z).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x, y, z+s).color(r, g, b, a).endVertex(); //-Z - buffer.pos(x, y, z).color(r, g, b, a).endVertex(); - buffer.pos(x, y+s, z).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y+s, z).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y, z).color(r, g, b, a).endVertex(); + buffer.vertex(x, y, z).color(r, g, b, a).endVertex(); + buffer.vertex(x, y+s, z).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y+s, z).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y, z).color(r, g, b, a).endVertex(); //+X - buffer.pos(x+s, y, z).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y+s, z).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y+s, z+s).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y, z).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y+s, z).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y+s, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y, z+s).color(r, g, b, a).endVertex(); //+Y - buffer.pos(x, y+s, z).color(r, g, b, a).endVertex(); - buffer.pos(x, y+s, z+s).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y+s, z+s).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y+s, z).color(r, g, b, a).endVertex(); + buffer.vertex(x, y+s, z).color(r, g, b, a).endVertex(); + buffer.vertex(x, y+s, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y+s, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y+s, z).color(r, g, b, a).endVertex(); //+Z - buffer.pos(x, y, z+s).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y, z+s).color(r, g, b, a).endVertex(); - buffer.pos(x+s, y+s, z+s).color(r, g, b, a).endVertex(); - buffer.pos(x, y+s, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x, y, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x+s, y+s, z+s).color(r, g, b, a).endVertex(); + buffer.vertex(x, y+s, z+s).color(r, g, b, a).endVertex(); nBlocks++; } @@ -102,7 +98,7 @@ public void onDeselectedInGUI() { } public String getTranslatedName() { - return new TranslationTextComponent(getTranslationKey()).getString(); + return new TranslatableComponent(getTranslationKey()).getString(); } public int getNumberOfBlocks() { diff --git a/src/main/java/brentmaas/buildguide/shapes/ShapeCircle.java b/src/main/java/brentmaas/buildguide/shapes/ShapeCircle.java index 7a36847..9cbdb2d 100644 --- a/src/main/java/brentmaas/buildguide/shapes/ShapeCircle.java +++ b/src/main/java/brentmaas/buildguide/shapes/ShapeCircle.java @@ -1,11 +1,12 @@ package brentmaas.buildguide.shapes; +import com.mojang.blaze3d.vertex.BufferBuilder; + import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.property.PropertyEnum; import brentmaas.buildguide.property.PropertyNonzeroInt; import brentmaas.buildguide.property.PropertyPositiveInt; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class ShapeCircle extends Shape { private enum direction{ @@ -16,9 +17,9 @@ private enum direction{ private String[] directionNames = {"X", "Y", "Z"}; - private PropertyEnum propertyDir = new PropertyEnum(0, 145, direction.X, new TranslationTextComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); - private PropertyPositiveInt propertyRadius = new PropertyPositiveInt(0, 165, 3, new TranslationTextComponent("property.buildguide.radius"), () -> {this.update();}); - private PropertyNonzeroInt propertyHeight = new PropertyNonzeroInt(0, 185, 1, new TranslationTextComponent("property.buildguide.height"), () -> {this.update();}); + private PropertyEnum propertyDir = new PropertyEnum(0, 145, direction.X, new TranslatableComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); + private PropertyPositiveInt propertyRadius = new PropertyPositiveInt(0, 165, 3, new TranslatableComponent("property.buildguide.radius"), () -> {this.update();}); + private PropertyNonzeroInt propertyHeight = new PropertyNonzeroInt(0, 185, 1, new TranslatableComponent("property.buildguide.height"), () -> {this.update();}); public ShapeCircle() { super(); diff --git a/src/main/java/brentmaas/buildguide/shapes/ShapeCuboid.java b/src/main/java/brentmaas/buildguide/shapes/ShapeCuboid.java index bb95907..e015743 100644 --- a/src/main/java/brentmaas/buildguide/shapes/ShapeCuboid.java +++ b/src/main/java/brentmaas/buildguide/shapes/ShapeCuboid.java @@ -1,11 +1,12 @@ package brentmaas.buildguide.shapes; +import com.mojang.blaze3d.vertex.BufferBuilder; + import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.property.PropertyEnum; import brentmaas.buildguide.property.PropertyNonzeroInt; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.text.StringTextComponent; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class ShapeCuboid extends Shape{ private enum walls{ @@ -21,10 +22,10 @@ private enum walls{ private String[] wallsNames = {"XYZ", "X", "Y", "Z", "XY", "XZ", "YZ", "-"}; - private PropertyNonzeroInt propertyX = new PropertyNonzeroInt(0, 145, 3, new StringTextComponent("X"), () -> {this.update();}); - private PropertyNonzeroInt propertyY = new PropertyNonzeroInt(0, 165, 3, new StringTextComponent("Y"), () -> {this.update();}); - private PropertyNonzeroInt propertyZ = new PropertyNonzeroInt(0, 185, 3, new StringTextComponent("Z"), () -> {this.update();}); - private PropertyEnum propertyWalls = new PropertyEnum(0, 205, walls.ALL, new TranslationTextComponent("property.buildguide.walls"), () -> {this.update();}, wallsNames); + private PropertyNonzeroInt propertyX = new PropertyNonzeroInt(0, 145, 3, new TextComponent("X"), () -> {this.update();}); + private PropertyNonzeroInt propertyY = new PropertyNonzeroInt(0, 165, 3, new TextComponent("Y"), () -> {this.update();}); + private PropertyNonzeroInt propertyZ = new PropertyNonzeroInt(0, 185, 3, new TextComponent("Z"), () -> {this.update();}); + private PropertyEnum propertyWalls = new PropertyEnum(0, 205, walls.ALL, new TranslatableComponent("property.buildguide.walls"), () -> {this.update();}, wallsNames); public ShapeCuboid() { diff --git a/src/main/java/brentmaas/buildguide/shapes/ShapeEllipse.java b/src/main/java/brentmaas/buildguide/shapes/ShapeEllipse.java index e7b938a..84c65a7 100644 --- a/src/main/java/brentmaas/buildguide/shapes/ShapeEllipse.java +++ b/src/main/java/brentmaas/buildguide/shapes/ShapeEllipse.java @@ -1,11 +1,12 @@ package brentmaas.buildguide.shapes; +import com.mojang.blaze3d.vertex.BufferBuilder; + import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.property.PropertyEnum; import brentmaas.buildguide.property.PropertyNonzeroInt; import brentmaas.buildguide.property.PropertyPositiveInt; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class ShapeEllipse extends Shape { private enum direction{ @@ -16,10 +17,10 @@ private enum direction{ private String[] directionNames = {"X", "Y", "Z"}; - private PropertyEnum propertyDir = new PropertyEnum(0, 145, direction.X, new TranslationTextComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); - private PropertyPositiveInt propertySemi1 = new PropertyPositiveInt(0, 165, 3, new TranslationTextComponent("property.buildguide.semiaxis", "Y"), () -> {this.update();}); - private PropertyPositiveInt propertySemi2 = new PropertyPositiveInt(0, 185, 3, new TranslationTextComponent("property.buildguide.semiaxis", "Z"), () -> {this.update();}); - private PropertyNonzeroInt propertyHeight = new PropertyNonzeroInt(0, 205, 1, new TranslationTextComponent("property.buildguide.height"), () -> {this.update();}); + private PropertyEnum propertyDir = new PropertyEnum(0, 145, direction.X, new TranslatableComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); + private PropertyPositiveInt propertySemi1 = new PropertyPositiveInt(0, 165, 3, new TranslatableComponent("property.buildguide.semiaxis", "Y"), () -> {this.update();}); + private PropertyPositiveInt propertySemi2 = new PropertyPositiveInt(0, 185, 3, new TranslatableComponent("property.buildguide.semiaxis", "Z"), () -> {this.update();}); + private PropertyNonzeroInt propertyHeight = new PropertyNonzeroInt(0, 205, 1, new TranslatableComponent("property.buildguide.height"), () -> {this.update();}); public ShapeEllipse() { super(); @@ -82,16 +83,16 @@ protected void updateShape(BufferBuilder builder) { switch(propertyDir.value) { case X: - propertySemi1.setName(new TranslationTextComponent("property.buildguide.semiaxis", "Y")); - propertySemi2.setName(new TranslationTextComponent("property.buildguide.semiaxis", "Z")); + propertySemi1.setName(new TranslatableComponent("property.buildguide.semiaxis", "Y")); + propertySemi2.setName(new TranslatableComponent("property.buildguide.semiaxis", "Z")); break; case Y: - propertySemi1.setName(new TranslationTextComponent("property.buildguide.semiaxis", "X")); - propertySemi2.setName(new TranslationTextComponent("property.buildguide.semiaxis", "Z")); + propertySemi1.setName(new TranslatableComponent("property.buildguide.semiaxis", "X")); + propertySemi2.setName(new TranslatableComponent("property.buildguide.semiaxis", "Z")); break; case Z: - propertySemi1.setName(new TranslationTextComponent("property.buildguide.semiaxis", "X")); - propertySemi2.setName(new TranslationTextComponent("property.buildguide.semiaxis", "Y")); + propertySemi1.setName(new TranslatableComponent("property.buildguide.semiaxis", "X")); + propertySemi2.setName(new TranslatableComponent("property.buildguide.semiaxis", "Y")); break; } } diff --git a/src/main/java/brentmaas/buildguide/shapes/ShapeEllipsoid.java b/src/main/java/brentmaas/buildguide/shapes/ShapeEllipsoid.java index 2b07ff9..3f05e5c 100644 --- a/src/main/java/brentmaas/buildguide/shapes/ShapeEllipsoid.java +++ b/src/main/java/brentmaas/buildguide/shapes/ShapeEllipsoid.java @@ -1,10 +1,11 @@ package brentmaas.buildguide.shapes; +import com.mojang.blaze3d.vertex.BufferBuilder; + import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.property.PropertyEnum; import brentmaas.buildguide.property.PropertyPositiveInt; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class ShapeEllipsoid extends Shape{ private enum dome { @@ -19,10 +20,10 @@ private enum dome { private String[] domeNames = {"-", "+X", "+Y", "+Z", "-X", "-Y", "-Z"}; - private PropertyPositiveInt propertySemiX = new PropertyPositiveInt(0, 145, 3, new TranslationTextComponent("property.buildguide.semiaxis", "X"), () -> {this.update();}); - private PropertyPositiveInt propertySemiY = new PropertyPositiveInt(0, 165, 3, new TranslationTextComponent("property.buildguide.semiaxis", "Y"), () -> {this.update();}); - private PropertyPositiveInt propertySemiZ = new PropertyPositiveInt(0, 185, 3, new TranslationTextComponent("property.buildguide.semiaxis", "Z"), () -> {this.update();}); - private PropertyEnum propertyDome = new PropertyEnum(0, 205, dome.NO, new TranslationTextComponent("property.buildguide.dome"), () -> {this.update();}, domeNames); + private PropertyPositiveInt propertySemiX = new PropertyPositiveInt(0, 145, 3, new TranslatableComponent("property.buildguide.semiaxis", "X"), () -> {this.update();}); + private PropertyPositiveInt propertySemiY = new PropertyPositiveInt(0, 165, 3, new TranslatableComponent("property.buildguide.semiaxis", "Y"), () -> {this.update();}); + private PropertyPositiveInt propertySemiZ = new PropertyPositiveInt(0, 185, 3, new TranslatableComponent("property.buildguide.semiaxis", "Z"), () -> {this.update();}); + private PropertyEnum propertyDome = new PropertyEnum(0, 205, dome.NO, new TranslatableComponent("property.buildguide.dome"), () -> {this.update();}, domeNames); public ShapeEllipsoid() { super(); diff --git a/src/main/java/brentmaas/buildguide/shapes/ShapeEmpty.java b/src/main/java/brentmaas/buildguide/shapes/ShapeEmpty.java index 3548f4d..e4b3b70 100644 --- a/src/main/java/brentmaas/buildguide/shapes/ShapeEmpty.java +++ b/src/main/java/brentmaas/buildguide/shapes/ShapeEmpty.java @@ -1,7 +1,7 @@ package brentmaas.buildguide.shapes; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.math.vector.Matrix4f; +import com.mojang.blaze3d.vertex.BufferBuilder; +import com.mojang.math.Matrix4f; public class ShapeEmpty extends Shape{ @@ -20,7 +20,7 @@ public void update() { } @Override - public void render(Matrix4f matrix) { + public void render(Matrix4f model, Matrix4f projection) { } diff --git a/src/main/java/brentmaas/buildguide/shapes/ShapeLine.java b/src/main/java/brentmaas/buildguide/shapes/ShapeLine.java index bf8f6f8..3bb50d5 100644 --- a/src/main/java/brentmaas/buildguide/shapes/ShapeLine.java +++ b/src/main/java/brentmaas/buildguide/shapes/ShapeLine.java @@ -1,10 +1,11 @@ package brentmaas.buildguide.shapes; +import com.mojang.blaze3d.vertex.BufferBuilder; + import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.property.PropertyEnum; import brentmaas.buildguide.property.PropertyPositiveInt; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class ShapeLine extends Shape{ private enum direction{ @@ -18,8 +19,8 @@ private enum direction{ private final String[] directionNames = {"+X", "+Y", "+Z", "-X", "-Y", "-Z"}; - private PropertyEnum propertyDir = new PropertyEnum(0, 145, direction.POSITIVE_X, new TranslationTextComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); - private PropertyPositiveInt propertyLength = new PropertyPositiveInt(0, 165, 5, new TranslationTextComponent("property.buildguide.length"), () -> {this.update();}); + private PropertyEnum propertyDir = new PropertyEnum(0, 145, direction.POSITIVE_X, new TranslatableComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); + private PropertyPositiveInt propertyLength = new PropertyPositiveInt(0, 165, 5, new TranslatableComponent("property.buildguide.length"), () -> {this.update();}); public ShapeLine() { super(); diff --git a/src/main/java/brentmaas/buildguide/shapes/ShapePolygon.java b/src/main/java/brentmaas/buildguide/shapes/ShapePolygon.java index 57c1848..40281ae 100644 --- a/src/main/java/brentmaas/buildguide/shapes/ShapePolygon.java +++ b/src/main/java/brentmaas/buildguide/shapes/ShapePolygon.java @@ -1,12 +1,13 @@ package brentmaas.buildguide.shapes; +import com.mojang.blaze3d.vertex.BufferBuilder; + import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.property.PropertyEnum; import brentmaas.buildguide.property.PropertyMinimumInt; import brentmaas.buildguide.property.PropertyNonzeroInt; import brentmaas.buildguide.property.PropertyPositiveInt; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class ShapePolygon extends Shape{ private enum direction{ @@ -29,11 +30,11 @@ private enum rotation{ private static final int[] rotXY = {0, -1, 0, 1}; private static final int[] rotYX = {0, 1, 0, -1}; - private PropertyMinimumInt propertySides = new PropertyMinimumInt(0, 145, 3, new TranslationTextComponent("property.buildguide.sides"), () -> {this.update();}, 3); - private PropertyPositiveInt propertyRadius = new PropertyPositiveInt(0, 165, 3, new TranslationTextComponent("property.buildguide.radius"), () -> {this.update();}); - private PropertyEnum propertyDir = new PropertyEnum(0, 185, direction.X, new TranslationTextComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); - private PropertyEnum propertyRot = new PropertyEnum(0, 205, rotation.ROT0, new TranslationTextComponent("property.buildguide.rotation"), () -> {this.update();}, rotationNames); - private PropertyNonzeroInt propertyHeight = new PropertyNonzeroInt(0, 225, 1, new TranslationTextComponent("property.buildguide.height"), () -> {this.update();}); + private PropertyMinimumInt propertySides = new PropertyMinimumInt(0, 145, 3, new TranslatableComponent("property.buildguide.sides"), () -> {this.update();}, 3); + private PropertyPositiveInt propertyRadius = new PropertyPositiveInt(0, 165, 3, new TranslatableComponent("property.buildguide.radius"), () -> {this.update();}); + private PropertyEnum propertyDir = new PropertyEnum(0, 185, direction.X, new TranslatableComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); + private PropertyEnum propertyRot = new PropertyEnum(0, 205, rotation.ROT0, new TranslatableComponent("property.buildguide.rotation"), () -> {this.update();}, rotationNames); + private PropertyNonzeroInt propertyHeight = new PropertyNonzeroInt(0, 225, 1, new TranslatableComponent("property.buildguide.height"), () -> {this.update();}); public ShapePolygon() { super(); diff --git a/src/main/java/brentmaas/buildguide/shapes/ShapeSphere.java b/src/main/java/brentmaas/buildguide/shapes/ShapeSphere.java index 27a3ddf..2de1299 100644 --- a/src/main/java/brentmaas/buildguide/shapes/ShapeSphere.java +++ b/src/main/java/brentmaas/buildguide/shapes/ShapeSphere.java @@ -1,10 +1,11 @@ package brentmaas.buildguide.shapes; +import com.mojang.blaze3d.vertex.BufferBuilder; + import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.property.PropertyEnum; import brentmaas.buildguide.property.PropertyPositiveInt; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class ShapeSphere extends Shape{ private enum dome { @@ -19,8 +20,8 @@ private enum dome { private String[] domeNames = {"-", "+X", "+Y", "+Z", "-X", "-Y", "-Z"}; - private PropertyPositiveInt propertyRadius = new PropertyPositiveInt(0, 145, 3, new TranslationTextComponent("property.buildguide.radius"), () -> {this.update();}); - private PropertyEnum propertyDome = new PropertyEnum(0, 165, dome.NO, new TranslationTextComponent("property.buildguide.dome"), () -> {this.update();}, domeNames); + private PropertyPositiveInt propertyRadius = new PropertyPositiveInt(0, 145, 3, new TranslatableComponent("property.buildguide.radius"), () -> {this.update();}); + private PropertyEnum propertyDome = new PropertyEnum(0, 165, dome.NO, new TranslatableComponent("property.buildguide.dome"), () -> {this.update();}, domeNames); public ShapeSphere() { super(); diff --git a/src/main/java/brentmaas/buildguide/shapes/ShapeTorus.java b/src/main/java/brentmaas/buildguide/shapes/ShapeTorus.java index 6c8d020..659a46c 100644 --- a/src/main/java/brentmaas/buildguide/shapes/ShapeTorus.java +++ b/src/main/java/brentmaas/buildguide/shapes/ShapeTorus.java @@ -1,10 +1,11 @@ package brentmaas.buildguide.shapes; +import com.mojang.blaze3d.vertex.BufferBuilder; + import brentmaas.buildguide.BuildGuide; import brentmaas.buildguide.property.PropertyEnum; import brentmaas.buildguide.property.PropertyPositiveInt; -import net.minecraft.client.renderer.BufferBuilder; -import net.minecraft.util.text.TranslationTextComponent; +import net.minecraft.network.chat.TranslatableComponent; public class ShapeTorus extends Shape{ private enum direction{ @@ -15,9 +16,9 @@ private enum direction{ private String[] directionNames = {"X", "Y", "Z"}; - private PropertyEnum propertyDir = new PropertyEnum(0, 145, direction.X, new TranslationTextComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); - private PropertyPositiveInt propertyOuterRadius = new PropertyPositiveInt(0, 165, 5, new TranslationTextComponent("property.buildguide.outerradius"), () -> {this.updateOuter();}); - private PropertyPositiveInt propertyInnerRadius = new PropertyPositiveInt(0, 185, 3, new TranslationTextComponent("property.buildguide.innerradius"), () -> {this.updateInner();}); + private PropertyEnum propertyDir = new PropertyEnum(0, 145, direction.X, new TranslatableComponent("property.buildguide.direction"), () -> {this.update();}, directionNames); + private PropertyPositiveInt propertyOuterRadius = new PropertyPositiveInt(0, 165, 5, new TranslatableComponent("property.buildguide.outerradius"), () -> {this.updateOuter();}); + private PropertyPositiveInt propertyInnerRadius = new PropertyPositiveInt(0, 185, 3, new TranslatableComponent("property.buildguide.innerradius"), () -> {this.updateInner();}); public ShapeTorus() { super(); diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index e7ad0c6..2f1d846 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -43,7 +43,7 @@ Simple client-only building guide mod. # Does this dependency have to exist - if not, ordering below must be specified mandatory=true #mandatory # The version range of the dependency - versionRange="[35,)" #mandatory + versionRange="[37,)" #mandatory # An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory ordering="NONE" # Side this dependency is applied on - BOTH, CLIENT or SERVER @@ -53,6 +53,6 @@ Simple client-only building guide mod. modId="minecraft" mandatory=true # This version range declares a minimum of the current minecraft version up to but not including the next major version - versionRange="[1.16.4,1.17)" + versionRange="[1.17.1,1.18)" ordering="NONE" side="BOTH"