diff --git a/Change Log.txt b/Change Log.txt index e684b9e08..ee6592b57 100644 --- a/Change Log.txt +++ b/Change Log.txt @@ -1,3 +1,10 @@ +######## 3.5.0-alpha5.0 ######## +- Fixed minor issue where its possible to break ore with no tool. +- Fixed Draconium capacitors not accepting enchantments like soulbound. +- Fixed issue with guardian applying negative attack damage. +- Fixed grinder entity type filter crashing client when you try to enter an invalid character. +- Fixed entity selector in mob grinder filter. + ######## 3.5.0-alpha4.0 ######## - Fixed Reactor GUI resize issue. - Fixed reactor gui closing when you are close to the stabilizer. @@ -5,7 +12,6 @@ - Fixed issue where opening Energy core GUI while holding a block would place that block. - Fixed issue where dragon heart would get knocked into the end portal bu the egg the first time you kill the dragon. - Fixed missing Brandons Core dependency. -- ######## 3.5.0-alpha3.6 ######## - Fixed a bunch of random bugs. diff --git a/build.gradle b/build.gradle index 731129047..7e6051d71 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { maven { url = "https://repo.spongepowered.org/maven" } } dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:3.+' + classpath 'net.minecraftforge.gradle:ForgeGradle:4.1.+' classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT' } } @@ -60,7 +60,7 @@ println "Starting build of ${archivesBaseName}, Version: ${config.mod_version}" println "Using Forge: ${config.forge_version}, for Minecraft: ${config.mc_version}, with Mappings: ${config.mappings}" minecraft { - mappings channel: 'snapshot', version: config.mappings + mappings channel: 'official', version: config.mc_version accessTransformer = file("src/main/resources/META-INF/accesstransformer.cfg") runs { client { diff --git a/build.properties b/build.properties index bbe9f3d2e..1e88a1609 100644 --- a/build.properties +++ b/build.properties @@ -1,12 +1,11 @@ -mc_version=1.16.4 -forge_version=35.1.16 -mappings=20201028-1.16.3 -ccl_version=3.5.0.398 -jei_version=7.6.0.+ +mc_version=1.16.5 +forge_version=36.1.0 +ccl_version=4.0.0.+ +jei_version=7.6.1.+ mod_version=3.5.0-alpha4 -bcore_version=3.5.0-alpha5.+ +bcore_version=3.5.0-7.+ pi_version=2.0.0.+ -curios_version=4.0.3.0 +curios_version=4.0.5.1 #rf_mc_version=1.12 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e8c6bf7bb..e708b1c02 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 b6868f0da..442d9132e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Wed Aug 09 15:49:49 ACST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.3-bin.zip diff --git a/gradlew b/gradlew index 91a7e269e..4f906e0c8 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,20 @@ -#!/usr/bin/env bash +#!/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. +# ############################################################################## ## @@ -6,20 +22,38 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" -warn ( ) { +warn () { echo "$*" } -die ( ) { +die () { echo echo "$*" echo @@ -30,6 +64,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,33 +75,14 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=true + ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - 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 @@ -90,7 +106,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -110,11 +126,13 @@ 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 ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` SEP="" @@ -138,27 +156,30 @@ 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 -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " } -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 8a0b282aa..ac1b06f93 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,90 +1,89 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@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 DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@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 - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_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=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -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% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src/main/java/com/brandon3055/draconicevolution/achievements/Achievements.java b/src/main/java/com/brandon3055/draconicevolution/achievements/Achievements.java index e1f189a16..9a760283f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/achievements/Achievements.java +++ b/src/main/java/com/brandon3055/draconicevolution/achievements/Achievements.java @@ -121,8 +121,8 @@ public void entityPickupEvent(EntityItemPickupEvent event) { public void craftEvent(PlayerEvent.ItemCraftedEvent event) { ItemStack stack = event.getCrafting().copy(); stack.setCount(1); - if (achievementItems.containsKey(stack.getTranslationKey()) && achievementItems.get(stack.getTranslationKey()).isCorrectCondition("craft")) { - triggerAchievement(event.getPlayer(), achievementItems.get(stack.getTranslationKey()).getName()); + if (achievementItems.containsKey(stack.getDescriptionId()) && achievementItems.get(stack.getDescriptionId()).isCorrectCondition("craft")) { + triggerAchievement(event.getPlayer(), achievementItems.get(stack.getDescriptionId()).getName()); } } @@ -130,8 +130,8 @@ public void craftEvent(PlayerEvent.ItemCraftedEvent event) { public void smeltEvent(PlayerEvent.ItemSmeltedEvent event) { ItemStack stack = event.getSmelting().copy(); stack.setCount(1); - if (achievementItems.containsKey(stack.getTranslationKey()) && achievementItems.get(stack.getTranslationKey()).isCorrectCondition("smelt")) { - triggerAchievement(event.getPlayer(), achievementItems.get(stack.getTranslationKey()).getName()); + if (achievementItems.containsKey(stack.getDescriptionId()) && achievementItems.get(stack.getDescriptionId()).isCorrectCondition("smelt")) { + triggerAchievement(event.getPlayer(), achievementItems.get(stack.getDescriptionId()).getName()); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/config/ConfigProperty.java b/src/main/java/com/brandon3055/draconicevolution/api/config/ConfigProperty.java index 63313ae6c..ed271a458 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/config/ConfigProperty.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/config/ConfigProperty.java @@ -106,7 +106,7 @@ public CompoundNBT serializeNBT() { CompoundNBT nbt = new CompoundNBT(); nbt.putBoolean("hud", showOnHud); if (uniqueName != null) { - nbt.putUniqueId("uni_name", uniqueName); + nbt.putUUID("uni_name", uniqueName); } return nbt; } @@ -114,8 +114,8 @@ public CompoundNBT serializeNBT() { @Override public void deserializeNBT(CompoundNBT nbt) { showOnHud = nbt.getBoolean("hud"); - if (nbt.hasUniqueId("uni_name")) { - uniqueName = nbt.getUniqueId("uni_name"); + if (nbt.hasUUID("uni_name")) { + uniqueName = nbt.getUUID("uni_name"); } } @@ -143,10 +143,10 @@ public static Type getSafe(int index) { } public enum BooleanFormatter { - TRUE_FALSE(e -> I18n.format("gui.draconicevolution.boolean_property." + (e ? "true" : "false"))), - ENABLED_DISABLED(e -> I18n.format("gui.draconicevolution.boolean_property." + (e ? "enabled" : "disabled"))), - ACTIVE_INACTIVE(e -> I18n.format("gui.draconicevolution.boolean_property." + (e ? "active" : "inactive"))), - YES_NO(e -> I18n.format("gui.draconicevolution.boolean_property." + (e ? "yes" : "no"))); + TRUE_FALSE(e -> I18n.get("gui.draconicevolution.boolean_property." + (e ? "true" : "false"))), + ENABLED_DISABLED(e -> I18n.get("gui.draconicevolution.boolean_property." + (e ? "enabled" : "disabled"))), + ACTIVE_INACTIVE(e -> I18n.get("gui.draconicevolution.boolean_property." + (e ? "active" : "inactive"))), + YES_NO(e -> I18n.get("gui.draconicevolution.boolean_property." + (e ? "yes" : "no"))); private Function formatter; diff --git a/src/main/java/com/brandon3055/draconicevolution/api/config/PropertyProviderImpl.java b/src/main/java/com/brandon3055/draconicevolution/api/config/PropertyProviderImpl.java index c9263ad3b..6b342ff01 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/config/PropertyProviderImpl.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/config/PropertyProviderImpl.java @@ -55,7 +55,7 @@ public ConfigProperty getProperty(String propertyID) { @Override public CompoundNBT serializeNBT() { CompoundNBT nbt = new CompoundNBT(); - nbt.putUniqueId("provider_id", getProviderID()); + nbt.putUUID("provider_id", getProviderID()); CompoundNBT properties = new CompoundNBT(); propertyMap.forEach((name, property) -> properties.put(name, property.serializeNBT())); nbt.put("properties", properties); @@ -64,8 +64,8 @@ public CompoundNBT serializeNBT() { @Override public void deserializeNBT(CompoundNBT nbt) { - if (nbt.hasUniqueId("provider_id")){ - providerID = nbt.getUniqueId("provider_id"); + if (nbt.hasUUID("provider_id")){ + providerID = nbt.getUUID("provider_id"); } CompoundNBT properties = nbt.getCompound("properties"); propertyMap.forEach((name, property) -> property.deserializeNBT(properties.getCompound(name))); diff --git a/src/main/java/com/brandon3055/draconicevolution/api/crafting/FusionRecipe.java b/src/main/java/com/brandon3055/draconicevolution/api/crafting/FusionRecipe.java index a4e7e6fe3..a580d8d93 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/crafting/FusionRecipe.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/crafting/FusionRecipe.java @@ -107,7 +107,7 @@ public boolean matches(IFusionInventory inv, World worldIn) { for (ICraftingInjector pedestal : pedestals) { if (!pedestal.getStackInPedestal().isEmpty() && ingredient.test(pedestal.getStackInPedestal())) { ItemStack i = OreDictHelper.resolveObject(ingredient); - if (i.hasTag() && !ItemStack.areItemStackTagsEqual(i, pedestal.getStackInPedestal())) { + if (i.hasTag() && !ItemStack.tagMatches(i, pedestal.getStackInPedestal())) { continue; } @@ -151,14 +151,14 @@ private boolean canCraft_(IFusionInventory inventory, World world) { } @Override - public ItemStack getCraftingResult(IFusionInventory inv) { + public ItemStack assemble(IFusionInventory inv) { //TODO Apply any required data transfer return result.copy(); } @Override - public ItemStack getRecipeOutput() { + public ItemStack getResultItem() { return result; } @@ -193,24 +193,24 @@ public boolean consume() { protected void write(PacketBuffer buffer) { buffer.writeBoolean(consume); - ingredient.write(buffer); + ingredient.toNetwork(buffer); } protected static FusionIngredient read(PacketBuffer buffer) { boolean consume = buffer.readBoolean(); - Ingredient ingredient = Ingredient.read(buffer); + Ingredient ingredient = Ingredient.fromNetwork(buffer); return new FusionIngredient(ingredient, consume); } } public static class Serializer extends ForgeRegistryEntry> implements IRecipeSerializer { @Override - public FusionRecipe read(ResourceLocation id, JsonObject json) { - ItemStack result = CraftingHelper.getItemStack(JSONUtils.getJsonObject(json, "result"), true); - Ingredient catalyst = CraftingHelper.getIngredient(JSONUtils.getJsonObject(json, "catalyst")); + public FusionRecipe fromJson(ResourceLocation id, JsonObject json) { + ItemStack result = CraftingHelper.getItemStack(JSONUtils.getAsJsonObject(json, "result"), true); + Ingredient catalyst = CraftingHelper.getIngredient(JSONUtils.getAsJsonObject(json, "catalyst")); List fusionIngredients = new ArrayList<>(); - JsonArray ingredients = JSONUtils.getJsonArray(json, "ingredients"); + JsonArray ingredients = JSONUtils.getAsJsonArray(json, "ingredients"); for (JsonElement element : ingredients) { Ingredient ingredient; if (element.isJsonObject() && element.getAsJsonObject().has("ingredient")) { @@ -218,20 +218,20 @@ public FusionRecipe read(ResourceLocation id, JsonObject json) { } else { ingredient = CraftingHelper.getIngredient(element); } - boolean isConsumed = !element.isJsonObject() || JSONUtils.getBoolean(element.getAsJsonObject(), "consume", true); + boolean isConsumed = !element.isJsonObject() || JSONUtils.getAsBoolean(element.getAsJsonObject(), "consume", true); fusionIngredients.add(new FusionIngredient(ingredient, isConsumed)); } - long totalEnergy = JSONUtils.getLong(json, "total_energy"); - TechLevel techLevel = TechLevel.valueOf(JSONUtils.getString(json, "tier", TechLevel.DRACONIUM.name())); + long totalEnergy = JSONUtils.getAsLong(json, "total_energy"); + TechLevel techLevel = TechLevel.valueOf(JSONUtils.getAsString(json, "tier", TechLevel.DRACONIUM.name())); return new FusionRecipe(id, result, catalyst, totalEnergy, techLevel, fusionIngredients); } @Override - public FusionRecipe read(ResourceLocation id, PacketBuffer buffer) { - ItemStack result = buffer.readItemStack(); - Ingredient catalyst = Ingredient.read(buffer); + public FusionRecipe fromNetwork(ResourceLocation id, PacketBuffer buffer) { + ItemStack result = buffer.readItem(); + Ingredient catalyst = Ingredient.fromNetwork(buffer); int count = buffer.readByte(); List fusionIngredients = new ArrayList<>(); @@ -246,9 +246,9 @@ public FusionRecipe read(ResourceLocation id, PacketBuffer buffer) { } @Override - public void write(PacketBuffer buffer, FusionRecipe recipe) { + public void toNetwork(PacketBuffer buffer, FusionRecipe recipe) { buffer.writeItemStack(recipe.result, false); - recipe.catalyst.write(buffer); + recipe.catalyst.toNetwork(buffer); buffer.writeByte(recipe.ingredients.size()); for (FusionIngredient ingredient : recipe.ingredients) { diff --git a/src/main/java/com/brandon3055/draconicevolution/api/crafting/IFusionInventory.java b/src/main/java/com/brandon3055/draconicevolution/api/crafting/IFusionInventory.java index 7ada0ab4e..7258b0db2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/crafting/IFusionInventory.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/crafting/IFusionInventory.java @@ -75,17 +75,17 @@ public interface IFusionInventory extends IInventory { */ int getCraftingStage(); - BlockPos getPos(); + BlockPos getCorePos(); //@formatter:off - @Override default int getSizeInventory() { return 0; } + @Override default int getContainerSize() { return 0; } @Override default boolean isEmpty() { return false; } - @Override default ItemStack getStackInSlot(int index) { return null; } - @Override default ItemStack decrStackSize(int index, int count) { return null; } - @Override default ItemStack removeStackFromSlot(int index) { return null; } - @Override default void setInventorySlotContents(int index, ItemStack stack) { } - @Override default void markDirty() { } - @Override default boolean isUsableByPlayer(PlayerEntity player) { return false; } - @Override default void clear() { } + @Override default ItemStack getItem(int index) { return null; } + @Override default ItemStack removeItem(int index, int count) { return null; } + @Override default ItemStack removeItemNoUpdate(int index) { return null; } + @Override default void setItem(int index, ItemStack stack) { } + @Override default void setChanged() { } + @Override default boolean stillValid(PlayerEntity player) { return false; } + @Override default void clearContent() { } //@formatter:on } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/crafting/IFusionRecipe.java b/src/main/java/com/brandon3055/draconicevolution/api/crafting/IFusionRecipe.java index d0a5b9010..dcc1bbc87 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/crafting/IFusionRecipe.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/crafting/IFusionRecipe.java @@ -18,7 +18,7 @@ public interface IFusionRecipe extends IRecipe { @Override - default ItemStack getIcon() { + default ItemStack getToastSymbol() { if (DraconicAPI.CRAFTING_CORE != null) { return new ItemStack(DraconicAPI.CRAFTING_CORE); } else { @@ -71,7 +71,7 @@ default void onCraftingComplete(IFusionInventory inv, World world) {} @Override - default boolean canFit(int width, int height) { + default boolean canCraftInDimensions(int width, int height) { return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/crafting/IngredientStack.java b/src/main/java/com/brandon3055/draconicevolution/api/crafting/IngredientStack.java index cac7aaf47..b6431440c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/crafting/IngredientStack.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/crafting/IngredientStack.java @@ -40,11 +40,11 @@ public boolean test(@Nullable ItemStack stack) { if (stack == null) { return false; } else { - this.determineMatchingStacks(); - if (this.matchingStacks.length == 0) { + this.dissolve(); + if (this.itemStacks.length == 0) { return stack.isEmpty(); } else { - for (ItemStack itemstack : this.matchingStacks) { + for (ItemStack itemstack : this.itemStacks) { if (itemstack.getItem() == stack.getItem() && itemstack.getCount() >= count) { return true; } @@ -55,10 +55,10 @@ public boolean test(@Nullable ItemStack stack) { } @Override - protected void determineMatchingStacks() { - if (this.matchingStacks == null) { - this.matchingStacks = Arrays.stream(this.acceptedItems) - .flatMap((itemList) -> itemList.getStacks().stream()) + protected void dissolve() { + if (this.itemStacks == null) { + this.itemStacks = Arrays.stream(this.values) + .flatMap((itemList) -> itemList.getItems().stream()) .peek(stack -> stack.setCount(count)) .distinct() .toArray(ItemStack[]::new); @@ -71,11 +71,11 @@ public IIngredientSerializer getSerializer() { } @Override - public JsonElement serialize() { + public JsonElement toJson() { JsonObject obj = new JsonObject(); obj.addProperty("count", count); JsonArray jsonarray = new JsonArray(); - for (Ingredient.IItemList ingredient$iitemlist : this.acceptedItems) { + for (Ingredient.IItemList ingredient$iitemlist : this.values) { jsonarray.add(ingredient$iitemlist.serialize()); } obj.add("items", jsonarray); @@ -86,7 +86,7 @@ public JsonElement serialize() { public static IngredientStack fromItemListStream(Stream stream, int count) { IngredientStack ingredient = new IngredientStack(stream, count); - return ingredient.acceptedItems.length == 0 ? EMPTY : ingredient; + return ingredient.values.length == 0 ? EMPTY : ingredient; } public static IngredientStack fromItems(int count, IItemProvider... itemsIn) { @@ -110,23 +110,23 @@ public static class Serializer implements IIngredientSerializer @Override public IngredientStack parse(PacketBuffer buffer) { int count = buffer.readShort(); - return IngredientStack.fromItemListStream(Stream.generate(() -> new Ingredient.SingleItemList(buffer.readItemStack())).limit(buffer.readVarInt()), count); + return IngredientStack.fromItemListStream(Stream.generate(() -> new Ingredient.SingleItemList(buffer.readItem())).limit(buffer.readVarInt()), count); } @Override public IngredientStack parse(JsonObject json) { int count = json.get("count").getAsShort(); JsonArray stacks = json.get("items").getAsJsonArray(); - return IngredientStack.fromItemListStream(Streams.stream(stacks).map(e -> Ingredient.deserializeItemList(e.getAsJsonObject())), count); + return IngredientStack.fromItemListStream(Streams.stream(stacks).map(e -> Ingredient.valueFromJson(e.getAsJsonObject())), count); } @Override public void write(PacketBuffer buffer, IngredientStack ingredient) { buffer.writeShort(ingredient.getCount()); - ItemStack[] items = ingredient.getMatchingStacks(); + ItemStack[] items = ingredient.getItems(); buffer.writeVarInt(items.length); for (ItemStack stack : items) { - buffer.writeItemStack(stack); + buffer.writeItem(stack); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/fusioncrafting/SimpleFusionRecipe.java b/src/main/java/com/brandon3055/draconicevolution/api/fusioncrafting/SimpleFusionRecipe.java index 22f543e62..5710870e9 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/fusioncrafting/SimpleFusionRecipe.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/fusioncrafting/SimpleFusionRecipe.java @@ -59,7 +59,7 @@ public ItemStack getRecipeOutput(@Nullable ItemStack catalyst) { @Override public boolean isRecipeCatalyst(ItemStack catalyst) { - return catalyst != null && this.catalyst.isItemEqual(catalyst); + return catalyst != null && this.catalyst.sameItem(catalyst); } @Override @@ -83,12 +83,12 @@ public boolean matches(IFusionCraftingInventory inventory, World world, BlockPos pedestals.addAll(inventory.getInjectors()); //Check the catalyst for this recipe - if (inventory.getStackInCore(0).isEmpty() || !inventory.getStackInCore(0).isItemEqual(catalyst) || inventory.getStackInCore(0).getCount() < catalyst.getCount()) { + if (inventory.getStackInCore(0).isEmpty() || !inventory.getStackInCore(0).sameItem(catalyst) || inventory.getStackInCore(0).getCount() < catalyst.getCount()) { return false; } //Check for catalyst NBT data - if (catalyst.hasTag() && !ItemStack.areItemStackTagsEqual(catalyst, inventory.getStackInCore(0))) { + if (catalyst.hasTag() && !ItemStack.tagMatches(catalyst, inventory.getStackInCore(0))) { return false; } @@ -99,7 +99,7 @@ public boolean matches(IFusionCraftingInventory inventory, World world, BlockPos for (ICraftingInjector pedestal : pedestals) { if (!pedestal.getStackInPedestal().isEmpty() && OreDictHelper.areStacksEqual(ingredient, pedestal.getStackInPedestal())) { ItemStack i = OreDictHelper.resolveObject(ingredient); - if (i.hasTag() && !ItemStack.areItemStackTagsEqual(i, pedestal.getStackInPedestal())) { + if (i.hasTag() && !ItemStack.tagMatches(i, pedestal.getStackInPedestal())) { continue; } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/BooleanConfigField.java b/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/BooleanConfigField.java index 1ee545a63..a5cfebcb1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/BooleanConfigField.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/BooleanConfigField.java @@ -28,7 +28,7 @@ public BooleanConfigField setOnOffTxt(String onTxt, String offTxt) { @OnlyIn(Dist.CLIENT) @Override public String getReadableValue() { - return getValue() == 1 ? I18n.format(onTxt) : I18n.format(offTxt); + return getValue() == 1 ? I18n.get(onTxt) : I18n.get(offTxt); } @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/ExternalConfigField.java b/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/ExternalConfigField.java index 17e59b625..c0fe04c2d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/ExternalConfigField.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/ExternalConfigField.java @@ -28,7 +28,7 @@ public ExternalConfigField(String name, String description, Object mod, int guiI @OnlyIn(Dist.CLIENT) @Override public String getReadableValue() { - return I18n.format(unloacalizedButtonText); + return I18n.get(unloacalizedButtonText); } @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/ToolConfigHelper.java b/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/ToolConfigHelper.java index 57f99d39f..82a2a0f3c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/ToolConfigHelper.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/itemconfig_dep/ToolConfigHelper.java @@ -64,7 +64,7 @@ public static void incrementProfile(ItemStack stack) { */ public static CompoundNBT getFieldStorage(ItemStack stack) { String tag = "Profile_" + getProfile(stack); - return stack.getOrCreateChildTag(tag); + return stack.getOrCreateTagElement(tag); } /** diff --git a/src/main/java/com/brandon3055/draconicevolution/api/itemupgrade_dep/FusionUpgradeRecipe.java b/src/main/java/com/brandon3055/draconicevolution/api/itemupgrade_dep/FusionUpgradeRecipe.java index 47b9e777d..c7f2a7fa6 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/itemupgrade_dep/FusionUpgradeRecipe.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/itemupgrade_dep/FusionUpgradeRecipe.java @@ -85,7 +85,7 @@ public boolean matches(IFusionCraftingInventory inventory, World world, BlockPos //Check if the upgrade key is present boolean flag = false; for (ICraftingInjector pedestal : pedestals) { - if (!pedestal.getStackInPedestal().isEmpty() && upgradeKey.isItemEqual(pedestal.getStackInPedestal())) { + if (!pedestal.getStackInPedestal().isEmpty() && upgradeKey.sameItem(pedestal.getStackInPedestal())) { flag = true; break; } @@ -114,7 +114,7 @@ public boolean matches(IFusionCraftingInventory inventory, World world, BlockPos //Check that there are no extra items that are not part of the recipe. for (ICraftingInjector pedestal : pedestals) { - if (!pedestal.getStackInPedestal().isEmpty() && !pedestal.getStackInPedestal().isItemEqual(upgradeKey)) { + if (!pedestal.getStackInPedestal().isEmpty() && !pedestal.getStackInPedestal().sameItem(upgradeKey)) { return false; } } @@ -171,7 +171,7 @@ public void craft(IFusionCraftingInventory inventory, World world, BlockPos pos) //Use Ingredients for (Object ingredient : ingredients) { for (ICraftingInjector pedestal : pedestals) { - if (!pedestal.getStackInPedestal().isEmpty() && OreDictHelper.areStacksEqual(ingredient, pedestal.getStackInPedestal()) && pedestal.getPedestalTier() >= craftingTier && !pedestal.getStackInPedestal().isItemEqual(upgradeKey)) { + if (!pedestal.getStackInPedestal().isEmpty() && OreDictHelper.areStacksEqual(ingredient, pedestal.getStackInPedestal()) && pedestal.getPedestalTier() >= craftingTier && !pedestal.getStackInPedestal().sameItem(upgradeKey)) { ItemStack stack = pedestal.getStackInPedestal(); if (stack.getItem().hasContainerItem(stack)) { diff --git a/src/main/java/com/brandon3055/draconicevolution/api/itemupgrade_dep/UpgradeHelper.java b/src/main/java/com/brandon3055/draconicevolution/api/itemupgrade_dep/UpgradeHelper.java index 7f29a1341..d0fd9d391 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/itemupgrade_dep/UpgradeHelper.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/itemupgrade_dep/UpgradeHelper.java @@ -30,7 +30,7 @@ public static int getUpgradeLevel(ItemStack stack, String upgrade) { return 0; } - CompoundNBT upgradeTag = stack.getOrCreateChildTag(UPGRADE_TAG); + CompoundNBT upgradeTag = stack.getOrCreateTagElement(UPGRADE_TAG); return upgradeTag.getByte(upgrade); } @@ -43,7 +43,7 @@ public static int getUpgradeLevel(ItemStack stack, String upgrade) { * @param level the level */ public static void setUpgradeLevel(ItemStack stack, String upgrade, int level) { - CompoundNBT upgradeTag = stack.getOrCreateChildTag(UPGRADE_TAG); + CompoundNBT upgradeTag = stack.getOrCreateTagElement(UPGRADE_TAG); upgradeTag.putByte(upgrade, (byte) level); } @@ -59,9 +59,9 @@ public static Map getUpgrades(ItemStack stack) { return upgrades; } - CompoundNBT upgradeTag = stack.getOrCreateChildTag(UPGRADE_TAG); + CompoundNBT upgradeTag = stack.getOrCreateTagElement(UPGRADE_TAG); - for (String upgrade : upgradeTag.keySet()) { + for (String upgrade : upgradeTag.getAllKeys()) { if (upgradeTag.contains(upgrade, 1)) { upgrades.put(upgrade, (int) upgradeTag.getByte(upgrade)); } @@ -97,7 +97,7 @@ public static List getUpgradeStats(ItemStack stack) { if (stack.getItem() instanceof IUpgradableItem) { for (String upgrade : ((IUpgradableItem) stack.getItem()).getValidUpgrades(stack)) { - list.add(InfoHelper.ITC() + I18n.format("upgrade.de." + upgrade + ".name") + " " + InfoHelper.HITC() + I18n.format("upgrade.level." + getUpgradeLevel(stack, upgrade))); + list.add(InfoHelper.ITC() + I18n.get("upgrade.de." + upgrade + ".name") + " " + InfoHelper.HITC() + I18n.get("upgrade.level." + getUpgradeLevel(stack, upgrade))); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/Module.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/Module.java index c8a1dfb50..94cfda933 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/Module.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/Module.java @@ -85,10 +85,10 @@ default void addInformation(List toolTip) { if (maxInstallable() != -1) { toolTip.add(new TranslationTextComponent("module.draconicevolution.max_installable") // - .mergeStyle(TextFormatting.GRAY) // - .appendString(": ") // + .withStyle(TextFormatting.GRAY) // + .append(": ") // .append(new StringTextComponent(String.valueOf(maxInstallable())) // - .mergeStyle(TextFormatting.DARK_GREEN))); + .withStyle(TextFormatting.DARK_GREEN))); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/data/FlightData.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/data/FlightData.java index b8bb9cea8..61a7e22ca 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/data/FlightData.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/data/FlightData.java @@ -47,10 +47,10 @@ public void addInformation(Map map, ModuleContex map.put(new TranslationTextComponent("module.draconicevolution.flight.boost.name"), new StringTextComponent((int)(elytraSpeed * 100) + "%")); } if (elytra && !DEConfig.enableElytraFlight) { - map.put(new StringTextComponent("Elytra Flight").mergeStyle(TextFormatting.RED), new StringTextComponent("Disabled by server").mergeStyle(TextFormatting.RED)); + map.put(new StringTextComponent("Elytra Flight").withStyle(TextFormatting.RED), new StringTextComponent("Disabled by server").withStyle(TextFormatting.RED)); } if (creative && !DEConfig.enableCreativeFlight) { - map.put(new StringTextComponent("Creative Flight").mergeStyle(TextFormatting.RED), new StringTextComponent("Disabled by server").mergeStyle(TextFormatting.RED)); + map.put(new StringTextComponent("Creative Flight").withStyle(TextFormatting.RED), new StringTextComponent("Disabled by server").withStyle(TextFormatting.RED)); } } } \ No newline at end of file diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/data/ModuleProperties.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/data/ModuleProperties.java index 98e96efa4..8e847a9a3 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/data/ModuleProperties.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/data/ModuleProperties.java @@ -72,21 +72,21 @@ public void loadDefaults(ModuleType moduleType) { */ public void addStats(List toolTip, Module module) { toolTip.add(new TranslationTextComponent("module.draconicevolution.module_type") - .mergeStyle(GRAY) - .appendString(": ") + .withStyle(GRAY) + .append(": ") .append(techLevel.getDisplayName() - .mergeStyle(techLevel.getTextColour())) - .appendString(" ") + .withStyle(techLevel.getTextColour())) + .append(" ") .append(module.getType().getDisplayName() - .mergeStyle(techLevel.getTextColour()))); + .withStyle(techLevel.getTextColour()))); toolTip.add(new TranslationTextComponent("module.draconicevolution.grid_size") - .mergeStyle(GRAY) - .appendString(": ") + .withStyle(GRAY) + .append(": ") .append(new StringTextComponent(getWidth() + "x" + getHeight()) - .mergeStyle(DARK_GREEN))); + .withStyle(DARK_GREEN))); Map map = new HashMap<>(); getData().addInformation(map, null, true); - map.forEach((name, value) -> toolTip.add(name.copyRaw().mergeStyle(GRAY).appendString(": ").appendString(value.copyRaw().mergeStyle(DARK_GREEN).getString().replace("\n", " ")))); + map.forEach((name, value) -> toolTip.add(name.plainCopy().withStyle(GRAY).append(": ").append(value.plainCopy().withStyle(DARK_GREEN).getString().replace("\n", " ")))); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/AutoFeedEntity.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/AutoFeedEntity.java index 0ce4c3744..78f72593f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/AutoFeedEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/AutoFeedEntity.java @@ -45,19 +45,19 @@ public void tick(ModuleContext context) { AutoFeedData data = (AutoFeedData) module.getData(); if (context instanceof StackModuleContext) { LivingEntity entity = ((StackModuleContext) context).getEntity(); - if (entity instanceof ServerPlayerEntity && entity.ticksExisted % 10 == 0 && ((StackModuleContext) context).isEquipped()) { + if (entity instanceof ServerPlayerEntity && entity.tickCount % 10 == 0 && ((StackModuleContext) context).isEquipped()) { ServerPlayerEntity player = (ServerPlayerEntity) entity; if (storedFood < data.getFoodStorage() && consumeFood.getValue()) { //Do food consumption - for (ItemStack stack : player.inventory.mainInventory) { - if (!stack.isEmpty() && stack.isFood()) { - Food food = stack.getItem().getFood(); - if (food != null && food.getHealing() > 0 && food.getEffects().isEmpty()) { - double val = food.getHealing() + food.getSaturation(); + for (ItemStack stack : player.inventory.items) { + if (!stack.isEmpty() && stack.isEdible()) { + Food food = stack.getItem().getFoodProperties(); + if (food != null && food.getNutrition() > 0 && food.getEffects().isEmpty()) { + double val = food.getNutrition() + food.getSaturationModifier(); double rem = storedFood + val - data.getFoodStorage(); if (rem <= val * 0.25) { storedFood = (float) Math.min(storedFood + val, data.getFoodStorage()); - entity.world.playSound(null, entity.getPosition(), SoundEvents.ENTITY_GENERIC_EAT, SoundCategory.PLAYERS, 0.25F, (0.95F + (entity.world.rand.nextFloat() * 0.1F))); + entity.level.playSound(null, entity.blockPosition(), SoundEvents.GENERIC_EAT, SoundCategory.PLAYERS, 0.25F, (0.95F + (entity.level.random.nextFloat() * 0.1F))); stack.shrink(1); break; } @@ -65,15 +65,15 @@ public void tick(ModuleContext context) { } } } - FoodStats foodStats = player.getFoodStats(); + FoodStats foodStats = player.getFoodData(); if (storedFood > 0 && (foodStats.getFoodLevel() < 20 || foodStats.getSaturationLevel() < 20)) { //Feed player TechLevel tech = module.getModuleTechLevel(); - double maxSat = entity.ticksExisted % 20 == 0 && tech == TechLevel.DRACONIUM? 4 : 0.1;//tech == TechLevel.DRACONIUM ? 1 : tech == TechLevel.WYVERN ? 2 : 4; //Problem is i'm not sure if i want this to essentially be a "Regeneration module" - if (foodStats.needFood() && storedFood > 1) { - foodStats.addStats((int)Math.min(Math.min(storedFood, 1), 20 - foodStats.getFoodLevel()), 0); + double maxSat = entity.tickCount % 20 == 0 && tech == TechLevel.DRACONIUM? 4 : 0.1;//tech == TechLevel.DRACONIUM ? 1 : tech == TechLevel.WYVERN ? 2 : 4; //Problem is i'm not sure if i want this to essentially be a "Regeneration module" + if (foodStats.needsFood() && storedFood > 1) { + foodStats.eat((int)Math.min(Math.min(storedFood, 1), 20 - foodStats.getFoodLevel()), 0); }else if (foodStats.getSaturationLevel() < maxSat && storedFood > 0) { - foodStats.foodSaturationLevel += Math.min(storedFood, maxSat - foodStats.getSaturationLevel()); + foodStats.saturationLevel += Math.min(storedFood, maxSat - foodStats.getSaturationLevel()); } } } @@ -90,12 +90,12 @@ public void renderSlotOverlay(IRenderTypeBuffer getter, Minecraft mc, int x, int progress = (20 - progress) - 1; for (int i = 0; i < 10; i++){ float size = (width - 3) / 10F; - GuiHelper.drawSprite(builder, x + 1 + i * size, y + height - size - 2, size + 1, size + 1, BCSprites.get("bars/food_empty").getSprite(), 0); + GuiHelper.drawSprite(builder, x + 1 + i * size, y + height - size - 2, size + 1, size + 1, BCSprites.get("bars/food_empty").sprite(), 0); if (progress / 2F <= i){ if (progress / 2F < i){ - GuiHelper.drawSprite(builder, x + 1 + i * size, y + height - size - 2, size + 1, size + 1, BCSprites.get("bars/food_full").getSprite(), 0); + GuiHelper.drawSprite(builder, x + 1 + i * size, y + height - size - 2, size + 1, size + 1, BCSprites.get("bars/food_full").sprite(), 0); } else { - GuiHelper.drawSprite(builder, x + 1 + i * size, y + height - size - 2, size + 1, size + 1, BCSprites.get("bars/food_half").getSprite(), 0); + GuiHelper.drawSprite(builder, x + 1 + i * size, y + height - size - 2, size + 1, size + 1, BCSprites.get("bars/food_half").sprite(), 0); } } } @@ -103,7 +103,7 @@ public void renderSlotOverlay(IRenderTypeBuffer getter, Minecraft mc, int x, int @Override public void addToolTip(List list) { - list.add(new TranslationTextComponent("module.draconicevolution.auto_feed.stored").mergeStyle(TextFormatting.GRAY).appendString(" ").append(new TranslationTextComponent("module.draconicevolution.auto_feed.stored.value", (int)storedFood).mergeStyle(TextFormatting.DARK_GREEN))); + list.add(new TranslationTextComponent("module.draconicevolution.auto_feed.stored").withStyle(TextFormatting.GRAY).append(" ").append(new TranslationTextComponent("module.draconicevolution.auto_feed.stored.value", (int)storedFood).withStyle(TextFormatting.DARK_GREEN))); } @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/LastStandEntity.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/LastStandEntity.java index 743a89a3f..02c439101 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/LastStandEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/LastStandEntity.java @@ -59,7 +59,7 @@ public void tick(ModuleContext moduleContext) { if (moduleContext instanceof StackModuleContext) { LivingEntity entity = ((StackModuleContext) moduleContext).getEntity(); if (entity instanceof PlayerEntity) { - ((PlayerEntity) entity).sendStatusMessage(new TranslationTextComponent("module.draconicevolution.last_stand.invuln.active", MathUtils.round(invulnerableTime / 20D, 10)).mergeStyle(TextFormatting.GOLD), true); + ((PlayerEntity) entity).displayClientMessage(new TranslationTextComponent("module.draconicevolution.last_stand.invuln.active", MathUtils.round(invulnerableTime / 20D, 10)).withStyle(TextFormatting.GOLD), true); } } } @@ -102,7 +102,7 @@ public boolean tryBlockDeath(LivingDeathEvent event) { if (charge >= data.getChargeTime()) { LivingEntity entity = event.getEntityLiving(); entity.setHealth(entity.getHealth() + data.getHealthBoost()); - ItemStack stack = entity.getItemStackFromSlot(EquipmentSlotType.CHEST); + ItemStack stack = entity.getItemBySlot(EquipmentSlotType.CHEST); if (!stack.isEmpty()) { LazyOptional optionalHost = stack.getCapability(DECapabilities.MODULE_HOST_CAPABILITY); optionalHost.ifPresent(stackHost -> { @@ -113,19 +113,19 @@ public boolean tryBlockDeath(LivingDeathEvent event) { }); } if (module.getModuleTechLevel().index >= 2) { - entity.extinguish(); - Iterator iterator = entity.getActivePotionMap().values().iterator(); + entity.clearFire(); + Iterator iterator = entity.getActiveEffectsMap().values().iterator(); while (iterator.hasNext()) { EffectInstance effect = iterator.next(); - if (!effect.getPotion().isBeneficial()) { - entity.onFinishedPotionEffect(effect); + if (!effect.getEffect().isBeneficial()) { + entity.onEffectRemoved(effect); iterator.remove(); } } } charge = 0; DraconicNetwork.sendLastStandActivation(entity, module.getItem()); - entity.world.playSound(null, entity.getPosition(), SoundEvents.ITEM_TOTEM_USE, SoundCategory.PLAYERS, 5F, (0.95F + (entity.world.rand.nextFloat() * 0.1F))); + entity.level.playSound(null, entity.blockPosition(), SoundEvents.TOTEM_USE, SoundCategory.PLAYERS, 5F, (0.95F + (entity.level.random.nextFloat() * 0.1F))); invulnerableTime = data.getInvulnerableTime(); return true; } @@ -142,21 +142,21 @@ public void renderSlotOverlay(IRenderTypeBuffer getter, Minecraft mc, int x, int GuiHelper.drawColouredRect(getter.getBuffer(GuiHelper.TRANS_TYPE), x, y, width, height, 0x20FF0000, 0); IVertexBuilder builder = getter.getBuffer(GuiHelper.FAN_TYPE); - builder.pos(x + (width / 2D), y + (height / 2D), 0).color(0, 255, 255, 64).endVertex(); + builder.vertex(x + (width / 2D), y + (height / 2D), 0).color(0, 255, 255, 64).endVertex(); for (double d = 0; d <= 1; d += 1D / 30D) { double angle = (d * progress) + 0.5 - progress; double vertX = x + (width / 2D) + Math.sin(angle * (Math.PI * 2)) * diameter; double vertY = y + (height / 2D) + Math.cos(angle * (Math.PI * 2)) * diameter; - builder.pos(vertX, vertY, 0).color(255, 255, 255, 64).endVertex(); + builder.vertex(vertX, vertY, 0).color(255, 255, 255, 64).endVertex(); } if (getter instanceof IRenderTypeBuffer.Impl) { - ((IRenderTypeBuffer.Impl) getter).finish(); + ((IRenderTypeBuffer.Impl) getter).endBatch(); } String pText = (int) (progress * 100) + "%"; String tText = ((data.getChargeTime() - charge) / 20) + "s"; - GuiHelper.drawBackgroundString(getter.getBuffer(GuiHelper.TRANS_TYPE), mc.fontRenderer, pText, x + width / 2F, y + height / 2F - 8, 0, 0x4000FF00, 1, false, true); - GuiHelper.drawBackgroundString(getter.getBuffer(GuiHelper.TRANS_TYPE), mc.fontRenderer, tText, x + width / 2F, y + height / 2F + 1, 0, 0x4000FF00, 1, false, true); + GuiHelper.drawBackgroundString(getter.getBuffer(GuiHelper.TRANS_TYPE), mc.font, pText, x + width / 2F, y + height / 2F - 8, 0, 0x4000FF00, 1, false, true); + GuiHelper.drawBackgroundString(getter.getBuffer(GuiHelper.TRANS_TYPE), mc.font, tText, x + width / 2F, y + height / 2F + 1, 0, 0x4000FF00, 1, false, true); } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/ShieldControlEntity.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/ShieldControlEntity.java index 7f4cb27f1..4afcce641 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/ShieldControlEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/entities/ShieldControlEntity.java @@ -199,8 +199,8 @@ public void tryBlockDamage(LivingAttackEvent event) { private boolean blockEnvironmentalDamage(LivingAttackEvent event, DamageSource source) { LivingEntity entity = event.getEntityLiving(); - if (source.isFireDamage() && getShieldPoints() > 10) { - entity.extinguish(); + if (source.isFire() && getShieldPoints() > 10) { + entity.clearFire(); } if (ENV_SOURCES.containsKey(source)) { ENV_SOURCES.put(DamageSource.LAVA, 4D); @@ -213,7 +213,7 @@ private boolean blockEnvironmentalDamage(LivingAttackEvent event, DamageSource s shieldCoolDown = getMaxShieldCoolDown(); if (envDmgCoolDown == 0) { float hitPitch = 0.7F + (float) (Math.min(1, getShieldPoints() / ((shieldCapacity + getMaxShieldBoost()) * 0.1)) * 0.3); - entity.world.playSound(null, entity.getPosition(), DESounds.shieldStrike, SoundCategory.PLAYERS, 0.25F, (0.95F + (entity.world.rand.nextFloat() * 0.1F)) * hitPitch); + entity.level.playSound(null, entity.blockPosition(), DESounds.shieldStrike, SoundCategory.PLAYERS, 0.25F, (0.95F + (entity.level.random.nextFloat() * 0.1F)) * hitPitch); envDmgCoolDown = 40; } return true; @@ -256,7 +256,7 @@ private void onShieldHit(LivingEntity entity, boolean damageBlocked) { if (damageBlocked && (shieldCapacity + getMaxShieldBoost()) > 0) { shieldCoolDown = getMaxShieldCoolDown(); float hitPitch = 0.7F + (float) (Math.min(1, getShieldPoints() / ((shieldCapacity + getMaxShieldBoost()) * 0.1)) * 0.3); - entity.world.playSound(null, entity.getPosition(), DESounds.shieldStrike, SoundCategory.PLAYERS, 1F, (0.95F + (entity.world.rand.nextFloat() * 0.1F)) * hitPitch); + entity.level.playSound(null, entity.blockPosition(), DESounds.shieldStrike, SoundCategory.PLAYERS, 1F, (0.95F + (entity.level.random.nextFloat() * 0.1F)) * hitPitch); } } @@ -268,8 +268,8 @@ private ShieldData getShieldData() { } private float applyDamageModifiers(DamageSource source, float damage) { - if (source.isUnblockable()) damage *= 3; - if (source.isMagicDamage()) damage *= 2; + if (source.isBypassArmor()) damage *= 3; + if (source.isMagic()) damage *= 2; return damage; } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/EnergyModuleItem.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/EnergyModuleItem.java index b2491c8e9..bbb4d26b0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/EnergyModuleItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/EnergyModuleItem.java @@ -30,15 +30,15 @@ public EnergyModuleItem(Properties properties) { } @Override - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { - super.addInformation(stack, worldIn, tooltip, flagIn); + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + super.appendHoverText(stack, worldIn, tooltip, flagIn); if (stack.hasTag() && stack.getOrCreateTag().contains("stored_energy")) { - tooltip.add(new StringTextComponent(I18n.format("module.draconicevolution.energy.stored_energy") + tooltip.add(new StringTextComponent(I18n.get("module.draconicevolution.energy.stored_energy") + ": " + Utils.formatNumber(stack.getOrCreateTag().getLong("stored_energy")) + " " - + I18n.format("op.brandonscore." + (Screen.hasShiftDown() ? "operational_potential" : "op"))) - .mergeStyle(TextFormatting.GRAY)); + + I18n.get("op.brandonscore." + (Screen.hasShiftDown() ? "operational_potential" : "op"))) + .withStyle(TextFormatting.GRAY)); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleEntity.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleEntity.java index 92e37a6ea..deaafa44f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleEntity.java @@ -137,7 +137,7 @@ public void readFromNBT(CompoundNBT compound) { */ public void writeToItemStack(ItemStack stack, ModuleContext context) { if (savePropertiesToItem && !propertyMap.isEmpty()) { - CompoundNBT properties = stack.getOrCreateChildTag("properties"); + CompoundNBT properties = stack.getOrCreateTagElement("properties"); propertyMap.forEach((name, property) -> properties.put(name, property.serializeNBT())); } } @@ -152,7 +152,7 @@ public void writeToItemStack(ItemStack stack, ModuleContext context) { */ public void readFromItemStack(ItemStack stack, ModuleContext context) { CompoundNBT properties; - if (savePropertiesToItem && (properties = stack.getChildTag("properties")) != null) { + if (savePropertiesToItem && (properties = stack.getTagElement("properties")) != null) { propertyMap.forEach((name, property) -> property.deserializeNBT(properties.getCompound(name))); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleGrid.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleGrid.java index 1d4856ced..a005e0623 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleGrid.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleGrid.java @@ -69,7 +69,7 @@ public void setCellSize(int cellSize) { } public InstallResult cellClicked(GridPos pos, int button, ClickType clickType) { - ItemStack stack = player.getItemStack(); + ItemStack stack = player.getCarried(); Module module = ModuleItem.getModule(stack); boolean holdingStack = !stack.isEmpty(); ModuleContext context = container.getModuleContext(); @@ -99,7 +99,7 @@ else if (pos.hasEntity()) { //Try to extract module ItemStack extracted = new ItemStack(entity.getModule().getItem()); entity.writeToItemStack(extracted, context); getModuleHost().removeModule(entity, context); - player.setItemStack(extracted); + player.setCarried(extracted); onGridChange(); } } @@ -108,7 +108,7 @@ else if (clickType == ClickType.QUICK_MOVE) { ModuleEntity entity = pos.getEntity(); ItemStack extracted = new ItemStack(entity.getModule().getItem()); entity.writeToItemStack(extracted, context); - if (player.addItemStackToInventory(extracted)) { + if (player.add(extracted)) { getModuleHost().removeModule(entity, context); onGridChange(); } @@ -119,7 +119,7 @@ else if (clickType == ClickType.PICKUP_ALL && module != null) { if (entity.module == module) { ItemStack modStack = new ItemStack(module.getItem()); entity.writeToItemStack(modStack, context); - if (Container.areItemsAndTagsEqual(stack, modStack) && stack.getCount() < stack.getMaxStackSize()) { + if (Container.consideredTheSameItem(stack, modStack) && stack.getCount() < stack.getMaxStackSize()) { stack.grow(1); getModuleHost().removeModule(entity, context); } @@ -128,11 +128,11 @@ else if (clickType == ClickType.PICKUP_ALL && module != null) { } } else if (clickType == ClickType.CLONE) { - if (player.player.abilities.isCreativeMode && player.getItemStack().isEmpty() && pos.hasEntity()) { + if (player.player.abilities.instabuild && player.getCarried().isEmpty() && pos.hasEntity()) { ModuleEntity entity = pos.getEntity(); ItemStack modStack = new ItemStack(entity.module.getItem()); entity.writeToItemStack(modStack, context); - player.setItemStack(modStack); + player.setCarried(modStack); } } return null; diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleHostImpl.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleHostImpl.java index c14a1d306..794a27763 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleHostImpl.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleHostImpl.java @@ -285,7 +285,7 @@ public CompoundNBT serializeNBT() { nbt.put("modules", modules); //Serialize Properties - nbt.putUniqueId("provider_id", getProviderID()); + nbt.putUUID("provider_id", getProviderID()); CompoundNBT properties = new CompoundNBT(); providedProperties.forEach(e -> properties.put(e.getName(), e.serializeNBT())); nbt.put("properties", properties); @@ -317,8 +317,8 @@ public void deserializeNBT(CompoundNBT nbt) { //So that we can gather properties which may depend on installed modules. gatherProperties(); - if (nbt.hasUniqueId("provider_id")) { - providerID = nbt.getUniqueId("provider_id"); + if (nbt.hasUUID("provider_id")) { + providerID = nbt.getUUID("provider_id"); } CompoundNBT properties = nbt.getCompound("properties"); providedProperties.forEach(e -> e.deserializeNBT(properties.getCompound(e.getName()))); diff --git a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleItem.java b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleItem.java index f4599c585..4d87b737a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/api/modules/lib/ModuleItem.java @@ -85,8 +85,8 @@ public Module

getModule() { } @Override - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { - super.addInformation(stack, worldIn, tooltip, flagIn); + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + super.appendHoverText(stack, worldIn, tooltip, flagIn); getModule().addInformation(tooltip); ModuleEntity entity = getModule().createEntity(); entity.readFromItemStack(stack, new StackModuleContext(stack, null, null)); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/ChaosCrystal.java b/src/main/java/com/brandon3055/draconicevolution/blocks/ChaosCrystal.java index 6777c8d61..d94dd2d3a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/ChaosCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/ChaosCrystal.java @@ -31,7 +31,7 @@ */ public class ChaosCrystal extends BlockBCore/*, IRenderOverride*/ { - private static VoxelShape SHAPE = VoxelShapes.create(0, -2, 0, 1, 3, 1); + private static VoxelShape SHAPE = VoxelShapes.box(0, -2, 0, 1, 3, 1); public ChaosCrystal(Properties properties) { super(properties); @@ -44,7 +44,7 @@ public boolean isBlockFullCube() { @Override public boolean removedByPlayer(BlockState state, World world, BlockPos pos, PlayerEntity player, boolean willHarvest, FluidState fluid) { - TileChaosCrystal tile = world.getTileEntity(pos) instanceof TileChaosCrystal ? (TileChaosCrystal) world.getTileEntity(pos) : null; + TileChaosCrystal tile = world.getBlockEntity(pos) instanceof TileChaosCrystal ? (TileChaosCrystal) world.getBlockEntity(pos) : null; if (tile == null || !tile.canBreak()) { return false; } @@ -52,15 +52,15 @@ public boolean removedByPlayer(BlockState state, World world, BlockPos pos, Play } @Override - public float getPlayerRelativeBlockHardness(BlockState state, PlayerEntity player, IBlockReader world, BlockPos pos) { - TileChaosCrystal tile = world.getTileEntity(pos) instanceof TileChaosCrystal ? (TileChaosCrystal) world.getTileEntity(pos) : null; - if (tile != null) return tile.canBreak() ? super.getPlayerRelativeBlockHardness(state, player, world, pos) : -1F; - return super.getPlayerRelativeBlockHardness(state, player, world, pos); + public float getDestroyProgress(BlockState state, PlayerEntity player, IBlockReader world, BlockPos pos) { + TileChaosCrystal tile = world.getBlockEntity(pos) instanceof TileChaosCrystal ? (TileChaosCrystal) world.getBlockEntity(pos) : null; + if (tile != null) return tile.canBreak() ? super.getDestroyProgress(state, player, world, pos) : -1F; + return super.getDestroyProgress(state, player, world, pos); } @Override - public void fillItemGroup(ItemGroup group, NonNullList items) {} + public void fillItemCategory(ItemGroup group, NonNullList items) {} @Override public boolean hasTileEntity(BlockState state) { @@ -74,7 +74,7 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { } @Override - public void onExplosionDestroy(World worldIn, BlockPos pos, Explosion explosionIn) {} + public void wasExploded(World worldIn, BlockPos pos, Explosion explosionIn) {} @Override public boolean canEntityDestroy(BlockState state, IBlockReader world, BlockPos pos, Entity entity) { @@ -82,38 +82,38 @@ public boolean canEntityDestroy(BlockState state, IBlockReader world, BlockPos p } @Override - public void onReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { - TileEntity tile = world.getTileEntity(pos); - if (!world.isRemote && tile instanceof TileChaosCrystal) { + public void onRemove(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { + TileEntity tile = world.getBlockEntity(pos); + if (!world.isClientSide && tile instanceof TileChaosCrystal) { ((TileChaosCrystal) tile).detonate(null); } - super.onReplaced(state, world, pos, newState, isMoving); + super.onRemove(state, world, pos, newState, isMoving); } @Override - public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { - if (placer instanceof PlayerEntity && ((PlayerEntity) placer).abilities.isCreativeMode) { - TileEntity tile = world.getTileEntity(pos); - if (!world.isRemote && tile instanceof TileChaosCrystal) { + public void setPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + if (placer instanceof PlayerEntity && ((PlayerEntity) placer).abilities.instabuild) { + TileEntity tile = world.getBlockEntity(pos); + if (!world.isClientSide && tile instanceof TileChaosCrystal) { ((TileChaosCrystal) tile).onValidPlacement(); ((TileChaosCrystal) tile).guardianDefeated.set(true); } } else { - placer.attackEntityFrom(punishment, Float.MAX_VALUE); + placer.hurt(punishment, Float.MAX_VALUE); } } - private static DamageSource punishment = new DamageSource("chrystalMoved").setDamageAllowedInCreativeMode().setDamageBypassesArmor().setDamageIsAbsolute(); + private static DamageSource punishment = new DamageSource("chrystalMoved").bypassInvul().bypassArmor().bypassMagic(); @Override - public void onBlockAdded(BlockState state, World world, BlockPos pos, BlockState oldState, boolean isMoving) { - List players = world.getEntitiesWithinAABB(PlayerEntity.class, new AxisAlignedBB(pos, pos.add(1, 1, 1)).grow(15, 15, 15)); + public void onPlace(BlockState state, World world, BlockPos pos, BlockState oldState, boolean isMoving) { + List players = world.getEntitiesOfClass(PlayerEntity.class, new AxisAlignedBB(pos, pos.offset(1, 1, 1)).inflate(15, 15, 15)); for (PlayerEntity player : players) { - if (player.abilities.isCreativeMode) { + if (player.abilities.instabuild) { return; } - player.attackEntityFrom(punishment, Float.MAX_VALUE); + player.hurt(punishment, Float.MAX_VALUE); } } @@ -127,10 +127,10 @@ public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, I return SHAPE; } else { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileChaosCrystal) { BlockPos offset = ((TileChaosCrystal) tile).parentPos.get().subtract(pos); - return SHAPE.withOffset(0, offset.getY(), 0); + return SHAPE.move(0, offset.getY(), 0); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/ChaosShardAtmos.java b/src/main/java/com/brandon3055/draconicevolution/blocks/ChaosShardAtmos.java index 021a8a594..dc987644d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/ChaosShardAtmos.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/ChaosShardAtmos.java @@ -20,12 +20,12 @@ */ public class ChaosShardAtmos extends BlockBCore { public ChaosShardAtmos() { - super(Properties.create(Material.AIR).tickRandomly().doesNotBlockMovement()); + super(Properties.of(Material.AIR).randomTicks().noCollission()); } @Override - public void fillItemGroup(ItemGroup group, NonNullList items) {} + public void fillItemCategory(ItemGroup group, NonNullList items) {} // @Override // public void updateTick(World world, BlockPos pos, BlockState state, Random rand) { @@ -63,7 +63,7 @@ public boolean canEntityDestroy(BlockState state, IBlockReader world, BlockPos p @Override - public BlockRenderType getRenderType(BlockState state) { + public BlockRenderType getRenderShape(BlockState state) { return BlockRenderType.INVISIBLE; } @@ -78,7 +78,7 @@ public boolean isBlockFullCube() { } @Override - public boolean isReplaceable(BlockState state, BlockItemUseContext useContext) { + public boolean canBeReplaced(BlockState state, BlockItemUseContext useContext) { return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/DislocationInhibitor.java b/src/main/java/com/brandon3055/draconicevolution/blocks/DislocationInhibitor.java index 7746dc572..c2768cac6 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/DislocationInhibitor.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/DislocationInhibitor.java @@ -20,8 +20,8 @@ public DislocationInhibitor(Properties properties) { } @Override - public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable IBlockReader worldIn, List tooltip, ITooltipFlag flagIn) { tooltip.add(new TranslationTextComponent("info.de.itemDislocationInhibitor.txt")); - super.addInformation(stack, worldIn, tooltip, flagIn); + super.appendHoverText(stack, worldIn, tooltip, flagIn); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/DislocatorPedestal.java b/src/main/java/com/brandon3055/draconicevolution/blocks/DislocatorPedestal.java index 2d0bb0c88..aa5534a3f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/DislocatorPedestal.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/DislocatorPedestal.java @@ -25,7 +25,7 @@ * Created by brandon3055 on 25/09/2016. */ public class DislocatorPedestal extends BlockBCore/* implements ITileEntityProvider, IRenderOverride*/ { - protected static final VoxelShape SHAPE = Block.makeCuboidShape(5.6f, 0f, 5.6f, 10.4f, 12.8f, 10.4f); + protected static final VoxelShape SHAPE = Block.box(5.6f, 0f, 5.6f, 10.4f, 12.8f, 10.4f); public DislocatorPedestal(Properties properties) { super(properties); @@ -37,16 +37,16 @@ public boolean isBlockFullCube() { } @Override - public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { - TileEntity tile = world.getTileEntity(pos); + public void setPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileDislocatorPedestal) { - float f = (float) MathHelper.floor((MathHelper.wrapDegrees(placer.rotationYaw - 180.0F) + 11.25F) / 22.5F); + float f = (float) MathHelper.floor((MathHelper.wrapDegrees(placer.yRot - 180.0F) + 11.25F) / 22.5F); ((TileDislocatorPedestal) tile).rotation.set((int) f); - if (!world.isRemote) { + if (!world.isClientSide) { ((TileDislocatorPedestal) tile).getDataManager().forceSync(); } } - super.onBlockPlacedBy(world, pos, state, placer, stack); + super.setPlacedBy(world, pos, state, placer, stack); } @Override @@ -61,13 +61,13 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { } @Override - public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + public ActionResultType use(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { // TileEntity tileEntity = worldIn.getTileEntity(pos); // if (tileEntity instanceof TileDislocatorPedestal) {//TODO switch to tile interface // return ((TileDislocatorPedestal) tileEntity).onBlockActivated(player); // } - return super.onBlockActivated(state, worldIn, pos, player, handIn, hit); + return super.use(state, worldIn, pos, player, handIn, hit); } @@ -80,7 +80,7 @@ public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, } @Override - public BlockRenderType getRenderType(BlockState state) { + public BlockRenderType getRenderShape(BlockState state) { return BlockRenderType.INVISIBLE; } // diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/DislocatorReceptacle.java b/src/main/java/com/brandon3055/draconicevolution/blocks/DislocatorReceptacle.java index 47a6f22ae..31d05edfe 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/DislocatorReceptacle.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/DislocatorReceptacle.java @@ -30,11 +30,11 @@ public class DislocatorReceptacle extends BlockBCore/* implements ITileEntityPro public DislocatorReceptacle(Block.Properties properties) { super(properties); - this.setDefaultState(stateContainer.getBaseState().with(ACTIVE, false).with(CAMO, false)); + this.registerDefaultState(stateDefinition.any().setValue(ACTIVE, false).setValue(CAMO, false)); } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(ACTIVE, CAMO); } @@ -79,11 +79,11 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @Override - public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - TileEntity tile = worldIn.getTileEntity(pos); + public ActionResultType use(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { + TileEntity tile = worldIn.getBlockEntity(pos); if (tile instanceof TileDislocatorReceptacle) { - ItemStack stack = player.getHeldItem(hand); + ItemStack stack = player.getItemInHand(hand); if (stack.getItem() instanceof BlockItem && ((BlockItem) stack.getItem()).getBlock() == DEContent.infused_obsidian) { ((TileDislocatorReceptacle) tile).camo.set(!((TileDislocatorReceptacle) tile).camo.get()); ((TileDislocatorReceptacle) tile).updateBlock(); @@ -97,19 +97,19 @@ public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockP } @Override - public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { - TileEntity tile = worldIn.getTileEntity(pos); + public void onRemove(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + TileEntity tile = worldIn.getBlockEntity(pos); if (tile instanceof TileDislocatorReceptacle) { ((TileDislocatorReceptacle) tile).deactivate(); } - super.onReplaced(state, worldIn, pos, newState, isMoving); + super.onRemove(state, worldIn, pos, newState, isMoving); } @Override - public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) { - TileEntity tile = worldIn.getTileEntity(pos); + public void onPlace(BlockState state, World worldIn, BlockPos pos, BlockState oldState, boolean isMoving) { + TileEntity tile = worldIn.getBlockEntity(pos); if (tile instanceof TileDislocatorReceptacle) { ((TileDislocatorReceptacle) tile).attemptIgnition(); @@ -118,12 +118,12 @@ public void onBlockAdded(BlockState state, World worldIn, BlockPos pos, BlockSta @Override public void neighborChanged(BlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { - TileEntity t = world.getTileEntity(pos); + TileEntity t = world.getBlockEntity(pos); if (t instanceof TileDislocatorReceptacle) { TileDislocatorReceptacle tile = (TileDislocatorReceptacle) t; - boolean powered = world.isBlockPowered(pos); + boolean powered = world.hasNeighborSignal(pos); if (!powered && tile.ltRedstone.get()) { tile.ltRedstone.set(false); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/DraconiumChest.java b/src/main/java/com/brandon3055/draconicevolution/blocks/DraconiumChest.java index 22f209770..30c12ab4b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/DraconiumChest.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/DraconiumChest.java @@ -23,7 +23,7 @@ */ public class DraconiumChest extends BlockBCore/* implements ITileEntityProvider, IRenderOverride*/ { - protected static final VoxelShape SHAPE = Block.makeCuboidShape(1.0, 0.0D, 1.0, 15.0, 14.0, 15.0); + protected static final VoxelShape SHAPE = Block.box(1.0, 0.0D, 1.0, 15.0, 14.0, 15.0); public DraconiumChest(Properties properties) { super(properties); @@ -54,11 +54,11 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { // } public static boolean isStackValid(ItemStack stack) { - if (stack.getItem() == Item.getItemFromBlock(DEContent.draconium_chest)) { + if (stack.getItem() == Item.byBlock(DEContent.draconium_chest)) { return false; } else if (!stack.isEmpty()) { - String name = stack.getTranslationKey().toLowerCase(); + String name = stack.getDescriptionId().toLowerCase(); if (name.contains("pouch") || name.contains("bag") || name.contains("strongbox") || name.contains("shulker_box")) { return false; } @@ -68,7 +68,7 @@ else if (!stack.isEmpty()) { @Override - public BlockRenderType getRenderType(BlockState state) { + public BlockRenderType getRenderShape(BlockState state) { return BlockRenderType.INVISIBLE; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/DraconiumOre.java b/src/main/java/com/brandon3055/draconicevolution/blocks/DraconiumOre.java index 87e2cdb82..2d8a4256d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/DraconiumOre.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/DraconiumOre.java @@ -31,7 +31,7 @@ public DraconiumOre(Properties properties) { @Override public int getExpDrop(BlockState state, IWorldReader world, BlockPos pos, int fortune, int silktouch) { - Random rand = world instanceof World ? ((World) world).rand : new Random(); + Random rand = world instanceof World ? ((World) world).random : new Random(); return MathHelper.nextInt(rand, 5, 12) * fortune; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/EnergyCoreStructureBlock.java b/src/main/java/com/brandon3055/draconicevolution/blocks/EnergyCoreStructureBlock.java index d035b359d..e1ba42975 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/EnergyCoreStructureBlock.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/EnergyCoreStructureBlock.java @@ -43,7 +43,7 @@ public EnergyCoreStructureBlock(Block.Properties properties) { // } @Override - public BlockRenderType getRenderType(BlockState state) { + public BlockRenderType getRenderShape(BlockState state) { return BlockRenderType.INVISIBLE; } @@ -53,7 +53,7 @@ public BlockRenderType getRenderType(BlockState state) { // } @Override - public void fillItemGroup(ItemGroup group, NonNullList items) {} + public void fillItemCategory(ItemGroup group, NonNullList items) {} @Override public boolean hasTileEntity(BlockState state) { @@ -77,7 +77,7 @@ public void onNeighborChange(BlockState state, IWorldReader world, BlockPos pos, return; } - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileCoreStructure && ((TileCoreStructure) tile).getController() == null) { ((TileCoreStructure) tile).revert(); } @@ -89,7 +89,7 @@ public void neighborChanged(BlockState state, World world, BlockPos pos, Block b return; } - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileCoreStructure && ((TileCoreStructure) tile).getController() == null) { ((TileCoreStructure) tile).revert(); } @@ -106,7 +106,7 @@ public void neighborChanged(BlockState state, World world, BlockPos pos, Block b @Override public boolean removedByPlayer(BlockState state, World world, BlockPos pos, PlayerEntity player, boolean willHarvest, FluidState fluid) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileCoreStructure) { Block block = ForgeRegistries.BLOCKS.getValue(new ResourceLocation(((TileCoreStructure) tile).blockName.get())); @@ -115,8 +115,8 @@ public boolean removedByPlayer(BlockState state, World world, BlockPos pos, Play if (master != null) { world.removeBlock(pos, false); master.validateStructure(); - if (block != Blocks.AIR && !player.abilities.isCreativeMode) { - spawnAsEntity(world, pos, new ItemStack(block)); + if (block != Blocks.AIR && !player.abilities.instabuild) { + popResource(world, pos, new ItemStack(block)); // world.setBlockState(pos, block.getDefaultState()); } } @@ -188,7 +188,7 @@ public boolean removedByPlayer(BlockState state, World world, BlockPos pos, Play @Override public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, PlayerEntity player) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileCoreStructure) { if (((TileCoreStructure) tile).blockName.get().equals("draconicevolution:block_draconium")) { return new ItemStack(DEContent.block_draconium); @@ -217,7 +217,7 @@ public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockRea @Override public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileCoreStructure && ((TileCoreStructure) tile).blockName.get().equals("draconicevolution:energy_core_stabilizer")) { IMultiBlockPart controller = ((TileCoreStructure) tile).getController(); @@ -226,14 +226,14 @@ public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, I // ((TileCoreStructure) tile).getDataManager().forceSync(); TileEnergyCoreStabilizer stabilizer = (TileEnergyCoreStabilizer) controller; if (stabilizer.isValidMultiBlock.get()) { - BlockState stabState = world.getBlockState(stabilizer.getPos()); - BlockPos offset = stabilizer.getPos().subtract(pos); - return stabState.getBlock().getShape(stabState, world, stabilizer.getPos(), context).withOffset(offset.getX(), offset.getY(), offset.getZ()); + BlockState stabState = world.getBlockState(stabilizer.getBlockPos()); + BlockPos offset = stabilizer.getBlockPos().subtract(pos); + return stabState.getBlock().getShape(stabState, world, stabilizer.getBlockPos(), context).move(offset.getX(), offset.getY(), offset.getZ()); } } } - return VoxelShapes.fullCube(); + return VoxelShapes.block(); } // @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/PlacedItem.java b/src/main/java/com/brandon3055/draconicevolution/blocks/PlacedItem.java index 3908ad7a4..e529abeee 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/PlacedItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/PlacedItem.java @@ -36,11 +36,11 @@ public class PlacedItem extends BlockBCore /*implements ITileEntityProvider, IRe public PlacedItem(Properties properties) { super(properties); - this.setDefaultState(stateContainer.getBaseState().with(FACING, Direction.UP)); + this.registerDefaultState(stateDefinition.any().setValue(FACING, Direction.UP)); } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(FACING); } @@ -52,7 +52,7 @@ public boolean isBlockFullCube() { } @Override - public void fillItemGroup(ItemGroup group, NonNullList items) {} + public void fillItemCategory(ItemGroup group, NonNullList items) {} // @Override @@ -99,7 +99,7 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @Override - public BlockRenderType getRenderType(BlockState state) { + public BlockRenderType getRenderShape(BlockState state) { return BlockRenderType.INVISIBLE; } @@ -119,12 +119,12 @@ public BlockRenderType getRenderType(BlockState state) { //region Interact @Override - public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hitIIn) { - if (world.isRemote) { + public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hitIIn) { + if (world.isClientSide) { return ActionResultType.SUCCESS; } - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TilePlacedItem) { RayTraceResult hit = RayTracer.retraceBlock(world, player, pos); @@ -178,7 +178,7 @@ else if (hit == null) { @Override public ItemStack getPickBlock(BlockState state, RayTraceResult target, IBlockReader world, BlockPos pos, PlayerEntity player) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TilePlacedItem) { RayTraceResult hit = target; @@ -191,8 +191,8 @@ else if (hit == null) { return ItemStack.EMPTY; } - if (hit.subHit > 0 && ((TilePlacedItem) tile).inventory.getStackInSlot(hit.subHit - 1) != null) { - ItemStack stack = ((TilePlacedItem) tile).inventory.getStackInSlot(hit.subHit - 1).copy(); + if (hit.subHit > 0 && ((TilePlacedItem) tile).inventory.getItem(hit.subHit - 1) != null) { + ItemStack stack = ((TilePlacedItem) tile).inventory.getItem(hit.subHit - 1).copy(); if (stack.hasTag()) { stack.getTag().remove("BlockEntityTag"); } @@ -204,17 +204,17 @@ else if (hit == null) { } @Override - public void harvestBlock(World world, PlayerEntity player, BlockPos pos, BlockState state, TileEntity te, ItemStack heldStack) { + public void playerDestroy(World world, PlayerEntity player, BlockPos pos, BlockState state, TileEntity te, ItemStack heldStack) { } @Override - public void onReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { - TileEntity tile = world.getTileEntity(pos); + public void onRemove(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TilePlacedItem) { ((TilePlacedItem) tile).breakBlock(); } - super.onReplaced(state, world, pos, newState, isMoving); + super.onRemove(state, world, pos, newState, isMoving); } //endregion diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/Portal.java b/src/main/java/com/brandon3055/draconicevolution/blocks/Portal.java index f844c9251..18bf44b8d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/Portal.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/Portal.java @@ -36,13 +36,13 @@ public class Portal extends BlockBCore { public Portal(Block.Properties properties) { super(properties); // setHardness(Float.MAX_VALUE); - this.setDefaultState(stateContainer.getBaseState() // - .with(AXIS, X) // - .with(DRAW_UP, true) // - .with(DRAW_DOWN, true) // - .with(DRAW_EAST, true) // - .with(DRAW_WEST, true) // - .with(VISIBLE, true)); + this.registerDefaultState(stateDefinition.any() // + .setValue(AXIS, X) // + .setValue(DRAW_UP, true) // + .setValue(DRAW_DOWN, true) // + .setValue(DRAW_EAST, true) // + .setValue(DRAW_WEST, true) // + .setValue(VISIBLE, true)); } @Override @@ -51,7 +51,7 @@ public boolean isBlockFullCube() { } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(AXIS, DRAW_UP, DRAW_DOWN, DRAW_EAST, DRAW_WEST, VISIBLE); } @@ -146,11 +146,11 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @Override public void neighborChanged(BlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { - if (world.isRemote) { + if (world.isClientSide) { return; } - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TilePortal) { ((TilePortal) tile).validatePortal(); } else { @@ -160,8 +160,8 @@ public void neighborChanged(BlockState state, World world, BlockPos pos, Block b } @Override - public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { - TileEntity tile = world.getTileEntity(pos); + public void entityInside(BlockState state, World world, BlockPos pos, Entity entity) { + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TilePortal && ((TilePortal) tile).getMaster() != null) { ((TilePortal) tile).getMaster().handleEntityTeleport(entity); } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/Potentiometer.java b/src/main/java/com/brandon3055/draconicevolution/blocks/Potentiometer.java index dda4383ab..018215cc7 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/Potentiometer.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/Potentiometer.java @@ -28,16 +28,16 @@ public class Potentiometer extends BlockBCore /*implements ITileEntityProvider, IRenderOverride*/ { public static final DirectionProperty FACING = BlockStateProperties.FACING; - protected static final VoxelShape AABB_DOWN = VoxelShapes.create(0.0625D, 0.9375D, 0.0625D, 0.9375D, 1.0D, 0.9375D); - protected static final VoxelShape AABB_UP = VoxelShapes.create(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.0625D, 0.9375D); - protected static final VoxelShape AABB_NORTH = VoxelShapes.create(0.0625D, 0.0625D, 0.9375D, 0.9375D, 0.9375D, 1.0D); - protected static final VoxelShape AABB_SOUTH = VoxelShapes.create(0.0625D, 0.0625D, 0.0D, 0.9375D, 0.9375D, 0.0625D); - protected static final VoxelShape AABB_WEST = VoxelShapes.create(0.9375D, 0.0625D, 0.0625D, 1.0D, 0.9375D, 0.9375D); - protected static final VoxelShape AABB_EAST = VoxelShapes.create(0.0D, 0.0625D, 0.0625D, 0.0625D, 0.9375D, 0.9375D); + protected static final VoxelShape AABB_DOWN = VoxelShapes.box(0.0625D, 0.9375D, 0.0625D, 0.9375D, 1.0D, 0.9375D); + protected static final VoxelShape AABB_UP = VoxelShapes.box(0.0625D, 0.0D, 0.0625D, 0.9375D, 0.0625D, 0.9375D); + protected static final VoxelShape AABB_NORTH = VoxelShapes.box(0.0625D, 0.0625D, 0.9375D, 0.9375D, 0.9375D, 1.0D); + protected static final VoxelShape AABB_SOUTH = VoxelShapes.box(0.0625D, 0.0625D, 0.0D, 0.9375D, 0.9375D, 0.0625D); + protected static final VoxelShape AABB_WEST = VoxelShapes.box(0.9375D, 0.0625D, 0.0625D, 1.0D, 0.9375D, 0.9375D); + protected static final VoxelShape AABB_EAST = VoxelShapes.box(0.0D, 0.0625D, 0.0625D, 0.0625D, 0.9375D, 0.9375D); public Potentiometer(Block.Properties properties) { super(properties); - setDefaultState(stateContainer.getBaseState().with(FACING, Direction.UP)); + registerDefaultState(stateDefinition.any().setValue(FACING, Direction.UP)); this.canProvidePower = true; } @@ -47,7 +47,7 @@ public boolean isBlockFullCube() { } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(FACING); } @@ -63,41 +63,41 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { } protected static boolean canPlaceBlock(World worldIn, BlockPos pos, Direction direction) { - BlockPos blockpos = pos.offset(direction); - return worldIn.getBlockState(blockpos).isSolidSide(worldIn, blockpos, direction.getOpposite()); + BlockPos blockpos = pos.relative(direction); + return worldIn.getBlockState(blockpos).isFaceSturdy(worldIn, blockpos, direction.getOpposite()); } @Override - public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { - super.onBlockPlacedBy(world, pos, state, placer, stack); + public void setPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + super.setPlacedBy(world, pos, state, placer, stack); } @Nullable @Override public BlockState getStateForPlacement(BlockItemUseContext context) { - return canPlaceBlock(context.getWorld(), context.getPos(), context.getFace().getOpposite()) ? this.getDefaultState().with(FACING, context.getFace()) : this.getDefaultState().with(FACING, Direction.DOWN); + return canPlaceBlock(context.getLevel(), context.getClickedPos(), context.getClickedFace().getOpposite()) ? this.defaultBlockState().setValue(FACING, context.getClickedFace()) : this.defaultBlockState().setValue(FACING, Direction.DOWN); } @Override //TODO make sure this logic is not backwards - public boolean isValidPosition(BlockState state, IWorldReader worldIn, BlockPos pos) { - return hasEnoughSolidSide(worldIn, pos.offset(state.get(FACING).getOpposite()), state.get(FACING)); + public boolean canSurvive(BlockState state, IWorldReader worldIn, BlockPos pos) { + return canSupportCenter(worldIn, pos.relative(state.getValue(FACING).getOpposite()), state.getValue(FACING)); } @Override - public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { - if (!isMoving && !state.isIn(newState.getBlock())) { - TileEntity tile = worldIn.getTileEntity(pos); + public void onRemove(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + if (!isMoving && !state.is(newState.getBlock())) { + TileEntity tile = worldIn.getBlockEntity(pos); if (tile instanceof TilePotentiometer && ((TilePotentiometer) tile).power.get() > 0) { this.updateNeighbors(state, worldIn, pos, (TilePotentiometer)tile); } - super.onReplaced(state, worldIn, pos, newState, isMoving); + super.onRemove(state, worldIn, pos, newState, isMoving); } } private void updateNeighbors(BlockState state, World world, BlockPos pos, TilePotentiometer tile) { - world.notifyNeighborsOfStateChange(pos, this); - world.notifyNeighborsOfStateChange(pos.offset(state.get(FACING).getOpposite()), this); + world.updateNeighborsAt(pos, this); + world.updateNeighborsAt(pos.relative(state.getValue(FACING).getOpposite()), this); } // @Override @@ -139,7 +139,7 @@ private void updateNeighbors(BlockState state, World world, BlockPos pos, TilePo @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - Direction enumfacing = state.get(FACING); + Direction enumfacing = state.getValue(FACING); switch (enumfacing) { case EAST: diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/RainSensor.java b/src/main/java/com/brandon3055/draconicevolution/blocks/RainSensor.java index 5a8aba0de..366a31026 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/RainSensor.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/RainSensor.java @@ -24,12 +24,12 @@ */ public class RainSensor extends BlockBCore { - protected static final VoxelShape SHAPE = Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0, 1.0, 16.0); + protected static final VoxelShape SHAPE = Block.box(0.0D, 0.0D, 0.0D, 16.0, 1.0, 16.0); public static final BooleanProperty ACTIVE = BooleanProperty.create("active"); public RainSensor(Block.Properties properties) { super(properties); - setDefaultState(stateContainer.getBaseState().with(ACTIVE, false)); + registerDefaultState(stateDefinition.any().setValue(ACTIVE, false)); canProvidePower = true; } @@ -39,7 +39,7 @@ public boolean isBlockFullCube() { } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(ACTIVE); } @@ -70,25 +70,25 @@ public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, @Nullable @Override public BlockState getStateForPlacement(BlockItemUseContext context) { - context.getWorld().getPendingBlockTicks().scheduleTick(context.getPos(), this, 10); + context.getLevel().getBlockTicks().scheduleTick(context.getClickedPos(), this, 10); return super.getStateForPlacement(context); } @Override - public int getStrongPower(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) { - return blockState.get(ACTIVE) ? 15 : 0; + public int getDirectSignal(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) { + return blockState.getValue(ACTIVE) ? 15 : 0; } @Override - public int getWeakPower(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) { - return blockState.get(ACTIVE) ? 15 : 0; + public int getSignal(BlockState blockState, IBlockReader blockAccess, BlockPos pos, Direction side) { + return blockState.getValue(ACTIVE) ? 15 : 0; } @OnlyIn(Dist.CLIENT) @Override public void animateTick(BlockState stateIn, World worldIn, BlockPos pos, Random rand) { - if (stateIn.get(ACTIVE)) { - worldIn.addParticle(RedstoneParticleData.REDSTONE_DUST, pos.getX() + 0.1875 + (rand.nextBoolean() ? 0.625 : 0), pos.getY(), pos.getZ() + 0.1875 + (rand.nextBoolean() ? 0.625 : 0), 0, 0.0625, 0); + if (stateIn.getValue(ACTIVE)) { + worldIn.addParticle(RedstoneParticleData.REDSTONE, pos.getX() + 0.1875 + (rand.nextBoolean() ? 0.625 : 0), pos.getY(), pos.getZ() + 0.1875 + (rand.nextBoolean() ? 0.625 : 0), 0, 0.0625, 0); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/EnergyCrystal.java b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/EnergyCrystal.java index ad8791c1e..744c8adbd 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/EnergyCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/EnergyCrystal.java @@ -45,8 +45,8 @@ public class EnergyCrystal extends BlockBCore implements IHudDisplay { static { for (Direction dir : Direction.values()) { Cuboid6 c = new Cuboid6(0.35, 0, 0.35, 0.65, 0.425, 0.65); - c.apply(Rotation.sideRotations[dir.getIndex()].at(Vector3.CENTER)); - IO_CRYSTAL_SHAPES[dir.getIndex()] = VoxelShapes.create(c.aabb()); + c.apply(Rotation.sideRotations[dir.get3DDataValue()].at(Vector3.CENTER)); + IO_CRYSTAL_SHAPES[dir.get3DDataValue()] = VoxelShapes.create(c.aabb()); } } @@ -64,16 +64,16 @@ public boolean isBlockFullCube() { } @Override - public void fillItemGroup(ItemGroup group, NonNullList items) { - super.fillItemGroup(group, items); + public void fillItemCategory(ItemGroup group, NonNullList items) { + super.fillItemCategory(group, items); } @Override public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context) { if (crystalType == CrystalType.CRYSTAL_IO) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); Direction facing = tile instanceof TileCrystalDirectIO ? ((TileCrystalDirectIO) tile).facing.get() : Direction.DOWN; - return IO_CRYSTAL_SHAPES[facing.getIndex()]; + return IO_CRYSTAL_SHAPES[facing.get3DDataValue()]; } return CRYSTAL_SHAPE; //Crystal } @@ -91,7 +91,7 @@ public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, I // } @Override - public BlockRenderType getRenderType(BlockState state) { + public BlockRenderType getRenderShape(BlockState state) { return BlockRenderType.INVISIBLE; } @@ -118,13 +118,13 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @OnlyIn(Dist.CLIENT) @Override public void addDisplayData(@Nullable ItemStack stack, World world, @Nullable BlockPos pos, List displayList) { - TileEntity te = world.getTileEntity(pos); + TileEntity te = world.getBlockEntity(pos); if (!(te instanceof TileCrystalBase)) { return; } - displayList.add(InfoHelper.HITC() + asItem().getName().getString()); + displayList.add(InfoHelper.HITC() + asItem().getDescription().getString()); TileCrystalBase tile = (TileCrystalBase) te; tile.addDisplayData(displayList); } @@ -176,7 +176,7 @@ public static int getTier(int meta) { } @Override - public String getString() { + public String getSerializedName() { return name().toLowerCase(); } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerClient.java b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerClient.java index b09fd8f1f..2a6eec9c0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerClient.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerClient.java @@ -30,7 +30,7 @@ public void update() { if (tile.hasStaticFX()) { if (staticFX == null || !staticFX.isAlive()) { staticFX = tile.createStaticFX(); - DEParticles.addParticleDirect(tile.getWorld(), staticFX); + DEParticles.addParticleDirect(tile.getLevel(), staticFX); } staticFX.updateFX(0.5F); } @@ -79,13 +79,13 @@ public void reloadConnections() { beamFXList.clear(); for (BlockPos pos : tile.getLinks()) { - TileEntity target = tile.getWorld().getTileEntity(pos); + TileEntity target = tile.getLevel().getBlockEntity(pos); if (!(target instanceof ICrystalLink)) { continue; } - CrystalFXBeam beam = new CrystalFXBeam(tile.getWorld(), tile, (ICrystalLink) target); + CrystalFXBeam beam = new CrystalFXBeam(tile.getLevel(), tile, (ICrystalLink) target); beamFXList.add(beam); - DEParticles.addParticleDirect(tile.getWorld(), beam); + DEParticles.addParticleDirect(tile.getLevel(), beam); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerClientWireless.java b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerClientWireless.java index 8926625b8..8df32b4bf 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerClientWireless.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerClientWireless.java @@ -37,7 +37,7 @@ public void update() { if (tile.hasStaticFX()) { if (staticFX == null || !staticFX.isAlive()) { staticFX = tile.createStaticFX(); - DEParticles.addParticleDirect(tile.getWorld(), staticFX); + DEParticles.addParticleDirect(tile.getLevel(), staticFX); } staticFX.updateFX(0.5F); } @@ -80,15 +80,15 @@ public void update() { if (linkFX == null || linkFX.size() != tile.getReceivers().size()) { if (linkFX != null) { for (CrystalFXBase fx : linkFX) { - fx.setExpired(); + fx.remove(); } } linkFX = new LinkedList<>(); for (BlockPos receiver : tile.getReceivers()) { - CrystalFXLink link = new CrystalFXLink((ClientWorld)tile.getWorld(), tile, Vec3D.getCenter(receiver)); + CrystalFXLink link = new CrystalFXLink((ClientWorld)tile.getLevel(), tile, Vec3D.getCenter(receiver)); linkFX.add(link); - DEParticles.addParticleDirect(tile.getWorld(), link); + DEParticles.addParticleDirect(tile.getLevel(), link); } } } else if (linkFX != null) { @@ -131,19 +131,19 @@ public void reloadConnections() { transferFXList.clear(); for (BlockPos pos : tile.getLinks()) { - TileEntity target = tile.getWorld().getTileEntity(pos); + TileEntity target = tile.getLevel().getBlockEntity(pos); if (!(target instanceof ICrystalLink)) { continue; } - CrystalFXBeam beam = new CrystalFXBeam(tile.getWorld(), tile, (ICrystalLink) target); + CrystalFXBeam beam = new CrystalFXBeam(tile.getLevel(), tile, (ICrystalLink) target); beamFXList.add(beam); - DEParticles.addParticleDirect(tile.getWorld(), beam); + DEParticles.addParticleDirect(tile.getLevel(), beam); } for (BlockPos pos : tile.getReceivers()) { - CrystalFXWireless wirelessFX = new CrystalFXWireless((ClientWorld)tile.getWorld(), tile, pos); + CrystalFXWireless wirelessFX = new CrystalFXWireless((ClientWorld)tile.getLevel(), tile, pos); transferFXList.add(wirelessFX); - DEParticles.addParticleDirect(tile.getWorld(), wirelessFX); + DEParticles.addParticleDirect(tile.getLevel(), wirelessFX); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerServer.java b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerServer.java index 145587897..a043231a4 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerServer.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerServer.java @@ -56,10 +56,10 @@ public void reloadConnections() { } private void queUpdate() { - ServerWorld serverWorld = ((ServerWorld) tile.getWorld()); + ServerWorld serverWorld = ((ServerWorld) tile.getLevel()); if (serverWorld != null){ - serverWorld.getChunkProvider().chunkManager.getTrackingPlayers(new ChunkPos(tile.getPos()), false).forEach(player -> CrystalUpdateBatcher.queData(batchedUpdate, player)); + serverWorld.getChunkSource().chunkMap.getPlayers(new ChunkPos(tile.getBlockPos()), false).forEach(player -> CrystalUpdateBatcher.queData(batchedUpdate, player)); } batchedUpdate = null; diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerServerWireless.java b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerServerWireless.java index f60ea9708..ad240e135 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerServerWireless.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/rendering/ENetFXHandlerServerWireless.java @@ -64,10 +64,10 @@ public void reloadConnections() { } private void queUpdate() { - ServerWorld serverWorld = ((ServerWorld) tile.getWorld()); + ServerWorld serverWorld = ((ServerWorld) tile.getLevel()); if (serverWorld != null) { - serverWorld.getChunkProvider().chunkManager.getTrackingPlayers(new ChunkPos(tile.getPos()), false).forEach(player -> CrystalUpdateBatcher.queData(batchedUpdate, player)); + serverWorld.getChunkSource().chunkMap.getPlayers(new ChunkPos(tile.getBlockPos()), false).forEach(player -> CrystalUpdateBatcher.queData(batchedUpdate, player)); } batchedUpdate = null; diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalBase.java b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalBase.java index 08a61fe96..2827358f1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalBase.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalBase.java @@ -96,14 +96,14 @@ public TileCrystalBase(TileEntityType tileEntityTypeIn, TechLevel techLevel) @Override public void tick() { super.tick(); - if (linkedCrystals.size() != transferRatesArrays.size() && !world.isRemote) { + if (linkedCrystals.size() != transferRatesArrays.size() && !level.isClientSide) { rebuildTransferList(); } balanceLinkedDevices(); fxHandler.update(); - if (!world.isRemote && DEEventHandler.serverTicks % 10 == 0) { + if (!level.isClientSide && DEEventHandler.serverTicks % 10 == 0) { flowRates.clear(); for (int i = 0; i < linkedCrystals.size(); i++) { flowRates.add(calculateFlow(i)); @@ -115,14 +115,14 @@ public void tick() { } public void balanceLinkedDevices() { - if (world.isRemote) { + if (level.isClientSide) { return; } for (BlockPos linkedPos : getLinks()) { - TileEntity linkedTile = world.getTileEntity(linkedPos); + TileEntity linkedTile = level.getBlockEntity(linkedPos); if (!(linkedTile instanceof ICrystalLink)) { - if (world.isBlockLoaded(linkedPos)) { + if (level.hasChunkAt(linkedPos)) { breakLink(linkedPos); return; } else { @@ -204,11 +204,11 @@ public List getLinks() { //Remember: This is called when a binder linked to "this" tile is used on another block. @Override public boolean binderUsed(PlayerEntity player, BlockPos linkTarget, Direction sideClicked) { - TileEntity te = world.getTileEntity(linkTarget); + TileEntity te = level.getBlockEntity(linkTarget); //region Check if the target device is valid if (!(te instanceof ICrystalLink)) { - ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.device_invalid").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.device_invalid").withStyle(TextFormatting.RED), 99); return false; } //endregion @@ -216,55 +216,55 @@ public boolean binderUsed(PlayerEntity player, BlockPos linkTarget, Direction si ICrystalLink target = (ICrystalLink) te; //region Check if the devices are already linked and if they are break the link - if (getLinks().contains(te.getPos())) { - breakLink(te.getPos()); - target.breakLink(pos); - ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_broken").mergeStyle(TextFormatting.GREEN), 99); + if (getLinks().contains(te.getBlockPos())) { + breakLink(te.getBlockPos()); + target.breakLink(worldPosition); + ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_broken").withStyle(TextFormatting.GREEN), 99); return true; } //endregion //region Check if both devices to see if ether of them have reached their connection limit. if (getLinks().size() >= maxLinks()) { - ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_limit_reached_this").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_limit_reached_this").withStyle(TextFormatting.RED), 99); return false; } else if (target.getLinks().size() >= target.maxLinks()) { - ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_limit_reached_target").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_limit_reached_target").withStyle(TextFormatting.RED), 99); return false; } //endregion //region Check both devices are in range - if (!Utils.inRangeSphere(pos, linkTarget, maxLinkRange())) { - ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.this_range_limit").mergeStyle(TextFormatting.RED), 99); + if (!Utils.inRangeSphere(worldPosition, linkTarget, maxLinkRange())) { + ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.this_range_limit").withStyle(TextFormatting.RED), 99); return false; - } else if (!Utils.inRangeSphere(pos, linkTarget, target.maxLinkRange())) { - ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.target_range_limit").mergeStyle(TextFormatting.RED), 99); + } else if (!Utils.inRangeSphere(worldPosition, linkTarget, target.maxLinkRange())) { + ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.target_range_limit").withStyle(TextFormatting.RED), 99); return false; } //endregion //region All checks have passed. Make the link! if (!target.createLink(this)) { - ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_failed_unknown").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_failed_unknown").withStyle(TextFormatting.RED), 99); return false; } if (!createLink(target)) { //Ensure we don't leave a half linked device if this fails. - target.breakLink(pos); - ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_failed_unknown").mergeStyle(TextFormatting.RED), 99); + target.breakLink(worldPosition); + ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_failed_unknown").withStyle(TextFormatting.RED), 99); return false; } - ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.devices_linked").mergeStyle(TextFormatting.GREEN), 99); + ChatHelper.sendDeDupeIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.devices_linked").withStyle(TextFormatting.GREEN), 99); return true; //endregion } @Override public boolean createLink(ICrystalLink otherCrystal) { - Vec3B offset = getOffset(((TileEntity) otherCrystal).getPos()); + Vec3B offset = getOffset(((TileEntity) otherCrystal).getBlockPos()); linkedCrystals.add(offset); linkedPosCache = null; updateBlock(); @@ -379,14 +379,14 @@ private int getCapacityForTier(int tier) { * Returns the offset of the target block relative to the position of this block. */ public Vec3B getOffset(BlockPos target) { - return new Vec3B(pos.subtract(target)); + return new Vec3B(worldPosition.subtract(target)); } /** * Returns the actual position of the target block based on its offset relative to this block. */ public BlockPos fromOffset(Vec3B targetOffset) { - return pos.subtract(targetOffset.getPos()); + return worldPosition.subtract(targetOffset.getPos()); } public ENetFXHandler getFxHandler() { @@ -406,7 +406,7 @@ public byte calculateFlow(int index) { public void getLinkData(List data) { for (BlockPos target : getLinks()) { - TileEntity tile = world.getTileEntity(target); + TileEntity tile = level.getBlockEntity(target); if (tile == null) { continue; } @@ -435,7 +435,7 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand } public String getUnlocalizedName() { - return "tile.draconicevolution:energy_crystal." + getCrystalType().getString() + "." + (getTier() == 0 ? "basic" : getTier() == 1 ? "wyvern" : "draconic") + ".name"; + return "tile.draconicevolution:energy_crystal." + getCrystalType().getSerializedName() + "." + (getTier() == 0 ? "basic" : getTier() == 1 ? "wyvern" : "draconic") + ".name"; } //endregion @@ -458,14 +458,14 @@ public String getUnlocalizedName() { @Override public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(pos, pos.add(1, 1, 1)); + return new AxisAlignedBB(worldPosition, worldPosition.offset(1, 1, 1)); } @OnlyIn(Dist.CLIENT) public void addDisplayData(List displayList) { double charge = MathUtils.round(((double) getEnergyStored() / (double) getMaxEnergyStored()) * 100D, 100); - displayList.add(TextFormatting.BLUE + I18n.format("gui.draconicevolution.energy_net.hud_charge") + ": " + Utils.formatNumber(getEnergyStored()) + " / " + Utils.formatNumber(getMaxEnergyStored()) + " RF [" + charge + "%]"); - displayList.add(TextFormatting.GREEN + I18n.format("gui.draconicevolution.energy_net.hud_links") + ": " + getLinks().size() + " / " + maxLinks() + ""); + displayList.add(TextFormatting.BLUE + I18n.get("gui.draconicevolution.energy_net.hud_charge") + ": " + Utils.formatNumber(getEnergyStored()) + " / " + Utils.formatNumber(getMaxEnergyStored()) + " RF [" + charge + "%]"); + displayList.add(TextFormatting.GREEN + I18n.get("gui.draconicevolution.energy_net.hud_links") + ": " + getLinks().size() + " / " + maxLinks() + ""); // if (BrandonsCore.proxy.getClientPlayer().isShiftKeyDown()) { // for (BlockPos lPos : getLinks()) { // displayList.add(TextFormatting.GRAY + " " + String.format("[x:%s, y:%s, z:%s]", lPos.getX(), lPos.getY(), lPos.getZ())); @@ -512,7 +512,7 @@ public void readExtraNBT(CompoundNBT compound) { ListNBT list = compound.getList("linked_crystals", 7); linkedCrystals.clear(); for (int i = 0; i < list.size(); i++) { - byte[] data = ((ByteArrayNBT) list.get(i)).getByteArray(); + byte[] data = ((ByteArrayNBT) list.get(i)).getAsByteArray(); linkedCrystals.add(new Vec3B(data[0], data[1], data[2])); } if (linkedPosCache != null) { @@ -555,7 +555,7 @@ public void onTilePlaced(BlockItemUseContext context, BlockState state) { @Override public int getIDHash() { if (!hashCached) { - hashID = pos.hashCode(); + hashID = worldPosition.hashCode(); hashCached = true; } return hashID; @@ -565,7 +565,7 @@ public int getIDHash() { public void onLoad() { super.onLoad(); if (!ID_CRYSTAL_MAP.containsKey(getIDHash())) { - ID_CRYSTAL_MAP.put(getIDHash(), pos); + ID_CRYSTAL_MAP.put(getIDHash(), worldPosition); } } @@ -589,7 +589,7 @@ public void receiveBatchedUpdate(BatchedCrystalUpdate update) { // public Map tileNamesMap = new HashMap<>(); public void detectAndSendContainerChanges(List listeners) { - if (linkedCrystals.size() != transferRatesArrays.size() && !world.isRemote) { + if (linkedCrystals.size() != transferRatesArrays.size() && !level.isClientSide) { rebuildTransferList(); } @@ -649,18 +649,18 @@ public void receivePacketFromClient(MCDataInput data, ServerPlayerEntity client, if (getLinks().size() > intValue && intValue >= 0) { BlockPos target = getLinks().get(intValue); breakLink(target); - TileEntity targetTile = world.getTileEntity(target); + TileEntity targetTile = level.getBlockEntity(target); if (targetTile instanceof ICrystalLink) { - ((ICrystalLink) targetTile).breakLink(pos); + ((ICrystalLink) targetTile).breakLink(worldPosition); } } } else if (id == 20) { List links = new ArrayList<>(getLinks()); for (BlockPos target : links) { breakLink(target); - TileEntity targetTile = world.getTileEntity(target); + TileEntity targetTile = level.getBlockEntity(target); if (targetTile instanceof ICrystalLink) { - ((ICrystalLink) targetTile).breakLink(pos); + ((ICrystalLink) targetTile).breakLink(worldPosition); } } } @@ -723,7 +723,7 @@ public void toBytes(ByteBuf buf) { //TODO ByteBufUtils // ByteBufUtils.writeUTF8String(buf, displayName); buf.writeInt(transferPerTick); - buf.writeLong(linkTarget.toLong()); + buf.writeLong(linkTarget.asLong()); // ByteBufUtils.writeUTF8String(buf, data); } @@ -731,7 +731,7 @@ public static LinkData fromBytes(ByteBuf buf) { LinkData data = new LinkData(); // data.displayName = ByteBufUtils.readUTF8String(buf); data.transferPerTick = buf.readInt(); - data.linkTarget = BlockPos.fromLong(buf.readLong()); + data.linkTarget = BlockPos.of(buf.readLong()); // data.data = ByteBufUtils.readUTF8String(buf); return data; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalDirectIO.java b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalDirectIO.java index cf49e742a..566cf5b71 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalDirectIO.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalDirectIO.java @@ -52,11 +52,11 @@ public TileCrystalDirectIO(TechLevel techLevel) { public void tick() { super.tick(); - if (world.isRemote) { + if (level.isClientSide) { return; } - TileEntity tile = world.getTileEntity(pos.offset(facing.get())); + TileEntity tile = level.getBlockEntity(worldPosition.relative(facing.get())); if (outputMode.get() && tile != null) { opStorage.extractOP(EnergyUtils.insertEnergy(tile, opStorage.extractOP(opStorage.getMaxExtract(), true), facing.get().getOpposite(), false), false); @@ -86,7 +86,7 @@ public void tick() { @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { outputMode.invert(); updateRotation(facing.get()); return true; @@ -104,12 +104,12 @@ public EnergyCrystal.CrystalType getCrystalType() { @OnlyIn(Dist.CLIENT) @Override public CrystalFXBase createStaticFX() { - return new CrystalFXIO((ClientWorld)world, this); + return new CrystalFXIO((ClientWorld)level, this); } @Override public Vec3D getBeamLinkPos(BlockPos linkTo) { - return Vec3D.getCenter(pos); + return Vec3D.getCenter(worldPosition); } @Override @@ -122,7 +122,7 @@ public boolean renderBeamTermination() { public void addDisplayData(List displayList) { super.addDisplayData(displayList); TextFormatting colour = outputMode.get() ? TextFormatting.GOLD : TextFormatting.DARK_AQUA; - displayList.add(I18n.format("gui.draconicevolution.energy_net.io_output_" + outputMode.get(), colour)); + displayList.add(I18n.get("gui.draconicevolution.energy_net.io_output_" + outputMode.get(), colour)); } //endregion @@ -130,7 +130,7 @@ public void addDisplayData(List displayList) { @Override public void onTilePlaced(BlockItemUseContext context, BlockState state) { super.onTilePlaced(context, state); - updateRotation(context.getFace().getOpposite()); + updateRotation(context.getClickedFace().getOpposite()); } public void updateRotation(Direction newDirection) { diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalRelay.java b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalRelay.java index 532d1cf0d..50cb40cc2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalRelay.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalRelay.java @@ -34,18 +34,18 @@ public EnergyCrystal.CrystalType getCrystalType() { @OnlyIn(Dist.CLIENT) @Override public CrystalFXBase createStaticFX() { - return new CrystalFXRing((ClientWorld)world, this); + return new CrystalFXRing((ClientWorld)level, this); } @Override public Vec3D getBeamLinkPos(BlockPos linkTo) { - Vec3D thisVec = Vec3D.getCenter(pos); + Vec3D thisVec = Vec3D.getCenter(worldPosition); Vec3D targVec = Vec3D.getCenter(linkTo); double dist = thisVec.distXZ(targVec); double offM = 0.4D; if (dist == 0) { - if (pos.getY() > linkTo.getY()) { + if (worldPosition.getY() > linkTo.getY()) { return thisVec.subtract(0, 0.4, 0); } else { diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalWirelessIO.java b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalWirelessIO.java index 232323f34..611e4c2fe 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalWirelessIO.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/energynet/tileentity/TileCrystalWirelessIO.java @@ -70,7 +70,7 @@ public TileCrystalWirelessIO(TechLevel techLevel) { @Override public void tick() { - if (!world.isRemote) { + if (!level.isClientSide) { updateEnergyFlow(); } @@ -120,7 +120,7 @@ private void updateEnergyFlow() { fastList.removeAll(moveToSlow); } - if (!world.isRemote && DEEventHandler.serverTicks % 10 == 0) { + if (!level.isClientSide && DEEventHandler.serverTicks % 10 == 0) { receiverFlowRates.clear(); for (int i = 0; i < linkedReceivers.size(); i++) { receiverFlowRates.add(flowConversion(receiverTransfer(i))); @@ -130,7 +130,7 @@ private void updateEnergyFlow() { @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { inputMode.invert(); return true; } @@ -141,7 +141,7 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand * Attempts to send energy to this receiver. Returns false if the receiver is nolonger valid. */ protected boolean updateDevice(LinkedDevice receiver) { - if (!receiver.isLinkValid(world)) { + if (!receiver.isLinkValid(level)) { return receiver.invalidTime++ < 100; } receiver.invalidTime = 0; @@ -211,12 +211,12 @@ public byte flowConversion(int transferRate) { @Override public boolean binderUsed(PlayerEntity player, BlockPos linkTarget, Direction sideClicked) { - TileEntity tile = world.getTileEntity(linkTarget); + TileEntity tile = level.getBlockEntity(linkTarget); if (tile == null || tile instanceof ICrystalLink) { return super.binderUsed(player, linkTarget, sideClicked); } - if (world.isRemote) { + if (level.isClientSide) { return true; } @@ -224,14 +224,14 @@ public boolean binderUsed(PlayerEntity player, BlockPos linkTarget, Direction si if (linkedReceivers.contains(offset)) { removeReceiver(linkTarget); - ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_broken").mergeStyle(TextFormatting.GREEN), 99); + ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_broken").withStyle(TextFormatting.GREEN), 99); return true; } if (inputMode.get()) { if (!EnergyUtils.canExtractEnergy(tile, sideClicked)) { if (EnergyUtils.getStorage(tile, sideClicked) != null) { - ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.side_can_not_extract").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.side_can_not_extract").withStyle(TextFormatting.RED), 99); return false; } return super.binderUsed(player, linkTarget, sideClicked); @@ -240,7 +240,7 @@ public boolean binderUsed(PlayerEntity player, BlockPos linkTarget, Direction si else { if (!EnergyUtils.canReceiveEnergy(tile, sideClicked)) { if (EnergyUtils.getStorage(tile, sideClicked) != null) { - ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.side_can_not_receive").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.side_can_not_receive").withStyle(TextFormatting.RED), 99); return false; } return super.binderUsed(player, linkTarget, sideClicked); @@ -248,12 +248,12 @@ public boolean binderUsed(PlayerEntity player, BlockPos linkTarget, Direction si } if (linkedReceivers.size() >= getMaxReceivers()) { - ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.max_receivers").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.max_receivers").withStyle(TextFormatting.RED), 99); return false; } addReceiver(linkTarget, sideClicked); - ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.devices_linked").mergeStyle(TextFormatting.GREEN), 99); + ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.devices_linked").withStyle(TextFormatting.GREEN), 99); return true; } @@ -302,18 +302,18 @@ public EnergyCrystal.CrystalType getCrystalType() { @OnlyIn(Dist.CLIENT) @Override public CrystalFXBase createStaticFX() { - return new CrystalFXRing((ClientWorld)world, this); + return new CrystalFXRing((ClientWorld)level, this); } @Override public Vec3D getBeamLinkPos(BlockPos linkTo) { - Vec3D thisVec = Vec3D.getCenter(pos); + Vec3D thisVec = Vec3D.getCenter(worldPosition); Vec3D targVec = Vec3D.getCenter(linkTo); double dist = thisVec.distXZ(targVec); double offM = 0.4D; if (dist == 0) { - if (pos.getY() > linkTo.getY()) { + if (worldPosition.getY() > linkTo.getY()) { return thisVec.subtract(0, 0.4, 0); } else { @@ -349,9 +349,9 @@ public ENetFXHandler createClientFXHandler() { @OnlyIn(Dist.CLIENT) public void addDisplayData(List displayList) { super.addDisplayData(displayList); - displayList.add(TextFormatting.GREEN + I18n.format("gui.draconicevolution.energy_net.hud_wireless_links") + ": " + getReceivers().size() + " / " + getMaxReceivers()); + displayList.add(TextFormatting.GREEN + I18n.get("gui.draconicevolution.energy_net.hud_wireless_links") + ": " + getReceivers().size() + " / " + getMaxReceivers()); TextFormatting colour = !inputMode.get() ? TextFormatting.GOLD : TextFormatting.DARK_AQUA; - displayList.add(I18n.format("gui.draconicevolution.energy_net.io_output_" + !inputMode.get(), colour)); + displayList.add(I18n.get("gui.draconicevolution.energy_net.io_output_" + !inputMode.get(), colour)); } //endregion @@ -381,7 +381,7 @@ public void writeExtraNBT(CompoundNBT compound) { for (Vec3B vec : linkedReceivers) { CompoundNBT receiver = new CompoundNBT(); receiver.putByteArray("offset", new byte[]{vec.x, vec.y, vec.z}); - receiver.putByte("side", (byte) receiverSideMap.get(vec).getIndex()); + receiver.putByte("side", (byte) receiverSideMap.get(vec).get3DDataValue()); list.add(receiver); } compound.put("linked_receivers", list); @@ -398,7 +398,7 @@ public void readExtraNBT(CompoundNBT compound) { byte[] offset = receiver.getByteArray("offset"); Vec3B vec = new Vec3B(offset[0], offset[1], offset[2]); linkedReceivers.add(vec); - receiverSideMap.put(vec, Direction.byIndex(receiver.getByte("side"))); + receiverSideMap.put(vec, Direction.from3DDataValue(receiver.getByte("side"))); } receiverCache = null; @@ -414,7 +414,7 @@ public void readExtraNBT(CompoundNBT compound) { @Override public void detectAndSendContainerChanges(List listeners) { super.detectAndSendContainerChanges(listeners); - if (linkedReceivers.size() != receiverTransferRates.size() && !world.isRemote) { + if (linkedReceivers.size() != receiverTransferRates.size() && !level.isClientSide) { rebuildReceiverTransferList(); } @@ -497,7 +497,7 @@ public LinkedDevice(int index, BlockPos pos, Direction side) { } public boolean isLinkValid(World world) { - tileCache = world.getTileEntity(pos); + tileCache = world.getBlockEntity(pos); if ((tileCache == null || EnergyUtils.getStorage(tileCache, side) == null) && Utils.isAreaLoaded(world, pos, ChunkHolder.LocationType.TICKING)) { return false; diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/itemblock/ItemDraconiumBlock.java b/src/main/java/com/brandon3055/draconicevolution/blocks/itemblock/ItemDraconiumBlock.java index 2fc5f543a..e7ff31156 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/itemblock/ItemDraconiumBlock.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/itemblock/ItemDraconiumBlock.java @@ -76,7 +76,7 @@ public ItemDraconiumBlock(Block block) { @OnlyIn(Dist.CLIENT) @SuppressWarnings("unchecked") @Override - public void addInformation(ItemStack stack, @Nullable World world, List list, ITooltipFlag p_77624_4_) { + public void appendHoverText(ItemStack stack, @Nullable World world, List list, ITooltipFlag p_77624_4_) { // if (stack.hasTagCompound()) { // list.add(Utils.addCommas(getEnergyStored(stack)) + " / " + Utils.addCommas(getMaxEnergyStored(stack)) + "RF"); // } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/CelestialManipulator.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/CelestialManipulator.java index 12eb2b813..21911c819 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/CelestialManipulator.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/CelestialManipulator.java @@ -17,7 +17,7 @@ */ public class CelestialManipulator extends BlockBCore /*implements ITileEntityProvider, IRenderOverride*/ {//Replacement For both the weather controller and sun dial - private VoxelShape SHAPE = Block.makeCuboidShape(1.0, 0, 1.0, 15.0, 13.0, 15.0); + private VoxelShape SHAPE = Block.box(1.0, 0, 1.0, 15.0, 13.0, 15.0); public CelestialManipulator(Properties properties) { super(properties); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/CraftingInjector.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/CraftingInjector.java index 965822138..435c67b5c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/CraftingInjector.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/CraftingInjector.java @@ -42,19 +42,19 @@ public class CraftingInjector extends BlockBCore implements IHudDisplay { public static final DirectionProperty FACING = BlockStateProperties.FACING; - private static VoxelShape SHAPE_DOWN = VoxelShapes.create(0.0625, 0.375, 0.0625, 0.9375, 1, 0.9375); - private static VoxelShape SHAPE_UP = VoxelShapes.create(0.0625, 0, 0.0625, 0.9375, 0.625, 0.9375); - private static VoxelShape SHAPE_NORTH = VoxelShapes.create(0.0625, 0.0625, 0.375, 0.9375, 0.9375, 1); - private static VoxelShape SHAPE_SOUTH = VoxelShapes.create(0.0625, 0.0625, 0, 0.9375, 0.9375, 0.625); - private static VoxelShape SHAPE_WEST = VoxelShapes.create(0.375, 0.0625, 0.0625, 1, 0.9375, 0.9375); - private static VoxelShape SHAPE_EAST = VoxelShapes.create(0, 0.0625, 0.0625, 0.625, 0.9375, 0.9375); + private static VoxelShape SHAPE_DOWN = VoxelShapes.box(0.0625, 0.375, 0.0625, 0.9375, 1, 0.9375); + private static VoxelShape SHAPE_UP = VoxelShapes.box(0.0625, 0, 0.0625, 0.9375, 0.625, 0.9375); + private static VoxelShape SHAPE_NORTH = VoxelShapes.box(0.0625, 0.0625, 0.375, 0.9375, 0.9375, 1); + private static VoxelShape SHAPE_SOUTH = VoxelShapes.box(0.0625, 0.0625, 0, 0.9375, 0.9375, 0.625); + private static VoxelShape SHAPE_WEST = VoxelShapes.box(0.375, 0.0625, 0.0625, 1, 0.9375, 0.9375); + private static VoxelShape SHAPE_EAST = VoxelShapes.box(0, 0.0625, 0.0625, 0.625, 0.9375, 0.9375); private final TechLevel techLevel; public CraftingInjector(Properties properties, TechLevel techLevel) { super(properties); this.techLevel = techLevel; - this.setDefaultState(stateContainer.getBaseState().with(FACING, Direction.UP)); + this.registerDefaultState(stateDefinition.any().setValue(FACING, Direction.UP)); } @Override @@ -63,7 +63,7 @@ public boolean isBlockFullCube() { } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(FACING); } @@ -84,7 +84,7 @@ protected void fillStateContainer(StateContainer.Builder buil @Override public BlockState getStateForPlacement(BlockItemUseContext context) { - return this.getDefaultState().with(FACING, context.getNearestLookingDirection().getOpposite()); + return this.defaultBlockState().setValue(FACING, context.getNearestLookingDirection().getOpposite()); } //region Block @@ -102,12 +102,12 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { } @Override - public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (world.isRemote) { + public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + if (world.isClientSide) { return ActionResultType.SUCCESS; } - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (!(tile instanceof TileCraftingInjector)) { return ActionResultType.FAIL; @@ -115,7 +115,7 @@ public ActionResultType onBlockActivated(BlockState state, World world, BlockPos TileCraftingInjector craftingPedestal = (TileCraftingInjector) tile; - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { craftingPedestal.singleItem.set(!craftingPedestal.singleItem.get()); ChatHelper.sendIndexed(player, new TranslationTextComponent("msg.craftingInjector.singleItem" + (craftingPedestal.singleItem.get() ? "On" : "Off") + ".txt"), 98); craftingPedestal.getDataManager().detectAndSendChanges(); @@ -123,16 +123,16 @@ public ActionResultType onBlockActivated(BlockState state, World world, BlockPos } if (!craftingPedestal.itemHandler.getStackInSlot(0).isEmpty()) { - if (player.getHeldItemMainhand().isEmpty()) { - player.setHeldItem(Hand.MAIN_HAND, craftingPedestal.itemHandler.getStackInSlot(0)); + if (player.getMainHandItem().isEmpty()) { + player.setItemInHand(Hand.MAIN_HAND, craftingPedestal.itemHandler.getStackInSlot(0)); craftingPedestal.setStackInPedestal(ItemStack.EMPTY); } else { - world.addEntity(new ItemEntity(world, player.getPosX(), player.getPosY(), player.getPosZ(), craftingPedestal.itemHandler.getStackInSlot(0))); + world.addFreshEntity(new ItemEntity(world, player.getX(), player.getY(), player.getZ(), craftingPedestal.itemHandler.getStackInSlot(0))); craftingPedestal.setStackInPedestal(ItemStack.EMPTY); } } else { - ItemStack stack = player.getHeldItemMainhand(); - player.setHeldItem(Hand.MAIN_HAND, InventoryUtils.insertItem(craftingPedestal.itemHandler, stack, false)); + ItemStack stack = player.getMainHandItem(); + player.setItemInHand(Hand.MAIN_HAND, InventoryUtils.insertItem(craftingPedestal.itemHandler, stack, false)); } return ActionResultType.SUCCESS; @@ -144,7 +144,7 @@ public ActionResultType onBlockActivated(BlockState state, World world, BlockPos @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - Direction facing = state.get(FACING); + Direction facing = state.getValue(FACING); switch (facing) { case DOWN: return SHAPE_DOWN; @@ -198,13 +198,13 @@ public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, @OnlyIn(Dist.CLIENT) @Override public void addDisplayData(@Nullable ItemStack stack, World world, @Nullable BlockPos pos, List displayList) { - TileEntity te = world.getTileEntity(pos); + TileEntity te = world.getBlockEntity(pos); if (!(te instanceof TileCraftingInjector)) { return; } - displayList.add(InfoHelper.HITC() + I18n.format("msg.craftingInjector.singleItem" + (((TileCraftingInjector) te).singleItem.get() ? "On" : "Off") + ".txt")); + displayList.add(InfoHelper.HITC() + I18n.get("msg.craftingInjector.singleItem" + (((TileCraftingInjector) te).singleItem.get() ? "On" : "Off") + ".txt")); } //endregion diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/DissEnchanter.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/DissEnchanter.java index e8446ba7a..33d56ec09 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/DissEnchanter.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/DissEnchanter.java @@ -18,7 +18,7 @@ * Created by brandon3055 on 25/09/2016. */ public class DissEnchanter extends BlockBCore/* implements ITileEntityProvider, IRenderOverride*/ { - protected static final VoxelShape SHAPE = Block.makeCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 12.0D, 16.0D); + protected static final VoxelShape SHAPE = Block.box(0.0D, 0.0D, 0.0D, 16.0D, 12.0D, 16.0D); public DissEnchanter(Properties properties) { super(properties); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyCore.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyCore.java index 21396f0af..ce841bd37 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyCore.java @@ -29,24 +29,24 @@ public class EnergyCore extends BlockBCore { public EnergyCore(Properties properties) { super(properties); - this.setDefaultState(stateContainer.getBaseState().with(ACTIVE, false)); + this.registerDefaultState(stateDefinition.any().setValue(ACTIVE, false)); } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(ACTIVE); } @Override - public BlockRenderType getRenderType(BlockState state) { - return state.get(ACTIVE) ? BlockRenderType.INVISIBLE : BlockRenderType.MODEL; + public BlockRenderType getRenderShape(BlockState state) { + return state.getValue(ACTIVE) ? BlockRenderType.INVISIBLE : BlockRenderType.MODEL; } @Override - public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - TileEntity core = world.getTileEntity(pos); + public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + TileEntity core = world.getBlockEntity(pos); - if (core instanceof TileEnergyCore && !world.isRemote) { + if (core instanceof TileEnergyCore && !world.isClientSide) { ((TileEnergyCore) core).onStructureClicked(world, pos, state, player); } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyCoreStabilizer.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyCoreStabilizer.java index c15385205..aef1bea49 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyCoreStabilizer.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyCoreStabilizer.java @@ -29,24 +29,24 @@ public class EnergyCoreStabilizer extends BlockBCore { public static final BooleanProperty LARGE = BooleanProperty.create("large"); - public static VoxelShape SHAPE = makeCuboidShape(0.98, 0.98, 0.98, 15.02, 15.02, 15.02); - public static VoxelShape SHAPE_X = VoxelShapes.create(0, -1, -1, 1, 2, 2); - public static VoxelShape SHAPE_Y = VoxelShapes.create(-1, 0, -1, 2, 1, 2); - public static VoxelShape SHAPE_Z = VoxelShapes.create(-1, -1, 0, 2, 2, 1); + public static VoxelShape SHAPE = box(0.98, 0.98, 0.98, 15.02, 15.02, 15.02); + public static VoxelShape SHAPE_X = VoxelShapes.box(0, -1, -1, 1, 2, 2); + public static VoxelShape SHAPE_Y = VoxelShapes.box(-1, 0, -1, 2, 1, 2); + public static VoxelShape SHAPE_Z = VoxelShapes.box(-1, -1, 0, 2, 2, 1); public EnergyCoreStabilizer(Properties properties) { super(properties); - this.setDefaultState(stateContainer.getBaseState().with(LARGE, false)); + this.registerDefaultState(stateDefinition.any().setValue(LARGE, false)); } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(LARGE); } @Override - public BlockRenderType getRenderType(BlockState state) { - return state.get(LARGE) ? BlockRenderType.INVISIBLE : BlockRenderType.MODEL; + public BlockRenderType getRenderShape(BlockState state) { + return state.getValue(LARGE) ? BlockRenderType.INVISIBLE : BlockRenderType.MODEL; } // @Override @@ -73,16 +73,16 @@ public int getLightValue(BlockState state, IBlockReader world, BlockPos pos) { @Override public VoxelShape getCollisionShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - return VoxelShapes.fullCube();//VoxelShapes.empty();//super.getCollisionShape(state, worldIn, pos, context); + return VoxelShapes.block();//VoxelShapes.empty();//super.getCollisionShape(state, worldIn, pos, context); } @Override - public VoxelShape getRaytraceShape(BlockState state, IBlockReader worldIn, BlockPos pos) { + public VoxelShape getInteractionShape(BlockState state, IBlockReader worldIn, BlockPos pos) { return VoxelShapes.empty();//super.getRaytraceShape(state, worldIn, pos); } @Override - public VoxelShape getRenderShape(BlockState state, IBlockReader worldIn, BlockPos pos) { + public VoxelShape getOcclusionShape(BlockState state, IBlockReader worldIn, BlockPos pos) { return VoxelShapes.empty();//super.getRenderShape(state, worldIn, pos); } @@ -95,7 +95,7 @@ public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, I // SHAPE_Y = VoxelShapes.create(-1, 0, -1, 2, 1, 2); // SHAPE_Z = VoxelShapes.create(-1, -1, 0, 2, 2, 1); - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); // if (tile instanceof TileEnergyCoreStabilizer) { if (((TileEnergyCoreStabilizer) tile).isValidMultiBlock.get()) { @@ -118,19 +118,19 @@ public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, I //region Place/Break stuff @Override - public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { - TileEntity tile = world.getTileEntity(pos); + public void setPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileEnergyCoreStabilizer) { ((TileEnergyCoreStabilizer) tile).onPlaced(); } else { - super.onBlockPlacedBy(world, pos, state, placer, stack); + super.setPlacedBy(world, pos, state, placer, stack); } } @Override - public void onReplaced(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { - TileEntity tile = world.getTileEntity(pos); + public void onRemove(BlockState state, World world, BlockPos pos, BlockState newState, boolean isMoving) { + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileEnergyCoreStabilizer) { if (((TileEnergyCoreStabilizer) tile).isValidMultiBlock.get()) { @@ -139,12 +139,12 @@ public void onReplaced(BlockState state, World world, BlockPos pos, BlockState n TileEnergyCore core = ((TileEnergyCoreStabilizer) tile).getCore(); if (core != null) { - world.removeTileEntity(pos); + world.removeBlockEntity(pos); ((TileEnergyCoreStabilizer) tile).validateStructure(); } } - super.onReplaced(state, world, pos, newState, isMoving); + super.onRemove(state, world, pos, newState, isMoving); } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyPylon.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyPylon.java index 4418899e4..c3fdd58ec 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyPylon.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyPylon.java @@ -28,11 +28,11 @@ public class EnergyPylon extends BlockBCore/* implements ITileEntityProvider, IR public EnergyPylon(Properties properties) { super(properties); - this.setDefaultState(stateContainer.getBaseState().with(OUTPUT, false).with(FACING, "null")); + this.registerDefaultState(stateDefinition.any().setValue(OUTPUT, false).setValue(FACING, "null")); } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(OUTPUT, FACING); } @@ -74,10 +74,10 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @Override - public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - TileEntity tile = worldIn.getTileEntity(pos); + public ActionResultType use(BlockState state, World worldIn, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + TileEntity tile = worldIn.getBlockEntity(pos); if (tile instanceof TileEnergyPylon) { - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { ((TileEnergyPylon) tile).selectNextCore(); } else { ((TileEnergyPylon) tile).validateStructure(); @@ -90,7 +90,7 @@ public ActionResultType onBlockActivated(BlockState state, World worldIn, BlockP @Override public void neighborChanged(BlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileEnergyPylon) { ((TileEnergyPylon) tile).validateStructure(); @@ -98,13 +98,13 @@ public void neighborChanged(BlockState state, World world, BlockPos pos, Block b } @Override - public boolean hasComparatorInputOverride(BlockState state) { + public boolean hasAnalogOutputSignal(BlockState state) { return true; } @Override - public int getComparatorInputOverride(BlockState blockState, World world, BlockPos pos) { - TileEntity tile = world.getTileEntity(pos); + public int getAnalogOutputSignal(BlockState blockState, World world, BlockPos pos) { + TileEntity tile = world.getBlockEntity(pos); if (tile != null && tile instanceof TileEnergyPylon && ((TileEnergyPylon) tile).getExtendedCapacity() > 0) { return (int) ((double) ((TileEnergyPylon) tile).getExtendedStorage() / ((TileEnergyPylon) tile).getExtendedCapacity() * 15D); } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyTransfuser.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyTransfuser.java index d9c5648b8..f7b0a387c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyTransfuser.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EnergyTransfuser.java @@ -38,7 +38,7 @@ public class EnergyTransfuser extends BlockBCore { Direction[] dirs = {Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST}; int i = 0; for (Direction dir : dirs) { - Transformation rotation = Rotation.quarterRotations[dir.getHorizontalIndex() ^ 2].at(CENTER); + Transformation rotation = Rotation.quarterRotations[dir.get2DDataValue() ^ 2].at(CENTER); cuboids.add(new IndexedCuboid6(i, interactFace.copy().apply(rotation))); i++; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EntityDetector.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EntityDetector.java index 2b172d642..1f2711ea0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EntityDetector.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/EntityDetector.java @@ -74,7 +74,7 @@ public boolean isBlockFullCube() { @Override public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - return VoxelShapes.create(0.0626, 0, 0.0626, 0.9375, 0.125, 0.9375); + return VoxelShapes.box(0.0626, 0, 0.0626, 0.9375, 0.125, 0.9375); } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/FlowGate.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/FlowGate.java index 9da9d2c8d..81beaf407 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/FlowGate.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/FlowGate.java @@ -31,7 +31,7 @@ public class FlowGate extends BlockBCore { public FlowGate(Properties properties, boolean fluxGate) { super(properties); this.fluxGate = fluxGate; - this.setDefaultState(stateContainer.getBaseState().with(FACING, Direction.NORTH)); + this.registerDefaultState(stateDefinition.any().setValue(FACING, Direction.NORTH)); } @Override @@ -40,18 +40,18 @@ public boolean isBlockFullCube() { } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(FACING); } @Override - public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { - super.onBlockPlacedBy(world, pos, state, placer, stack); + public void setPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + super.setPlacedBy(world, pos, state, placer, stack); } @Override public BlockState getStateForPlacement(BlockItemUseContext context) { - return this.getDefaultState().with(FACING, context.getNearestLookingDirection().getOpposite()); + return this.defaultBlockState().setValue(FACING, context.getNearestLookingDirection().getOpposite()); } @Override @@ -65,6 +65,6 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @Override public BlockState rotate(BlockState state, IWorld world, BlockPos pos, Rotation direction) { - return state.with(FACING, FacingUtils.rotateXYZ(state.get(FACING))); + return state.setValue(FACING, FacingUtils.rotateXYZ(state.getValue(FACING))); } } \ No newline at end of file diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/FusionCraftingCore.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/FusionCraftingCore.java index 4ebf8593d..6e18f5ef3 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/FusionCraftingCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/FusionCraftingCore.java @@ -20,7 +20,7 @@ */ public class FusionCraftingCore extends BlockBCore /*implements IRenderOverride, ITileEntityProvider*/ { - private static final VoxelShape SHAPE = VoxelShapes.create(0.0625, 0.0625, 0.0625, 0.9375, 0.9375, 0.9375); + private static final VoxelShape SHAPE = VoxelShapes.box(0.0625, 0.0625, 0.0625, 0.9375, 0.9375, 0.9375); public FusionCraftingCore(Properties properties) { super(properties); @@ -76,9 +76,9 @@ public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos, @Override public void neighborChanged(BlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos, boolean isMoving) { - if (!world.isRemote()) { + if (!world.isClientSide()) { if (isBlockPowered(world, pos)) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileCraftingCore) { ((TileCraftingCore) tile).attemptStartCrafting(); } @@ -87,16 +87,16 @@ public void neighborChanged(BlockState state, World world, BlockPos pos, Block b } @Override - public boolean hasComparatorInputOverride(BlockState state) { + public boolean hasAnalogOutputSignal(BlockState state) { return true; } @Override - public int getComparatorInputOverride(BlockState blockState, World worldIn, BlockPos pos) { - TileEntity tile = worldIn.getTileEntity(pos); + public int getAnalogOutputSignal(BlockState blockState, World worldIn, BlockPos pos) { + TileEntity tile = worldIn.getBlockEntity(pos); if (tile instanceof TileCraftingCore) { return ((TileCraftingCore) tile).getComparatorOutput(); } - return super.getComparatorInputOverride(blockState, worldIn, pos); + return super.getAnalogOutputSignal(blockState, worldIn, pos); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/Generator.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/Generator.java index f3132b8cb..dfdacdb81 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/Generator.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/Generator.java @@ -36,7 +36,7 @@ public class Generator extends BlockBCore { public Generator(Properties properties) { super(properties); - this.setDefaultState(stateContainer.getBaseState().with(FACING, Direction.NORTH).with(ACTIVE, false)); + this.registerDefaultState(stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(ACTIVE, false)); } // @Override @@ -57,23 +57,23 @@ public Generator(Properties properties) { @Override - public float getAmbientOcclusionLightValue(BlockState state, IBlockReader worldIn, BlockPos pos) { - return super.getAmbientOcclusionLightValue(state, worldIn, pos); + public float getShadeBrightness(BlockState state, IBlockReader worldIn, BlockPos pos) { + return super.getShadeBrightness(state, worldIn, pos); } @Override - public BlockRenderType getRenderType(BlockState state) { - return super.getRenderType(state); + public BlockRenderType getRenderShape(BlockState state) { + return super.getRenderShape(state); } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(FACING, ACTIVE); } @Override public BlockState getStateForPlacement(BlockItemUseContext context) { - return this.getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite()); + return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); } //endregion @@ -91,7 +91,7 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @Override public int getLightValue(BlockState state, IBlockReader world, BlockPos pos) { - return state.get(ACTIVE) ? 13 : 0; + return state.getValue(ACTIVE) ? 13 : 0; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/Grinder.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/Grinder.java index 6a135b9ee..7e6531779 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/Grinder.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/Grinder.java @@ -27,7 +27,7 @@ public class Grinder extends BlockBCore/* implements ITileEntityProvider, IRende public Grinder(Properties properties) { super(properties); - this.setDefaultState(stateContainer.getBaseState().with(FACING, Direction.NORTH).with(ACTIVE, false)); //TODO figure out if/when set default is actually needed. + this.registerDefaultState(stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(ACTIVE, false)); //TODO figure out if/when set default is actually needed. setMobResistant(); } @@ -39,7 +39,7 @@ public boolean isBlockFullCube() { } @Override - protected void fillStateContainer(StateContainer.Builder builder) { + protected void createBlockStateDefinition(StateContainer.Builder builder) { builder.add(FACING, ACTIVE); } @@ -113,7 +113,7 @@ protected void fillStateContainer(StateContainer.Builder buil @Override public BlockState getStateForPlacement(BlockItemUseContext context) { - return this.getDefaultState().with(FACING, context.getPlacementHorizontalFacing().getOpposite()); + return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); } // @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/StabilizedSpawner.java b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/StabilizedSpawner.java index 5cae6c185..db9bdf896 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/machines/StabilizedSpawner.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/machines/StabilizedSpawner.java @@ -68,8 +68,8 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @Override - public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { - super.onReplaced(state, worldIn, pos, newState, isMoving); + public void onRemove(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + super.onRemove(state, worldIn, pos, newState, isMoving); } public void setStackData(ItemStack stack, String entityString, TileStabilizedSpawner.SpawnerTier tier) { @@ -78,9 +78,9 @@ public void setStackData(ItemStack stack, String entityString, TileStabilizedSpa } public void setStackDataTier(ItemStack stack, TileStabilizedSpawner.SpawnerTier tier) { - CompoundNBT managedData = stack.getOrCreateChildTag(BlockBCore.BC_TILE_DATA_TAG).getCompound(BlockBCore.BC_MANAGED_DATA_FLAG); + CompoundNBT managedData = stack.getOrCreateTagElement(BlockBCore.BC_TILE_DATA_TAG).getCompound(BlockBCore.BC_MANAGED_DATA_FLAG); managedData.putByte("spawner_tier", (byte) tier.ordinal()); - stack.getOrCreateChildTag(BlockBCore.BC_TILE_DATA_TAG).put(BlockBCore.BC_MANAGED_DATA_FLAG, managedData); + stack.getOrCreateTagElement(BlockBCore.BC_TILE_DATA_TAG).put(BlockBCore.BC_MANAGED_DATA_FLAG, managedData); } //TODO @@ -88,10 +88,10 @@ public void setStackDataEntity(ItemStack stack, String entityString) { if (entityString != null) { ItemStack soul = new ItemStack(DEContent.mob_soul); DEContent.mob_soul.setEntity(MobSoul.getCachedRegName(entityString), soul); - CompoundNBT managedData = stack.getOrCreateChildTag(BlockBCore.BC_TILE_DATA_TAG).getCompound(BlockBCore.BC_MANAGED_DATA_FLAG); - stack.getOrCreateChildTag(BlockBCore.BC_TILE_DATA_TAG).getCompound(BlockBCore.BC_MANAGED_DATA_FLAG); + CompoundNBT managedData = stack.getOrCreateTagElement(BlockBCore.BC_TILE_DATA_TAG).getCompound(BlockBCore.BC_MANAGED_DATA_FLAG); + stack.getOrCreateTagElement(BlockBCore.BC_TILE_DATA_TAG).getCompound(BlockBCore.BC_MANAGED_DATA_FLAG); managedData.put("mob_soul", soul.serializeNBT()); - stack.getOrCreateChildTag(BlockBCore.BC_TILE_DATA_TAG).put(BlockBCore.BC_MANAGED_DATA_FLAG, managedData); + stack.getOrCreateTagElement(BlockBCore.BC_TILE_DATA_TAG).put(BlockBCore.BC_MANAGED_DATA_FLAG, managedData); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ProcessExplosion.java b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ProcessExplosion.java index c715e5bde..259879bf0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ProcessExplosion.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ProcessExplosion.java @@ -39,7 +39,7 @@ */ public class ProcessExplosion implements IProcess { - public static DamageSource fusionExplosion = new DamageSource("damage.de.fusionExplode").setExplosion().setDamageBypassesArmor().setDamageIsAbsolute(); + public static DamageSource fusionExplosion = new DamageSource("damage.de.fusionExplode").setExplosion().bypassArmor().bypassMagic(); /** * The origin of the explosion. @@ -96,7 +96,7 @@ public ProcessExplosion(BlockPos origin, int radius, ServerWorld world, int mini LogHelper.info("Explosion Calculation Started for " + radius + " Block radius detonation!"); maxRadius = radius; - lavaState = Blocks.LAVA.getDefaultState(); + lavaState = Blocks.LAVA.defaultBlockState(); //TODO pyrotheum if (ForgeRegistries.FLUIDS.containsKey(new ResourceLocation("cofhworld", "pyrotheum"))) { Fluid pyro = ForgeRegistries.FLUIDS.getValue(new ResourceLocation("cofhworld", "pyrotheum")); @@ -108,7 +108,7 @@ public ProcessExplosion(BlockPos origin, int radius, ServerWorld world, int mini @Override public void updateProcess() { - server.serverTime = Util.milliTime(); + server.nextTickTime = Util.getMillis(); if (startTime == -1) { startTime = System.currentTimeMillis(); } @@ -161,15 +161,15 @@ public void updateCalculation() { coreFalloff = 1 - ((1 - coreFalloff) * (1 - coreFalloff) * (1 - coreFalloff)); double coreHeight = coreFalloff * maxCoreHeight; double edgeNoise = Math.max(0, (-radialPos + 0.2) * 5); - double edgeScatter = edgeNoise * world.rand.nextInt(10); + double edgeScatter = edgeNoise * world.random.nextInt(10); double sim = SimplexNoise.noise(x / 50D, z / 50D); edgeNoise = 1 + (Math.abs(sim) * edgeNoise * 8); double power = (10000 * radialPos * radialPos * radialPos * angularLoad * edgeNoise) + edgeScatter; double heightUp = 20 + ((5D + (radius / 10D)) * angularLoad); double heightDown = coreHeight + ((5D + (radius / 10D)) * angularLoad * (1 - coreFalloff)); - heightDown += (Math.abs(sim) * 4) + world.rand.nextDouble(); - heightUp += (Math.abs(sim) * 4) + world.rand.nextDouble(); + heightDown += (Math.abs(sim) * 4) + world.random.nextDouble(); + heightUp += (Math.abs(sim) * 4) + world.random.nextDouble(); posVecDown.set(posVecUp); double resist = trace(posVecUp, power/* * (1 + 8 * radialPos)*/, (int) heightUp * 3, 1, 0, 0); @@ -313,7 +313,7 @@ else if (mat == Material.WATER || mat == Material.LAVA) { totalResist += r; power -= r; - if (dist == 1 && traceDir == -1 && lava && world.rand.nextInt(250) == 0 && !world.isAirBlock(pos.down())) { + if (dist == 1 && traceDir == -1 && lava && world.random.nextInt(250) == 0 && !world.isEmptyBlock(pos.below())) { dist = 0; if (destroyedCache.contains(iPos)) { destroyedCache.remove(iPos); @@ -358,7 +358,7 @@ public boolean detonate() { LogHelper.startTimer("Adding Lava"); for (Integer pos : lavaPositions) { - world.setBlockState(shortPos.getActualPos(pos), lavaState); + world.setBlockAndUpdate(shortPos.getActualPos(pos), lavaState); } LogHelper.stopTimer(); @@ -374,17 +374,17 @@ public boolean detonate() { final BlockPos pos = origin.getPos(); if (enableEffect) { - DraconicNetwork.sendExplosionEffect(world.getDimensionKey(), pos, radius * 4, false); + DraconicNetwork.sendExplosionEffect(world.dimension(), pos, radius * 4, false); } new DelayedExecutor(30) { @Override public void execute(Object[] args) { - List list = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos, pos.add(1, 1, 1)).grow(radius * 2.5, radius * 2.5, radius * 2.5)); + List list = world.getEntitiesOfClass(Entity.class, new AxisAlignedBB(pos, pos.offset(1, 1, 1)).inflate(radius * 2.5, radius * 2.5, radius * 2.5)); for (Entity e : list) { double dist = Vec3D.getCenter(pos).distance(e); float dmg = 10000F * (1F - (float) (dist / (radius * 1.2D))); - e.attackEntityFrom(fusionExplosion, dmg); + e.hurt(fusionExplosion, dmg); } } }.run(); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorComponent.java b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorComponent.java index f06a90757..3bd7e92d2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorComponent.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorComponent.java @@ -40,12 +40,12 @@ */ public class ReactorComponent extends BlockBCore { - private static final VoxelShape SHAPE_INJ_DOWN = VoxelShapes.create(0F, 0.885F, 0F, 1F, 1F, 1F); - private static final VoxelShape SHAPE_INJ_UP = VoxelShapes.create(0F, 0F, 0F, 1F, 0.125F, 1F); - private static final VoxelShape SHAPE_INJ_NORTH = VoxelShapes.create(0F, 0F, 0.885F, 1F, 1F, 1F); - private static final VoxelShape SHAPE_INJ_SOUTH = VoxelShapes.create(0F, 0F, 0F, 1F, 1F, 0.125F); - private static final VoxelShape SHAPE_INJ_WEST = VoxelShapes.create(0.885F, 0F, 0F, 1F, 1F, 1F); - private static final VoxelShape SHAPE_INJ_EAST = VoxelShapes.create(0F, 0F, 0F, 0.125F, 1F, 1F); + private static final VoxelShape SHAPE_INJ_DOWN = VoxelShapes.box(0F, 0.885F, 0F, 1F, 1F, 1F); + private static final VoxelShape SHAPE_INJ_UP = VoxelShapes.box(0F, 0F, 0F, 1F, 0.125F, 1F); + private static final VoxelShape SHAPE_INJ_NORTH = VoxelShapes.box(0F, 0F, 0.885F, 1F, 1F, 1F); + private static final VoxelShape SHAPE_INJ_SOUTH = VoxelShapes.box(0F, 0F, 0F, 1F, 1F, 0.125F); + private static final VoxelShape SHAPE_INJ_WEST = VoxelShapes.box(0.885F, 0F, 0F, 1F, 1F, 1F); + private static final VoxelShape SHAPE_INJ_EAST = VoxelShapes.box(0F, 0F, 0F, 0.125F, 1F, 1F); private final boolean injector; public ReactorComponent(Properties properties, boolean injector) { @@ -71,7 +71,7 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @Override public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, ISelectionContext context) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileReactorInjector) { switch (((TileReactorInjector) tile).facing.get()) { @@ -93,14 +93,14 @@ public VoxelShape getShape(BlockState state, IBlockReader world, BlockPos pos, I } @Override - public BlockRenderType getRenderType(BlockState state) { + public BlockRenderType getRenderShape(BlockState state) { return BlockRenderType.INVISIBLE; } @Override - public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { - super.onBlockPlacedBy(world, pos, state, placer, stack); - TileEntity te = world.getTileEntity(pos); + public void setPlacedBy(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack stack) { + super.setPlacedBy(world, pos, state, placer, stack); + TileEntity te = world.getBlockEntity(pos); Direction facing = RotationUtils.getPlacedRotation(pos, placer).getOpposite(); if (te instanceof TileReactorComponent) { @@ -110,8 +110,8 @@ public void onBlockPlacedBy(World world, BlockPos pos, BlockState state, LivingE } @Override - public ActionResultType onBlockActivated(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - TileEntity te = world.getTileEntity(pos); + public ActionResultType use(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { + TileEntity te = world.getBlockEntity(pos); if (te instanceof TileReactorComponent) { ((TileReactorComponent) te).onActivated(player); @@ -120,30 +120,30 @@ public ActionResultType onBlockActivated(BlockState state, World world, BlockPos } @Override - public void onReplaced(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { - TileEntity te = worldIn.getTileEntity(pos); + public void onRemove(BlockState state, World worldIn, BlockPos pos, BlockState newState, boolean isMoving) { + TileEntity te = worldIn.getBlockEntity(pos); if (te instanceof TileReactorComponent) { ((TileReactorComponent) te).onBroken(); } - super.onReplaced(state, worldIn, pos, newState, isMoving); + super.onRemove(state, worldIn, pos, newState, isMoving); } @OnlyIn(Dist.CLIENT) @Override - public void addInformation(ItemStack stack, @Nullable IBlockReader worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable IBlockReader worldIn, List tooltip, ITooltipFlag flagIn) { // tooltip.add(new TranslationTextComponent("info.de.shiftReversePlaceLogic.txt")); - super.addInformation(stack, worldIn, tooltip, flagIn); + super.appendHoverText(stack, worldIn, tooltip, flagIn); } @Override - public boolean hasComparatorInputOverride(BlockState state) { + public boolean hasAnalogOutputSignal(BlockState state) { return true; } @Override - public int getComparatorInputOverride(BlockState blockState, World worldIn, BlockPos pos) { - TileEntity tileEntity = worldIn.getTileEntity(pos); + public int getAnalogOutputSignal(BlockState blockState, World worldIn, BlockPos pos) { + TileEntity tileEntity = worldIn.getBlockEntity(pos); if (tileEntity instanceof TileReactorComponent) { return ((TileReactorComponent) tileEntity).rsPower.get(); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorCore.java b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorCore.java index cf59ff253..7716acda2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorCore.java @@ -27,8 +27,8 @@ */ public class ReactorCore extends BlockBCore /*implements ITileEntityProvider, IRenderOverride*/ { - private static final VoxelShape NO_AABB = VoxelShapes.create(0.5, 0.5, 0.5, 0.5, 0.5, 0.5); - private static final VoxelShape AABB = VoxelShapes.create(0.25, 0.25, 0.25, 0.75, 0.75, 0.75); + private static final VoxelShape NO_AABB = VoxelShapes.box(0.5, 0.5, 0.5, 0.5, 0.5, 0.5); + private static final VoxelShape AABB = VoxelShapes.box(0.25, 0.25, 0.25, 0.75, 0.75, 0.75); public ReactorCore(Properties properties) { super(properties); @@ -52,7 +52,7 @@ public TileEntity createTileEntity(BlockState state, IBlockReader world) { @Override public float getExplosionResistance(BlockState state, IBlockReader world, BlockPos pos, Explosion explosion) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileReactorCore) { return ((TileReactorCore) tile).reactorState.get().isShieldActive() ? 6000000.0F : super.getExplosionResistance(state, world, pos, explosion); } @@ -61,24 +61,24 @@ public float getExplosionResistance(BlockState state, IBlockReader world, BlockP } @Override - public float getPlayerRelativeBlockHardness(BlockState state, PlayerEntity player, IBlockReader world, BlockPos pos) { - TileEntity tile = world.getTileEntity(pos); + public float getDestroyProgress(BlockState state, PlayerEntity player, IBlockReader world, BlockPos pos) { + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileReactorCore) { - return ((TileReactorCore) tile).reactorState.get().isShieldActive() ? -1F : super.getPlayerRelativeBlockHardness(state, player, world, pos); + return ((TileReactorCore) tile).reactorState.get().isShieldActive() ? -1F : super.getDestroyProgress(state, player, world, pos); } - return super.getPlayerRelativeBlockHardness(state, player, world, pos); + return super.getDestroyProgress(state, player, world, pos); } //region Rendering @Override - public BlockRenderType getRenderType(BlockState state) { + public BlockRenderType getRenderShape(BlockState state) { return BlockRenderType.INVISIBLE; } @Override public void onBlockExploded(BlockState state, World world, BlockPos pos, Explosion explosion) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileReactorCore && ((TileReactorCore) tile).reactorState.get().isShieldActive()) { return; } @@ -86,18 +86,18 @@ public void onBlockExploded(BlockState state, World world, BlockPos pos, Explosi } @Override - public VoxelShape getRenderShape(BlockState state, IBlockReader worldIn, BlockPos pos) { - return VoxelShapes.fullCube(); + public VoxelShape getOcclusionShape(BlockState state, IBlockReader worldIn, BlockPos pos) { + return VoxelShapes.block(); } @Override - public VoxelShape getRaytraceShape(BlockState state, IBlockReader worldIn, BlockPos pos) { - return VoxelShapes.fullCube(); + public VoxelShape getInteractionShape(BlockState state, IBlockReader worldIn, BlockPos pos) { + return VoxelShapes.block(); } @Override public VoxelShape getCollisionShape(BlockState state, IBlockReader worldIn, BlockPos pos, ISelectionContext context) { - return VoxelShapes.fullCube(); + return VoxelShapes.block(); } @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorEffectHandler.java b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorEffectHandler.java index 4d552f2c5..76eb36df8 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorEffectHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/ReactorEffectHandler.java @@ -37,9 +37,9 @@ public void updateEffects() { // reactorSound.donePlaying = true; // reactorSound = null;; - if ((reactorSound == null || reactorSound.isDonePlaying() || !Minecraft.getInstance().getSoundHandler().isPlaying(reactorSound)) && reactor.reactorState.get().isShieldActive() && reactor.shieldCharge.get() > 0) { + if ((reactorSound == null || reactorSound.isStopped() || !Minecraft.getInstance().getSoundManager().isActive(reactorSound)) && reactor.reactorState.get().isShieldActive() && reactor.shieldCharge.get() > 0) { reactorSound = new ReactorSound(reactor); - Minecraft.getInstance().getSoundHandler().play(reactorSound); + Minecraft.getInstance().getSoundManager().play(reactorSound); } else if (reactorSound != null && (!reactor.reactorState.get().isShieldActive() || reactor.shieldCharge.get() <= 0)) { reactorSound.donePlaying = true; @@ -50,12 +50,12 @@ else if (reactorSound != null && (!reactor.reactorState.get().isShieldActive() | } for (Direction facing : Direction.values()) { - int index = facing.getIndex(); + int index = facing.get3DDataValue(); TileReactorComponent component = reactor.getComponent(facing); if (component == null) { if (effects[index] != null) { - effects[index].setExpired(); + effects[index].remove(); effects[index] = null; } continue; @@ -66,9 +66,9 @@ else if (reactorSound != null && (!reactor.reactorState.get().isShieldActive() | continue; } - ReactorBeamFX beamFX = new ReactorBeamFX((ClientWorld) reactor.getWorld(), Vec3D.getCenter(component.getPos()), component.facing.get(), reactor, component instanceof TileReactorInjector); + ReactorBeamFX beamFX = new ReactorBeamFX((ClientWorld) reactor.getLevel(), Vec3D.getCenter(component.getBlockPos()), component.facing.get(), reactor, component instanceof TileReactorInjector); effects[index] = beamFX; - DEParticles.addParticleDirect(reactor.getWorld(), beamFX); + DEParticles.addParticleDirect(reactor.getLevel(), beamFX); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorComponent.java b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorComponent.java index af6eab59f..ed31d5f57 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorComponent.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorComponent.java @@ -62,7 +62,7 @@ public void tick() { super.tick(); moveCheckComplete = false; - if (world.isRemote) { + if (level.isClientSide) { TileReactorCore core = tryGetCore(); if (core != null) { animRotationSpeed = core.shieldAnimationState * 15F; @@ -74,13 +74,13 @@ public void tick() { } animRotation += animRotationSpeed; - if (coreFalureIminent && world.rand.nextInt(10) == 0) { - animRotation += (world.rand.nextDouble() - 0.5) * 360; - if (world.rand.nextBoolean()) { - world.addParticle(ParticleTypes.LARGE_SMOKE, pos.getX() + world.rand.nextDouble(), pos.getY() + world.rand.nextDouble(), pos.getZ() + world.rand.nextDouble(), 0, 0, 0); + if (coreFalureIminent && level.random.nextInt(10) == 0) { + animRotation += (level.random.nextDouble() - 0.5) * 360; + if (level.random.nextBoolean()) { + level.addParticle(ParticleTypes.LARGE_SMOKE, worldPosition.getX() + level.random.nextDouble(), worldPosition.getY() + level.random.nextDouble(), worldPosition.getZ() + level.random.nextDouble(), 0, 0, 0); } else { - world.addParticle(ParticleTypes.CLOUD, pos.getX() + world.rand.nextDouble(), pos.getY() + world.rand.nextDouble(), pos.getZ() + world.rand.nextDouble(), 0, 0, 0); + level.addParticle(ParticleTypes.CLOUD, worldPosition.getX() + level.random.nextDouble(), worldPosition.getY() + level.random.nextDouble(), worldPosition.getZ() + level.random.nextDouble(), 0, 0, 0); } } } @@ -91,7 +91,7 @@ public void tick() { int rs = rsMode.get().getRSSignal(core); if (rs != rsPower.get()) { rsPower.set(rs); - world.notifyNeighborsOfStateChange(pos, getBlockState().getBlock()); + level.updateNeighborsAt(worldPosition, getBlockState().getBlock()); } } } @@ -109,7 +109,7 @@ public void tick() { public void bindToCore(TileReactorCore core) { LogHelper.dev("Reactor-Comp: Bind To Core"); isBound.set(true); - coreOffset.set(getCoreOffset(core.getPos())); + coreOffset.set(getCoreOffset(core.getBlockPos())); } /** @@ -127,9 +127,9 @@ public void pokeCore() { LogHelper.dev("Reactor-Comp: Try Poke Core | Find"); for (int i = 1; i < COMPONENT_MAX_DISTANCE; i++) { - BlockPos searchPos = pos.offset(facing.get(), i); - if (!world.isAirBlock(searchPos)) { - TileEntity tile = world.getTileEntity(searchPos); + BlockPos searchPos = worldPosition.relative(facing.get(), i); + if (!level.isEmptyBlock(searchPos)) { + TileEntity tile = level.getBlockEntity(searchPos); LogHelper.dev("Reactor-Comp: Check: " + tile); LogHelper.dev("Reactor-Comp: Try Poke Core | Found: " + tile); @@ -151,14 +151,14 @@ public void invalidateComponent() { //region Player Interaction public void onPlaced() { - if (world.isRemote) { + if (level.isClientSide) { return; } pokeCore(); } public void onBroken() { - if (world.isRemote) { + if (level.isClientSide) { return; } @@ -169,7 +169,7 @@ public void onBroken() { } public void onActivated(PlayerEntity player) { - if (world.isRemote) { + if (level.isClientSide) { return; } @@ -181,7 +181,7 @@ public void onActivated(PlayerEntity player) { } public void setRSMode(PlayerEntity player, RSMode rsMode) { - if (world.isRemote) { + if (level.isClientSide) { sendPacketToServer(output -> output.writeString(rsMode.name()), 0); } else { @@ -201,11 +201,11 @@ public void receivePacketFromClient(MCDataInput data, ServerPlayerEntity client, //region Getters & Setters protected BlockPos getCorePos() { - return pos.subtract(coreOffset.get().getPos()); + return worldPosition.subtract(coreOffset.get().getPos()); } protected Vec3I getCoreOffset(BlockPos corePos) { - return new Vec3I(pos.subtract(corePos)); + return new Vec3I(worldPosition.subtract(corePos)); } /** @@ -217,12 +217,12 @@ protected TileReactorCore checkAndGetCore() { return null; } - TileEntity tile = world.getTileEntity(getCorePos()); + TileEntity tile = level.getBlockEntity(getCorePos()); if (tile instanceof TileReactorCore) { return (TileReactorCore) tile; } - if (world.isAreaLoaded(getCorePos(), 16)) { + if (level.isAreaLoaded(getCorePos(), 16)) { invalidateComponent(); } @@ -235,7 +235,7 @@ public TileReactorCore tryGetCore() { return null; } - TileEntity tile = world.getTileEntity(getCorePos()); + TileEntity tile = level.getBlockEntity(getCorePos()); if (tile instanceof TileReactorCore) { return (TileReactorCore) tile; } @@ -245,16 +245,16 @@ public TileReactorCore tryGetCore() { protected TileReactorCore getCachedCore() { if (isBound.get()) { BlockPos corePos = getCorePos(); - Chunk coreChunk = world.getChunkAt(corePos); + Chunk coreChunk = level.getChunkAt(corePos); - if (!Utils.isAreaLoaded(world, corePos, ChunkHolder.LocationType.TICKING)) { + if (!Utils.isAreaLoaded(level, corePos, ChunkHolder.LocationType.TICKING)) { cachedCore = null; return null; } - TileEntity tileAtPos = coreChunk.getTileEntity(corePos, Chunk.CreateEntityType.CHECK); + TileEntity tileAtPos = coreChunk.getBlockEntity(corePos, Chunk.CreateEntityType.CHECK); if (tileAtPos == null || cachedCore == null || tileAtPos != cachedCore || tileAtPos.isRemoved()) { - TileEntity tile = world.getTileEntity(corePos); + TileEntity tile = level.getBlockEntity(corePos); if (tile instanceof TileReactorCore) { cachedCore = (TileReactorCore) tile; diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorCore.java b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorCore.java index ebbe8900a..54b970938 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorCore.java @@ -156,7 +156,7 @@ public int getAccessDistanceSq() { @Override public void tick() { - if (pos.getX() > 1000)LogHelper.dev(pos); + if (worldPosition.getX() > 1000)LogHelper.dev(worldPosition); // if (explosionProcess != null) { // explosionProcess.isDead = true; // explosionProcess = null; @@ -194,15 +194,15 @@ public void tick() { isFrameMoving = false; moveBlocksProvided = false; - if (world.isRemote && effectHandler != null) { + if (level.isClientSide && effectHandler != null) { effectHandler.updateEffects(); if (HolidayHelper.isAprilFools()) { if (inView) { viewTicks++; if (viewTicks > 100 && roller == null) { - if (world.rand.nextInt(25) == 0) { - roller = new Roller(Vec3D.getCenter(this), world, getCoreDiameter()); + if (level.random.nextInt(25) == 0) { + roller = new Roller(Vec3D.getCenter(this), level, getCoreDiameter()); } else { viewTicks = 0; } @@ -229,7 +229,7 @@ public void tick() { //region ################# Core Logic ################## private void updateCoreLogic() { - if (world.isRemote) { + if (level.isClientSide) { checkPlayerCollision(); coreAnimation += shaderAnimationState.get(); if (maxShieldCharge.get() == 0) { @@ -241,7 +241,7 @@ private void updateCoreLogic() { } if (reactorState.get() == ReactorState.BEYOND_HOPE) { - shieldAnimationState = world.rand.nextInt(10) == 0 ? 0 : 1; + shieldAnimationState = level.random.nextInt(10) == 0 ? 0 : 1; shieldAnimation += shieldAnimationState; } return; @@ -311,12 +311,12 @@ private void updateOfflineState() { temperature.subtract(0.5); } if (shieldCharge.get() > 0) { - shieldCharge.subtract(maxShieldCharge.get() * 0.0005 * world.rand.nextDouble()); + shieldCharge.subtract(maxShieldCharge.get() * 0.0005 * level.random.nextDouble()); } else if (shieldCharge.get() < 0) { shieldCharge.zero(); } if (saturation.get() > 0) { - saturation.subtract((int) (maxSaturation.get() * 0.000002D * world.rand.nextDouble())); + saturation.subtract((int) (maxSaturation.get() * 0.000002D * level.random.nextDouble())); } else if (saturation.get() < 0) { saturation.zero(); } @@ -424,8 +424,8 @@ private void updateOnlineState() { for (int i = 0; i < componentPositions.length; i++) { ManagedVec3I v = componentPositions[i]; if (v.get().sum() > 0) { - BlockPos p = getOffsetPos(v.get()).offset(Direction.byIndex(i).getOpposite()); - world.createExplosion(null, p.getX() + 0.5, p.getY() + 0.5, p.getZ() + 0.5, 4, true, Explosion.Mode.DESTROY); + BlockPos p = getOffsetPos(v.get()).relative(Direction.from3DDataValue(i).getOpposite()); + level.explode(null, p.getX() + 0.5, p.getY() + 0.5, p.getZ() + 0.5, 4, true, Explosion.Mode.DESTROY); } } } @@ -433,22 +433,22 @@ private void updateOnlineState() { //Worst case it rolls back a second if (tick % 20 == 0) { - markDirty(); + setChanged(); } } public void updateCriticalState() { - if (!(world instanceof ServerWorld)) { + if (!(level instanceof ServerWorld)) { return; } - shieldCharge.set((double) world.rand.nextInt(Math.max(1, (int) (maxShieldCharge.get() * 0.01)))); + shieldCharge.set((double) level.random.nextInt(Math.max(1, (int) (maxShieldCharge.get() * 0.01)))); animExtractState.set(1D); temperature.set(MathHelper.approachExp(temperature.get(), MAX_TEMPERATURE * 1.2, 0.0005)); if (DEOldConfig.disableLargeReactorBoom) { if (explosionCountdown.get() == -1) { - explosionCountdown.set(1200 + world.rand.nextInt(2400)); + explosionCountdown.set(1200 + level.random.nextInt(2400)); } if (explosionCountdown.dec() <= 0) { @@ -465,10 +465,10 @@ public void updateCriticalState() { if (explosionProcess == null) { double radius = MathUtils.map(convertedFuel.get() + reactableFuel.get(), 144, 10368, 50D, 350D) * DEOldConfig.reactorExplosionScale; - explosionProcess = new ProcessExplosion(pos, (int) radius, (ServerWorld) world, -1); + explosionProcess = new ProcessExplosion(worldPosition, (int) radius, (ServerWorld) level, -1); ProcessHandler.addProcess(explosionProcess); explosionCountdown.set(-1); - minExplosionDelay = 1200 + world.rand.nextInt(2400); + minExplosionDelay = 1200 + level.random.nextInt(2400); return; } @@ -487,12 +487,12 @@ public void updateCriticalState() { if (explosionCountdown.dec() <= 0) { // explosionProcess = null; explosionProcess.detonate(); - world.removeBlock(pos, false); + level.removeBlock(worldPosition, false); } } public boolean canCharge() { - if (!world.isRemote && !validateStructure()) { + if (!level.isClientSide && !validateStructure()) { return false; } else if (reactorState.get() == ReactorState.BEYOND_HOPE) { return false; @@ -502,7 +502,7 @@ public boolean canCharge() { } public boolean canActivate() { - if (!world.isRemote && !validateStructure()) { + if (!level.isClientSide && !validateStructure()) { return false; } else if (reactorState.get() == ReactorState.BEYOND_HOPE) { return false; @@ -547,7 +547,7 @@ public boolean canStop() { private static final byte ID_FAIL_SAFE = 3; public void chargeReactor() { - if (world.isRemote) { + if (level.isClientSide) { LogHelper.dev("Reactor: Start Charging"); sendPacketToServer(output -> output.writeByte(ID_CHARGE), 0); } else if (canCharge()) { @@ -557,7 +557,7 @@ public void chargeReactor() { } public void activateReactor() { - if (world.isRemote) { + if (level.isClientSide) { LogHelper.dev("Reactor: Activate"); sendPacketToServer(output -> output.writeByte(ID_ACTIVATE), 0); } else if (canActivate()) { @@ -567,7 +567,7 @@ public void activateReactor() { } public void shutdownReactor() { - if (world.isRemote) { + if (level.isClientSide) { LogHelper.dev("Reactor: Shutdown"); sendPacketToServer(output -> output.writeByte(ID_SHUTDOWN), 0); } else if (canStop()) { @@ -577,7 +577,7 @@ public void shutdownReactor() { } public void toggleFailSafe() { - if (world.isRemote) { + if (level.isClientSide) { sendPacketToServer(output -> output.writeByte(ID_FAIL_SAFE), 0); } else { failSafeMode.set(!failSafeMode.get()); @@ -585,9 +585,9 @@ public void toggleFailSafe() { } public void onComponentClicked(PlayerEntity player, TileReactorComponent component) { - if (!world.isRemote) { - NetworkHooks.openGui((ServerPlayerEntity) player, this, pos); - sendPacketToClient((ServerPlayerEntity) player, output -> output.writePos(component.getPos()), 1); + if (!level.isClientSide) { + NetworkHooks.openGui((ServerPlayerEntity) player, this, worldPosition); + sendPacketToClient((ServerPlayerEntity) player, output -> output.writePos(component.getBlockPos()), 1); } } @@ -616,8 +616,8 @@ public void receivePacketFromClient(MCDataInput data, ServerPlayerEntity client, public void receivePacketFromServer(MCDataInput data, int id) { if (id == 1) { BlockPos pos = data.readPos(); - TileEntity tile = world.getTileEntity(pos); - Screen screen = Minecraft.getInstance().currentScreen; + TileEntity tile = level.getBlockEntity(pos); + Screen screen = Minecraft.getInstance().screen; if (tile instanceof TileReactorComponent && screen instanceof GuiReactor) { ((GuiReactor) screen).component = (TileReactorComponent) tile; } @@ -626,14 +626,14 @@ public void receivePacketFromServer(MCDataInput data, int id) { private void checkPlayerCollision() { PlayerEntity player = BrandonsCore.proxy.getClientPlayer(); - double distance = Math.min(Utils.getDistanceAtoB(new Vec3D(player).add(0, player.getEyeHeight(), 0), Vec3D.getCenter(pos)), Utils.getDistanceAtoB(new Vec3D(player), Vec3D.getCenter(pos))); + double distance = Math.min(Utils.getDistanceAtoB(new Vec3D(player).add(0, player.getEyeHeight(), 0), Vec3D.getCenter(worldPosition)), Utils.getDistanceAtoB(new Vec3D(player), Vec3D.getCenter(worldPosition))); if (distance < (getCoreDiameter() / 2) + 0.5 && !player.isSpectator()) { double dMod = 1D - (distance / Math.max(0.1, (getCoreDiameter() / 2) + 0.5)); - double offsetX = player.getPosX() - pos.getX() + 0.5; - double offsetY = player.getPosY() - pos.getY() + 0.5; - double offsetZ = player.getPosZ() - pos.getZ() + 0.5; + double offsetX = player.getX() - worldPosition.getX() + 0.5; + double offsetY = player.getY() - worldPosition.getY() + 0.5; + double offsetZ = player.getZ() - worldPosition.getZ() + 0.5; double m = 1D * dMod; - player.addVelocity(offsetX * m, offsetY * m, offsetZ * m); + player.push(offsetX * m, offsetY * m, offsetZ * m); } } @@ -655,9 +655,9 @@ public void pokeCore(TileReactorComponent component, Direction pokeFrom) { if (structureValid.get()) { //If the component is an unbound injector and there is no component bound on the same side then bind it. if (component instanceof TileReactorInjector && !component.isBound.get()) { - TileEntity tile = world.getTileEntity(getOffsetPos(componentPositions[pokeFrom.getIndex()].get())); + TileEntity tile = level.getBlockEntity(getOffsetPos(componentPositions[pokeFrom.get3DDataValue()].get())); if (tile == this) { - componentPositions[pokeFrom.getIndex()].set(getOffsetVec(component.getPos())); + componentPositions[pokeFrom.get3DDataValue()].set(getOffsetVec(component.getBlockPos())); component.bindToCore(this); LogHelper.dev("Reactor: Injector Added!"); } @@ -682,11 +682,11 @@ public void componentBroken(TileReactorComponent component, Direction componentS if (component instanceof TileReactorInjector) { LogHelper.dev("Reactor: Component broken! (Injector)"); - TileEntity tile = world.getTileEntity(getOffsetPos(componentPositions[componentSide.getIndex()].get())); + TileEntity tile = level.getBlockEntity(getOffsetPos(componentPositions[componentSide.get3DDataValue()].get())); if (tile == component || tile == null) { LogHelper.dev("Reactor: -Removed"); - componentPositions[componentSide.getIndex()].get().set(0, 0, 0); + componentPositions[componentSide.get3DDataValue()].get().set(0, 0, 0); } } else if (reactorState.get() != ReactorState.COLD) { LogHelper.dev("Reactor: Component broken, Structure Invalidated (Unsafe!!!!)"); @@ -706,21 +706,21 @@ public void componentBroken(TileReactorComponent component, Direction componentS } public void checkBlockIntrusions() { - if (!(world instanceof ServerWorld)) { + if (!(level instanceof ServerWorld)) { return; } if (tick % 100 == 0) { double rad = (getCoreDiameter() * 1.05) / 2; - Iterable inRange = BlockPos.getAllInBoxMutable(pos.add(-rad, -rad, -rad), pos.add(rad + 1, rad + 1, rad + 1)); + Iterable inRange = BlockPos.betweenClosed(worldPosition.offset(-rad, -rad, -rad), worldPosition.offset(rad + 1, rad + 1, rad + 1)); for (BlockPos p : inRange) { - if (p.equals(pos) || Utils.getDistanceAtoB(p.getX(), p.getY(), p.getZ(), pos.getX(), pos.getY(), pos.getZ()) - 0.5 >= rad) { + if (p.equals(worldPosition) || Utils.getDistanceAtoB(p.getX(), p.getY(), p.getZ(), worldPosition.getX(), worldPosition.getY(), worldPosition.getZ()) - 0.5 >= rad) { continue; } - if (!world.isAirBlock(p) && !blockIntrusions.containsKey(p)) { - blockIntrusions.put(p.toImmutable(), 0); + if (!level.isEmptyBlock(p) && !blockIntrusions.containsKey(p)) { + blockIntrusions.put(p.immutable(), 0); } } } @@ -732,20 +732,20 @@ public void checkBlockIntrusions() { Map.Entry entry = i.next(); final Vec3D iPos = new Vec3D(entry.getKey()); - if (world.rand.nextInt(10) == 0) { - ((ServerWorld) world).spawnParticle(ParticleTypes.FLAME, iPos.x + 0.5, iPos.y + 0.5, iPos.z + 0.5, 5, 0.5, 0.5, 0.5, 0.01D); + if (level.random.nextInt(10) == 0) { + ((ServerWorld) level).sendParticles(ParticleTypes.FLAME, iPos.x + 0.5, iPos.y + 0.5, iPos.z + 0.5, 5, 0.5, 0.5, 0.5, 0.01D); } entry.setValue(entry.getValue() + 1); if (entry.getValue() > 100) { i.remove(); - world.playEvent(2001, entry.getKey(), Block.getStateId(world.getBlockState(entry.getKey()))); - world.removeBlock(entry.getKey(), false); + level.levelEvent(2001, entry.getKey(), Block.getId(level.getBlockState(entry.getKey()))); + level.removeBlock(entry.getKey(), false); } } - if (tick % 20 == 0 || world.rand.nextInt(40) == 0) { - world.playSound(null, pos, SoundEvents.BLOCK_FIRE_EXTINGUISH, SoundCategory.BLOCKS, 1, 0.9F + world.rand.nextFloat() * 0.2F); + if (tick % 20 == 0 || level.random.nextInt(40) == 0) { + level.playSound(null, worldPosition, SoundEvents.FIRE_EXTINGUISH, SoundCategory.BLOCKS, 1, 0.9F + level.random.nextFloat() * 0.2F); } } } @@ -793,17 +793,17 @@ public boolean findComponents() { LogHelper.dev("Reactor: Find Components"); int stabilizersFound = 0; for (Direction facing : Direction.values()) { - componentPositions[facing.getIndex()].get().set(0, 0, 0); + componentPositions[facing.get3DDataValue()].get().set(0, 0, 0); for (int i = 4; i < COMPONENT_MAX_DISTANCE; i++) { - BlockPos searchPos = pos.offset(facing, i); + BlockPos searchPos = worldPosition.relative(facing, i); - if (!world.isAirBlock(searchPos)) { - TileEntity searchTile = world.getTileEntity(searchPos); + if (!level.isEmptyBlock(searchPos)) { + TileEntity searchTile = level.getBlockEntity(searchPos); LogHelper.dev("Reactor: -Found: " + searchTile); if (searchTile instanceof TileReactorComponent && ((TileReactorComponent) searchTile).facing.get() == facing.getOpposite()) { - LogHelper.dev("Set " + facing.getIndex() + " " + getOffsetVec(searchPos)); - componentPositions[facing.getIndex()].set(getOffsetVec(searchPos)); + LogHelper.dev("Set " + facing.get3DDataValue() + " " + getOffsetVec(searchPos)); + componentPositions[facing.get3DDataValue()].set(getOffsetVec(searchPos)); if (searchTile instanceof TileReactorStabilizer) { stabilizersFound++; } @@ -828,7 +828,7 @@ public boolean checkStabilizerAxis() { for (Axis axis : Axis.values()) { boolean axisValid = true; for (Direction facing : FacingUtils.getFacingsAroundAxis(axis)) { - TileEntity tile = world.getTileEntity(getOffsetPos(componentPositions[facing.getIndex()].get())); + TileEntity tile = level.getBlockEntity(getOffsetPos(componentPositions[facing.get3DDataValue()].get())); //The facing check should not be needed here but does not heart to be to careful. if (!(tile instanceof TileReactorStabilizer && ((TileReactorStabilizer) tile).facing.get() == facing.getOpposite())) { axisValid = false; @@ -856,7 +856,7 @@ public boolean bindComponents() { LogHelper.dev("Reactor: Binding Components"); int stabilizersBound = 0; for (int i = 0; i < 6; i++) { - TileEntity tile = world.getTileEntity(getOffsetPos(componentPositions[i].get())); + TileEntity tile = level.getBlockEntity(getOffsetPos(componentPositions[i].get())); if (tile instanceof TileReactorComponent) { ((TileReactorComponent) tile).bindToCore(this); @@ -879,28 +879,28 @@ public boolean bindComponents() { public boolean validateStructure() { LogHelper.dev("Reactor: Validate Structure"); for (Direction facing : FacingUtils.getFacingsAroundAxis(stabilizerAxis.get())) { - BlockPos pos = getOffsetPos(componentPositions[facing.getIndex()].get()); - if (!Utils.isAreaLoaded(world, pos, LocationType.TICKING)) { + BlockPos pos = getOffsetPos(componentPositions[facing.get3DDataValue()].get()); + if (!Utils.isAreaLoaded(level, pos, LocationType.TICKING)) { return true; } - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = level.getBlockEntity(pos); LogHelper.dev("Reactor: Validate Stabilizer: " + tile); - if (!(tile instanceof TileReactorStabilizer) || !((TileReactorStabilizer) tile).getCorePos().equals(this.pos)) { + if (!(tile instanceof TileReactorStabilizer) || !((TileReactorStabilizer) tile).getCorePos().equals(this.worldPosition)) { LogHelper.dev("Reactor: Structure Validation Failed!!!"); return false; } for (ManagedVec3I vec : componentPositions) { pos = getOffsetPos(vec.get()); - tile = world.getTileEntity(pos); + tile = level.getBlockEntity(pos); if (tile instanceof TileReactorInjector && !((TileReactorInjector) tile).isBound.get()) { ((TileReactorInjector) tile).bindToCore(this); } - if (tile instanceof TileReactorComponent && ((TileReactorComponent) tile).getCorePos().equals(this.pos) && !((TileReactorComponent) tile).isBound.get()) { + if (tile instanceof TileReactorComponent && ((TileReactorComponent) tile).getCorePos().equals(this.worldPosition) && !((TileReactorComponent) tile).isBound.get()) { LogHelper.warn("Detected a reactor component in an invalid state. This is likely due to a recent bug that has since been fixed. The state of this component will now be corrected."); ((TileReactorComponent) tile).bindToCore(this); } @@ -914,7 +914,7 @@ public boolean validateStructure() { //endregion private void minimalBoom() { - BlockState lava = Blocks.LAVA.getDefaultState(); + BlockState lava = Blocks.LAVA.defaultBlockState(); //TODO pyrotheum // LogHelper.dev(FluidRegistry.isFluidRegistered("pyrotheum")); // if (FluidRegistry.isFluidRegistered("pyrotheum")) { @@ -924,32 +924,32 @@ private void minimalBoom() { // } // } - Vec3D vec = Vec3D.getCenter(pos); - world.removeBlock(pos, false); - world.createExplosion(null, vec.x, vec.y, vec.z, 8, Explosion.Mode.BREAK); - int c = 25 + world.rand.nextInt(25); + Vec3D vec = Vec3D.getCenter(worldPosition); + level.removeBlock(worldPosition, false); + level.explode(null, vec.x, vec.y, vec.z, 8, Explosion.Mode.BREAK); + int c = 25 + level.random.nextInt(25); for (int i = 0; i < c; i++) { - FallingBlockEntity entity = new FallingBlockEntity(world, vec.x, vec.y, vec.z, lava); - entity.fallTime = 1; - entity.shouldDropItem = false; - double vMod = 0.5 + (2 * world.rand.nextDouble()); - entity.addVelocity((world.rand.nextDouble() - 0.5) * vMod, (world.rand.nextDouble() / 1.5) * vMod, (world.rand.nextDouble() - 0.5) * vMod); - world.addEntity(entity); + FallingBlockEntity entity = new FallingBlockEntity(level, vec.x, vec.y, vec.z, lava); + entity.time = 1; + entity.dropItem = false; + double vMod = 0.5 + (2 * level.random.nextDouble()); + entity.push((level.random.nextDouble() - 0.5) * vMod, (level.random.nextDouble() / 1.5) * vMod, (level.random.nextDouble() - 0.5) * vMod); + level.addFreshEntity(entity); } } //region Getters & Setters private BlockPos getOffsetPos(Vec3I vec) { - return pos.subtract(vec.getPos()); + return worldPosition.subtract(vec.getPos()); } private Vec3I getOffsetVec(BlockPos offsetPos) { - return new Vec3I(pos.subtract(offsetPos)); + return new Vec3I(worldPosition.subtract(offsetPos)); } public TileReactorComponent getComponent(Direction facing) { - TileEntity tile = world.getTileEntity(getOffsetPos(componentPositions[facing.getIndex()].get())); + TileEntity tile = level.getBlockEntity(getOffsetPos(componentPositions[facing.get3DDataValue()].get())); if (tile instanceof TileReactorComponent && ((TileReactorComponent) tile).facing.get() == facing.getOpposite()) { return (TileReactorComponent) tile; @@ -1020,7 +1020,7 @@ public AxisAlignedBB getRenderBoundingBox() { } @Override - public double getMaxRenderDistanceSquared() { + public double getViewDistance() { return 40960.0D; } @@ -1050,7 +1050,7 @@ public static class Roller { public Roller(Vec3D pos, World world, double diameter) { this.pos = pos; this.lastPos = pos.copy(); - this.direction = world.rand.nextDouble() * Math.PI * 2; + this.direction = world.random.nextDouble() * Math.PI * 2; this.world = world; this.diameter = (diameter / 2) + 1; this.speed = -0.3; @@ -1062,12 +1062,12 @@ public void update() { double z = Math.sin(direction); BlockPos p = pos.getPos(); - if (world.isAirBlock(p) || world.getBlockState(p).getBlock() == DEContent.reactor_core) { - while ((world.isAirBlock(p) || world.getBlockState(p).getBlock() == DEContent.reactor_core) && p.getY() > 0) { - p = p.down(); + if (world.isEmptyBlock(p) || world.getBlockState(p).getBlock() == DEContent.reactor_core) { + while ((world.isEmptyBlock(p) || world.getBlockState(p).getBlock() == DEContent.reactor_core) && p.getY() > 0) { + p = p.below(); } } else { - while (!world.isAirBlock(p)) p = p.up(); + while (!world.isEmptyBlock(p)) p = p.above(); } int y = p.getY(); @@ -1141,7 +1141,7 @@ public boolean isShieldActive() { @OnlyIn(Dist.CLIENT) public String localize() { TextFormatting[] colours = {TextFormatting.RED, TextFormatting.DARK_AQUA, TextFormatting.LIGHT_PURPLE, TextFormatting.GREEN, TextFormatting.LIGHT_PURPLE, TextFormatting.LIGHT_PURPLE, TextFormatting.DARK_RED}; - return colours[ordinal()] + I18n.format("gui.reactor.status." + name().toLowerCase() + ".info"); + return colours[ordinal()] + I18n.get("gui.reactor.status." + name().toLowerCase() + ".info"); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorStabilizer.java b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorStabilizer.java index a0f716fd6..452a7a00b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorStabilizer.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/reactor/tileentity/TileReactorStabilizer.java @@ -22,14 +22,14 @@ public TileReactorStabilizer() { public void tick() { super.tick(); - if (world.isRemote) { + if (level.isClientSide) { return; } TileReactorCore tile = getCachedCore(); if (tile != null && tile.reactorState.get() == TileReactorCore.ReactorState.RUNNING) { - TileEntity output = world.getTileEntity(pos.offset(facing.get().getOpposite())); + TileEntity output = level.getBlockEntity(worldPosition.relative(facing.get().getOpposite())); if (output != null && EnergyUtils.canReceiveEnergy(output, facing.get())) { long sent = EnergyUtils.insertEnergy(output, tile.saturation.get(), facing.get(), false); tile.saturation.subtract(sent); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/StabilizedSpawnerLogic.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/StabilizedSpawnerLogic.java index f5e0618aa..218cfab0c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/StabilizedSpawnerLogic.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/StabilizedSpawnerLogic.java @@ -41,20 +41,20 @@ public ResourceLocation getEntityId() { } @Override - public void setEntityType(EntityType type) {} + public void setEntityId(EntityType type) {} @Override public void tick() { - if (!this.isActivated()) { + if (!this.isNearPlayer()) { this.prevMobRotation = this.mobRotation; } else { - BlockPos blockpos = this.getSpawnerPosition(); - World world = this.getWorld(); - if (world.isRemote) { - double d3 = (float) blockpos.getX() + world.rand.nextFloat(); - double d4 = (float) blockpos.getY() + world.rand.nextFloat(); - double d5 = (float) blockpos.getZ() + world.rand.nextFloat(); + BlockPos blockpos = this.getPos(); + World world = this.getLevel(); + if (world.isClientSide) { + double d3 = (float) blockpos.getX() + world.random.nextFloat(); + double d4 = (float) blockpos.getY() + world.random.nextFloat(); + double d5 = (float) blockpos.getZ() + world.random.nextFloat(); world.addParticle(ParticleTypes.SMOKE, d3, d4, d5, 0.0D, 0.0D, 0.0D); world.addParticle(ParticleTypes.FLAME, d3, d4, d5, 0.0D, 0.0D, 0.0D); @@ -81,45 +81,45 @@ public void tick() { Entity entity = DEContent.mob_soul.createEntity(world, tile.mobSoul.get()); do { - double spawnX = (double) blockpos.getX() + (world.rand.nextDouble() - world.rand.nextDouble()) * (double) this.spawnRange + 0.5D; - double spawnY = blockpos.getY() + world.rand.nextInt(3) - 1; - double spawnZ = (double) blockpos.getZ() + (world.rand.nextDouble() - world.rand.nextDouble()) * (double) this.spawnRange + 0.5D; - entity.setPositionAndRotation(spawnX, spawnY, spawnZ, 0, 0); - } while (entity.getPosition().getX() == tile.getPos().getX() && entity.getPosition().getZ() == tile.getPos().getZ()); + double spawnX = (double) blockpos.getX() + (world.random.nextDouble() - world.random.nextDouble()) * (double) this.spawnRange + 0.5D; + double spawnY = blockpos.getY() + world.random.nextInt(3) - 1; + double spawnZ = (double) blockpos.getZ() + (world.random.nextDouble() - world.random.nextDouble()) * (double) this.spawnRange + 0.5D; + entity.absMoveTo(spawnX, spawnY, spawnZ, 0, 0); + } while (entity.blockPosition().getX() == tile.getBlockPos().getX() && entity.blockPosition().getZ() == tile.getBlockPos().getZ()); - int nearbyCount = world.getEntitiesWithinAABB(entity.getClass(), (new AxisAlignedBB(blockpos.getX(), blockpos.getY(), blockpos.getZ(), blockpos.getX() + 1, blockpos.getY() + 1, blockpos.getZ() + 1)).grow(this.spawnRange)).size(); + int nearbyCount = world.getEntitiesOfClass(entity.getClass(), (new AxisAlignedBB(blockpos.getX(), blockpos.getY(), blockpos.getZ(), blockpos.getX() + 1, blockpos.getY() + 1, blockpos.getZ() + 1)).inflate(this.spawnRange)).size(); if (nearbyCount >= tier.getMaxCluster()) { this.resetTimer(); return; } LivingEntity entityliving = entity instanceof LivingEntity ? (LivingEntity) entity : null; - entity.setLocationAndAngles(entity.getPosX(), entity.getPosY(), entity.getPosZ(), world.rand.nextFloat() * 360.0F, 0.0F); + entity.moveTo(entity.getX(), entity.getY(), entity.getZ(), world.random.nextFloat() * 360.0F, 0.0F); - if (entityliving == null || !(entityliving instanceof MobEntity) || canEntitySpawnSpawner((MobEntity)entityliving, getWorld(), (float) entity.getPosX(), (float) entity.getPosY(), (float) entity.getPosZ(), this)) { + if (entityliving == null || !(entityliving instanceof MobEntity) || canEntitySpawnSpawner((MobEntity)entityliving, getLevel(), (float) entity.getX(), (float) entity.getY(), (float) entity.getZ(), this)) { if (!tier.requiresPlayer() && entity instanceof MobEntity) { - ((MobEntity) entity).enablePersistence(); + ((MobEntity) entity).setPersistenceRequired(); entity.getPersistentData().putLong("DESpawnedMob", System.currentTimeMillis()); DEEventHandler.onMobSpawnedBySpawner((MobEntity) entity); } - if (!((ServerWorld)world).func_242106_g(entity)) { + if (!((ServerWorld)world).tryAddFreshEntityWithPassengers(entity)) { this.resetTimer(); return; } - world.playEvent(2004, blockpos, 0); + world.levelEvent(2004, blockpos, 0); if (entityliving != null) { if (entity instanceof MobEntity) { - ((MobEntity)entity).spawnExplosionParticle(); + ((MobEntity)entity).spawnAnim(); } if (tier == TileStabilizedSpawner.SpawnerTier.CHAOTIC) { double velocity = 2.5; - entity.setMotion((world.rand.nextDouble() - 0.5) * velocity, - world.rand.nextDouble() * velocity, - (world.rand.nextDouble() - 0.5) * velocity); + entity.setDeltaMovement((world.random.nextDouble() - 0.5) * velocity, + world.random.nextDouble() * velocity, + (world.random.nextDouble() - 0.5) * velocity); } } @@ -141,7 +141,7 @@ public void tick() { public boolean canEntitySpawnSpawner(MobEntity entity, World world, float x, float y, float z, AbstractSpawner spawner) { Event.Result result = ForgeEventFactory.canEntitySpawn(entity, world, x, y, z, spawner, SpawnReason.SPAWNER); if (result == Event.Result.DEFAULT) { - return (tile.spawnerTier.get().ignoreSpawnReq() || entity.canSpawn(world, SpawnReason.SPAWNER)) && entity.isNotColliding(world); + return (tile.spawnerTier.get().ignoreSpawnReq() || entity.checkSpawnRules(world, SpawnReason.SPAWNER)) && entity.checkSpawnObstruction(world); } else { return result == Event.Result.ALLOW; } @@ -153,19 +153,19 @@ private void resetTimer() { tile.spawnDelay.set((short) tier.getMinDelay()); } else { int i = tier.getMaxDelay() - tier.getMinDelay(); - tile.spawnDelay.set((short) (tier.getMinDelay() + this.getWorld().rand.nextInt(i))); + tile.spawnDelay.set((short) (tier.getMinDelay() + this.getLevel().random.nextInt(i))); } this.broadcastEvent(1); } @Override - public boolean setDelayToMin(int delay) { + public boolean onEventTriggered(int delay) { return false; } @Override - public Entity getCachedEntity() { + public Entity getOrCreateDisplayEntity() { return tile.getRenderEntity(); } @@ -174,13 +174,13 @@ public void setNextSpawnData(WeightedSpawnerEntity p_184993_1_) {} @OnlyIn(Dist.CLIENT) @Override - public double getMobRotation() { + public double getSpin() { return mobRotation; } @OnlyIn(Dist.CLIENT) @Override - public double getPrevMobRotation() { + public double getoSpin() { return prevMobRotation; } @@ -191,30 +191,30 @@ public Entity getSpawnerEntity() { } @Override - public boolean isActivated() { + public boolean isNearPlayer() { return tile.isActive(); } @Override public void broadcastEvent(int id) { - tile.getWorld().addBlockEvent(tile.getPos(), Blocks.SPAWNER, id, 0); + tile.getLevel().blockEvent(tile.getBlockPos(), Blocks.SPAWNER, id, 0); } @Override - public World getWorld() { - return tile.getWorld(); + public World getLevel() { + return tile.getLevel(); } @Override - public BlockPos getSpawnerPosition() { - return tile.getPos(); + public BlockPos getPos() { + return tile.getBlockPos(); } @Override - public CompoundNBT write(CompoundNBT compound) { + public CompoundNBT save(CompoundNBT compound) { return compound; } @Override - public void read(CompoundNBT nbt) {} + public void load(CompoundNBT nbt) {} } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCelestialManipulator.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCelestialManipulator.java index 7f3f8b397..547143035 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCelestialManipulator.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCelestialManipulator.java @@ -69,24 +69,24 @@ public void tick() { if (weatherToggleRunning.get()) { timer++; - if (world.isRemote) { + if (level.isClientSide) { updateWeatherEffects(); } else { if (timer >= 230) { timer = 0; weatherToggleRunning.set(false); - world.getWorldInfo().setRaining(rain); - ((IServerWorldInfo)world.getWorldInfo()).setThundering(storm); - int time = (10 * 60 * 20) + world.rand.nextInt(20 * 60 * 20); - ((IServerWorldInfo)world.getWorldInfo()).setRainTime(rain ? time : 0); - ((IServerWorldInfo)world.getWorldInfo()).setClearWeatherTime(rain ? 0 : time); + level.getLevelData().setRaining(rain); + ((IServerWorldInfo)level.getLevelData()).setThundering(storm); + int time = (10 * 60 * 20) + level.random.nextInt(20 * 60 * 20); + ((IServerWorldInfo)level.getLevelData()).setRainTime(rain ? time : 0); + ((IServerWorldInfo)level.getLevelData()).setClearWeatherTime(rain ? 0 : time); } } } else if (timeWarpRunning.get()) { timer++; - if (world.isRemote) { + if (level.isClientSide) { updateSunEffect(); } // else { @@ -99,11 +99,11 @@ else if (timeWarpRunning.get()) { int extracted = opStorage.extractEnergy(16000, true); int ticks = extracted / 320; opStorage.extractEnergy(ticks * 320, false); - ((IServerWorldInfo)world.getWorldInfo()).setGameTime(world.getGameTime() + ticks); //ToDo test time adjustment. May need world.setDayTime(); + ((IServerWorldInfo)level.getLevelData()).setGameTime(level.getGameTime() + ticks); //ToDo test time adjustment. May need world.setDayTime(); } - if (!world.isRemote) { - if (world.getGameTime() >= targetTime) { + if (!level.isClientSide) { + if (level.getGameTime() >= targetTime) { stopTimeWarp(); } } @@ -115,14 +115,14 @@ else if (timeWarpStopping.get()) { } timer--; - if (timer <= 0 && !world.isRemote) { + if (timer <= 0 && !level.isClientSide) { timeWarpStopping.set(false); } - if (world.isRemote && timer >= 0) { + if (level.isClientSide && timer >= 0) { updateSunEffect(); } - else if (world.isRemote) { + else if (level.isClientSide) { if (effects != null) { effects.clear(); } @@ -135,13 +135,13 @@ else if (world.isRemote) { else if (active.get()) { active.set(false); } - else if (world.isRemote) { + else if (level.isClientSide) { standbyParticleEffect(); } } public void toggleWeather(boolean rain, boolean storm) { - if (world.isRemote || active.get()) { + if (level.isClientSide || active.get()) { return; } @@ -202,83 +202,83 @@ public void handleInteract(String action, PlayerEntity player) { weatherMode.set(false); return; case "STOP_RAIN": - if (!world.isRaining()) { + if (!level.isRaining()) { sendMessage(new TranslationTextComponent("msg.de.notRaining.txt"), player); return; } if (opStorage.getEnergyStored() < 256000) { - sendMessage(new TranslationTextComponent("msg.de.insufficientPower.txt").appendString(" (256000RF)"), player); + sendMessage(new TranslationTextComponent("msg.de.insufficientPower.txt").append(" (256000RF)"), player); return; } opStorage.modifyEnergyStored(-256000); toggleWeather(false, false); - LogHelper.info("Stopped rain! Cause: " + pos); + LogHelper.info("Stopped rain! Cause: " + worldPosition); return; case "START_RAIN": - if (world.isRaining()) { + if (level.isRaining()) { sendMessage(new TranslationTextComponent("msg.de.alreadyRaining.txt"), player); return; } if (opStorage.getEnergyStored() < 256000) { - sendMessage(new TranslationTextComponent("msg.de.insufficientPower.txt").appendString(" (256000RF)"), player); + sendMessage(new TranslationTextComponent("msg.de.insufficientPower.txt").append(" (256000RF)"), player); return; } opStorage.modifyEnergyStored(-256000); toggleWeather(true, false); - LogHelper.info("Started rain! Cause: " + pos); + LogHelper.info("Started rain! Cause: " + worldPosition); return; case "START_STORM": - if (world.isRaining() && world.isThundering()) { + if (level.isRaining() && level.isThundering()) { sendMessage(new TranslationTextComponent("msg.de.alreadyStorm.txt"), player); return; } if (opStorage.getEnergyStored() < 384000) { - sendMessage(new TranslationTextComponent("msg.de.insufficientPower.txt").appendString(" (384000RF)"), player); + sendMessage(new TranslationTextComponent("msg.de.insufficientPower.txt").append(" (384000RF)"), player); return; } opStorage.modifyEnergyStored(-384000); toggleWeather(true, true); - LogHelper.info("Started storm! Cause: " + pos); + LogHelper.info("Started storm! Cause: " + worldPosition); return; case "SUN_RISE": - startTimeWarp(world.getGameTime() + calculateTimeTill(0)); - LogHelper.info("Set time to sunrise! Cause: " + pos); + startTimeWarp(level.getGameTime() + calculateTimeTill(0)); + LogHelper.info("Set time to sunrise! Cause: " + worldPosition); break; case "MID_DAY": - startTimeWarp(world.getGameTime() + calculateTimeTill(5900)); - LogHelper.info("Set time to midday! Cause: " + pos); + startTimeWarp(level.getGameTime() + calculateTimeTill(5900)); + LogHelper.info("Set time to midday! Cause: " + worldPosition); break; case "SUN_SET": - startTimeWarp(world.getGameTime() + calculateTimeTill(12000)); - LogHelper.info("Set time to sunset! Cause: " + pos); + startTimeWarp(level.getGameTime() + calculateTimeTill(12000)); + LogHelper.info("Set time to sunset! Cause: " + worldPosition); break; case "MOON_RISE": - startTimeWarp(world.getGameTime() + calculateTimeTill(13000)); - LogHelper.info("Set time to moonrise! Cause: " + pos); + startTimeWarp(level.getGameTime() + calculateTimeTill(13000)); + LogHelper.info("Set time to moonrise! Cause: " + worldPosition); break; case "MIDNIGHT": - startTimeWarp(world.getGameTime() + calculateTimeTill(17900)); - LogHelper.info("Set time to midnight! Cause: " + pos); + startTimeWarp(level.getGameTime() + calculateTimeTill(17900)); + LogHelper.info("Set time to midnight! Cause: " + worldPosition); break; case "MOON_SET": - startTimeWarp(world.getGameTime() + calculateTimeTill(22500)); - LogHelper.info("Set time to moonset! Cause: " + pos); + startTimeWarp(level.getGameTime() + calculateTimeTill(22500)); + LogHelper.info("Set time to moonset! Cause: " + worldPosition); break; case "SKIP_24": - startTimeWarp(world.getGameTime() + 24000); - LogHelper.info("Skipped one day! Cause: " + pos); + startTimeWarp(level.getGameTime() + 24000); + LogHelper.info("Skipped one day! Cause: " + worldPosition); break; } } private void sendMessage(ITextComponent message, PlayerEntity player) { if (player != null) { - player.sendMessage(message, Util.DUMMY_UUID); + player.sendMessage(message, Util.NIL_UUID); } } private int calculateTimeTill(int time) { - int currentTime = (int) (world.getGameTime() % 24000); + int currentTime = (int) (level.getGameTime() % 24000); return currentTime > time ? (24000 - (currentTime - time)) : time - currentTime; } @@ -298,14 +298,14 @@ public void startWeatherEffect() { effects = new LinkedList<>(); for (int i = 0; i < 8; i++) { - effects.add(new EffectTrackerCelestialManipulator(world, Vec3D.getCenter(pos).add(0, 1.5, 0), Vec3D.getCenter(pos).add(0, 1.5, 0))); + effects.add(new EffectTrackerCelestialManipulator(level, Vec3D.getCenter(worldPosition).add(0, 1.5, 0), Vec3D.getCenter(worldPosition).add(0, 1.5, 0))); } - Vec3D vec = Vec3D.getCenter(pos.add(0, 1, 0)); - sound = new CelestialModifierSound(DESounds.electricBuzz, pos); + Vec3D vec = Vec3D.getCenter(worldPosition.offset(0, 1, 0)); + sound = new CelestialModifierSound(DESounds.electricBuzz, worldPosition); sound.updateSound(vec, 0.01F, 0.5F); - Minecraft.getInstance().getSoundHandler().play(sound); - world.playSound(vec.x, vec.y, vec.z, DESounds.fusionComplete, SoundCategory.BLOCKS, getSoundVolume(), 0.5F, false); + Minecraft.getInstance().getSoundManager().play(sound); + level.playLocalSound(vec.x, vec.y, vec.z, DESounds.fusionComplete, SoundCategory.BLOCKS, getSoundVolume(), 0.5F, false); } @OnlyIn(Dist.CLIENT) @@ -334,13 +334,13 @@ public void updateWeatherEffects() { secondaryExpand = ascPos * ascPos * 100D; } - Vec3D effectFocus = Vec3D.getCenter(pos).add(0, height, 0); + Vec3D effectFocus = Vec3D.getCenter(worldPosition).add(0, height, 0); if (timer == riseEnd) { - world.playSound(effectFocus.x, effectFocus.y, effectFocus.z, DESounds.fusionComplete, SoundCategory.BLOCKS, 1F, 1F, false); + level.playLocalSound(effectFocus.x, effectFocus.y, effectFocus.z, DESounds.fusionComplete, SoundCategory.BLOCKS, 1F, 1F, false); } else if (timer == ascendStart) { - world.playSound(effectFocus.x, effectFocus.y, effectFocus.z, DESounds.fusionComplete, SoundCategory.BLOCKS, 1F, 2F, false); + level.playLocalSound(effectFocus.x, effectFocus.y, effectFocus.z, DESounds.fusionComplete, SoundCategory.BLOCKS, 1F, 2F, false); for (int i = 0; i < 100; i++) { try { // SubParticle particle = new SubParticle(world, effects.get(world.rand.nextInt(effects.size())).pos); @@ -380,7 +380,7 @@ else if (timer == ascendStart) { } if (timer >= 220) { - world.playSound(effectFocus.x, effectFocus.y, effectFocus.z, DESounds.boom, SoundCategory.BLOCKS, DEOldConfig.disableLoudCelestialManipulator ? 1 : 100, 1F, false); + level.playLocalSound(effectFocus.x, effectFocus.y, effectFocus.z, DESounds.boom, SoundCategory.BLOCKS, DEOldConfig.disableLoudCelestialManipulator ? 1 : 100, 1F, false); timer = 0; weatherToggleRunning.set(false); effects.clear(); @@ -401,7 +401,7 @@ public void startSunEffect() { effects = new LinkedList<>(); for (int i = 0; i < 12; i++) { - effects.add(new EffectTrackerCelestialManipulator(world, Vec3D.getCenter(pos).add(0, 1.5, 0), Vec3D.getCenter(pos).add(0, 1.5, 0))); + effects.add(new EffectTrackerCelestialManipulator(level, Vec3D.getCenter(worldPosition).add(0, 1.5, 0), Vec3D.getCenter(worldPosition).add(0, 1.5, 0))); } effects.get(0).red = 1F; @@ -414,9 +414,9 @@ public void startSunEffect() { effects.get(1).blue = 1F; effects.get(1).renderBolts = false; - sound = new CelestialModifierSound(DESounds.sunDialEffect, pos); - sound.updateSound(Vec3D.getCenter(pos), getSoundVolume(), 0.5F); - Minecraft.getInstance().getSoundHandler().play(sound); + sound = new CelestialModifierSound(DESounds.sunDialEffect, worldPosition); + sound.updateSound(Vec3D.getCenter(worldPosition), getSoundVolume(), 0.5F); + Minecraft.getInstance().getSoundManager().play(sound); } @OnlyIn(Dist.CLIENT) @@ -437,7 +437,7 @@ public void updateSunEffect() { double depProg = Math.min(timer / 100F, 1D); EffectTrackerCelestialManipulator effect; - Vec3D focus = Vec3D.getCenter(pos).add(0, 5.5 * depProg, 0); + Vec3D focus = Vec3D.getCenter(worldPosition).add(0, 5.5 * depProg, 0); sound.updateSound(focus, (float) depProg, 0.5F + (float) depProg); if (timer % 4 == 0) { @@ -448,7 +448,7 @@ public void updateSunEffect() { } - double rotation = (world.getGameTime() % 24000) / 24000D; + double rotation = (level.getGameTime() % 24000) / 24000D; double offset; double offsetX; double offsetY; @@ -551,7 +551,7 @@ public AxisAlignedBB getRenderBoundingBox() { @Override public void onNeighborChange(BlockPos blockChanged) { - if (world.isBlockPowered(pos)) { + if (level.hasNeighborSignal(worldPosition)) { if (!redstoneSignal.get()) { redstoneSignal.set(true); handleInteract(ACTIONS[rsMode.get()], null); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileChaosCrystal.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileChaosCrystal.java index ed8daaeee..b8bb0736e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileChaosCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileChaosCrystal.java @@ -46,15 +46,15 @@ public TileChaosCrystal() { @Override public void tick() { if (validatePlacement) { - posLock.set(pos.toLong()); - dimLock.set(world.getDimensionKey().getLocation().toString()); + posLock.set(worldPosition.asLong()); + dimLock.set(level.dimension().location().toString()); for (int i = 1; i <= 2; i++) { - world.setBlockState(pos.up(i), DEContent.chaos_crystal_part.getDefaultState()); - world.setBlockState(pos.down(i), DEContent.chaos_crystal_part.getDefaultState()); - TileEntity tile = world.getTileEntity(pos.up(i)); - if (tile instanceof TileChaosCrystal) ((TileChaosCrystal) tile).parentPos.set(pos); - tile = world.getTileEntity(pos.down(i)); - if (tile instanceof TileChaosCrystal) ((TileChaosCrystal) tile).parentPos.set(pos); + level.setBlockAndUpdate(worldPosition.above(i), DEContent.chaos_crystal_part.defaultBlockState()); + level.setBlockAndUpdate(worldPosition.below(i), DEContent.chaos_crystal_part.defaultBlockState()); + TileEntity tile = level.getBlockEntity(worldPosition.above(i)); + if (tile instanceof TileChaosCrystal) ((TileChaosCrystal) tile).parentPos.set(worldPosition); + tile = level.getBlockEntity(worldPosition.below(i)); + if (tile instanceof TileChaosCrystal) ((TileChaosCrystal) tile).parentPos.set(worldPosition); } validatePlacement = false; } @@ -62,49 +62,49 @@ public void tick() { if (getBlockState().getBlock() != DEContent.chaos_crystal) return; tick++; - if (tick > 1 && !world.isRemote && hasBeenMoved()) { - world.removeBlock(pos, false); + if (tick > 1 && !level.isClientSide && hasBeenMoved()) { + level.removeBlock(worldPosition, false); } - if (!world.isRemote && soundTimer-- <= 0) { - soundTimer = 3600 + world.rand.nextInt(1200); + if (!level.isClientSide && soundTimer-- <= 0) { + soundTimer = 3600 + level.random.nextInt(1200); // world.playSound(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, DESounds.chaosChamberAmbient, SoundCategory.AMBIENT, 1F, world.rand.nextFloat() * 0.4F + 0.8F, false); - BCoreNetwork.sendSound(world, pos, DESounds.chaosChamberAmbient, SoundCategory.AMBIENT, 1.5F, world.rand.nextFloat() * 0.4F + 0.8F, false); + BCoreNetwork.sendSound(level, worldPosition, DESounds.chaosChamberAmbient, SoundCategory.AMBIENT, 1.5F, level.random.nextFloat() * 0.4F + 0.8F, false); } - if (!world.isRemote && world instanceof ServerWorld && guardianDefeated.get() && world.rand.nextInt(50) == 0) { - int x = 5 - world.rand.nextInt(11); - int z = 5 - world.rand.nextInt(11); - LightningBoltEntity bolt = new LightningBoltEntity(EntityType.LIGHTNING_BOLT, world); - bolt.setPosition(pos.getX() + x, world.getHeight(Heightmap.Type.WORLD_SURFACE, pos).getY(), pos.getZ() + z); - bolt.ignoreFrustumCheck = true; - world.addEntity(bolt); + if (!level.isClientSide && level instanceof ServerWorld && guardianDefeated.get() && level.random.nextInt(50) == 0) { + int x = 5 - level.random.nextInt(11); + int z = 5 - level.random.nextInt(11); + LightningBoltEntity bolt = new LightningBoltEntity(EntityType.LIGHTNING_BOLT, level); + bolt.setPos(worldPosition.getX() + x, level.getHeightmapPos(Heightmap.Type.WORLD_SURFACE, worldPosition).getY(), worldPosition.getZ() + z); + bolt.noCulling = true; + level.addFreshEntity(bolt); } } private boolean removing = false; public void detonate(Entity entity) { - if (world.isRemote) { + if (level.isClientSide) { return; } if (parentPos.get().getY() != -1) { - TileEntity tile = world.getTileEntity(parentPos.get()); + TileEntity tile = level.getBlockEntity(parentPos.get()); if (tile instanceof TileChaosCrystal && !((TileChaosCrystal) tile).removing) { ((TileChaosCrystal) tile).detonate(entity); - world.destroyBlock(tile.getPos(), true, entity); + level.destroyBlock(tile.getBlockPos(), true, entity); } return; } removing = true; - world.setBlockState(pos.up(), Blocks.AIR.getDefaultState()); - world.setBlockState(pos.up(2), Blocks.AIR.getDefaultState()); - world.setBlockState(pos.down(), Blocks.AIR.getDefaultState()); - world.setBlockState(pos.down(2), Blocks.AIR.getDefaultState()); + level.setBlockAndUpdate(worldPosition.above(), Blocks.AIR.defaultBlockState()); + level.setBlockAndUpdate(worldPosition.above(2), Blocks.AIR.defaultBlockState()); + level.setBlockAndUpdate(worldPosition.below(), Blocks.AIR.defaultBlockState()); + level.setBlockAndUpdate(worldPosition.below(2), Blocks.AIR.defaultBlockState()); if (DEOldConfig.disableChaosIslandExplosion || hasBeenMoved()) { - world.removeBlock(pos, false); + level.removeBlock(worldPosition, false); } else { // EntityChaosImplosion vortex = new EntityChaosImplosion(world); TODO Implosion // vortex.setPosition(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5); @@ -136,12 +136,12 @@ public void onValidPlacement() { } private boolean hasBeenMoved() { - return posLock.get() != pos.toLong() || !dimLock.get().equals(world.getDimensionKey().getLocation().toString()); + return posLock.get() != worldPosition.asLong() || !dimLock.get().equals(level.dimension().location().toString()); } @Override public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(pos, pos.add(1, 1, 1)).grow(3, 3, 3); + return new AxisAlignedBB(worldPosition, worldPosition.offset(1, 1, 1)).inflate(3, 3, 3); } @Override @@ -153,7 +153,7 @@ public boolean canBreak() { if (parentPos.get().getY() == -1) { return guardianDefeated.get(); } - TileEntity tile = world.getTileEntity(parentPos.get()); + TileEntity tile = level.getBlockEntity(parentPos.get()); if (tile instanceof TileChaosCrystal) { return ((TileChaosCrystal) tile).guardianDefeated.get(); } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCoreStructure.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCoreStructure.java index 1e693c989..1a20aafd5 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCoreStructure.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCoreStructure.java @@ -41,11 +41,11 @@ public boolean isStructureValid() { // @Override public IMultiBlockPart getController() { - TileEntity tile = world.getTileEntity(getCorePos()); + TileEntity tile = level.getBlockEntity(getCorePos()); if (tile instanceof IMultiBlockPart) { return (IMultiBlockPart) tile; } - else if (!world.isRemote) { + else if (!level.isClientSide) { revert(); } @@ -73,7 +73,7 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand ((TileEnergyCoreStabilizer) controller).onBlockActivated(state, player, handIn, hit); } else if (controller instanceof TileEnergyCore) { - ((TileEnergyCore) controller).onStructureClicked(world, pos, state, player); + ((TileEnergyCore) controller).onStructureClicked(level, worldPosition, state, player); } else if (controller instanceof TileEnergyPylon) { ((TileEnergyPylon) controller).invertIO(); @@ -83,24 +83,24 @@ else if (controller instanceof TileEnergyPylon) { } public void revert() { - if (world.isRemote) return; + if (level.isClientSide) return; Block block = ForgeRegistries.BLOCKS.getValue(new ResourceLocation(blockName.get())); if (block != Blocks.AIR) { - world.setBlockState(pos, block.getDefaultState()); + level.setBlockAndUpdate(worldPosition, block.defaultBlockState()); } else { - world.removeBlock(pos, false); + level.removeBlock(worldPosition, false); } } public void setController(IMultiBlockPart controller) { - coreOffset.set(new Vec3I(pos.subtract(((TileEntity) controller).getPos()))); + coreOffset.set(new Vec3I(worldPosition.subtract(((TileEntity) controller).getBlockPos()))); // DelayedTask.run(100, () -> dataManager.forceSync()); // ProcessHandler.addProcess(new DelayedTask.Task(10, () -> dataManager.forceSync())); } private BlockPos getCorePos() { - return pos.add(-coreOffset.get().x, -coreOffset.get().y, -coreOffset.get().z); + return worldPosition.offset(-coreOffset.get().x, -coreOffset.get().y, -coreOffset.get().z); } // @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCraftingCore.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCraftingCore.java index eb9b06e54..8e16f6754 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCraftingCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCraftingCore.java @@ -93,7 +93,7 @@ public Container createMenu(int currentWindowIndex, PlayerInventory playerInvent public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { updateInjectors(); if (player instanceof ServerPlayerEntity) { - NetworkHooks.openGui((ServerPlayerEntity) player, this, pos); + NetworkHooks.openGui((ServerPlayerEntity) player, this, worldPosition); } return true; } @@ -106,7 +106,7 @@ public void tick() { //LogHelper.info("- " + isCrafting); // if (craftingStage.get() > 0) craftingStage.set((short) 0); - if (world.isRemote) { + if (level.isClientSide) { updateEffects(); return; } @@ -114,7 +114,7 @@ public void tick() { //Update Crafting if (isCrafting.get()) { if (DEEventHandler.serverTicks % 10 == 0) { - world.notifyNeighborsOfStateChange(pos, getBlockState().getBlock()); + level.updateNeighborsAt(worldPosition, getBlockState().getBlock()); } for (ICraftingInjector pedestal : pedestals) { @@ -124,7 +124,7 @@ public void tick() { } } - if (activeRecipe == null || !activeRecipe.matches(this, world) || !activeRecipe.canCraft(this, world)/* || !activeRecipe.canCraft(this, world, pos).equals("true")*/) { + if (activeRecipe == null || !activeRecipe.matches(this, level) || !activeRecipe.canCraft(this, level)/* || !activeRecipe.canCraft(this, world, pos).equals("true")*/) { invalidateCrafting(); return; } @@ -168,7 +168,7 @@ public void tick() { private void doCraft() { //This shouldn't be needed but cant hurt. - if (!activeRecipe.matches(this, world)) { + if (!activeRecipe.matches(this, level)) { return; } @@ -201,7 +201,7 @@ private void doCraft() { } ItemStack catalyst = getStackInCore(0); - ItemStack result = activeRecipe.getCraftingResult(this); + ItemStack result = activeRecipe.assemble(this); catalyst.shrink(catCount); setStackInCore(0, catalyst); @@ -209,13 +209,13 @@ private void doCraft() { } public void attemptStartCrafting() { - if (world.isRemote) { + if (level.isClientSide) { return; } updateInjectors(); - activeRecipe = world.getRecipeManager().getRecipe(DraconicAPI.FUSION_RECIPE_TYPE, this, world).orElse(null); + activeRecipe = level.getRecipeManager().getRecipeFor(DraconicAPI.FUSION_RECIPE_TYPE, this, level).orElse(null); - if (activeRecipe != null && activeRecipe.canCraft(this, world)) { + if (activeRecipe != null && activeRecipe.canCraft(this, level)) { int minTier = 3; for (ICraftingInjector pedestal : pedestals) { if (!pedestal.getStackInPedestal().isEmpty() && pedestal.getPedestalTier() < minTier) { @@ -230,14 +230,14 @@ public void attemptStartCrafting() { } private void invalidateCrafting() { - if (world.isRemote) { + if (level.isClientSide) { return; } isCrafting.set(false); activeRecipe = null; craftingStage.zero(); pedestals.clear(); - world.notifyNeighborsOfStateChange(pos, getBlockState().getBlock()); + level.updateNeighborsAt(worldPosition, getBlockState().getBlock()); } /** @@ -253,28 +253,28 @@ public void updateInjectors() { List positions = new ArrayList(); //X - positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-range, -1, -1), pos.add(range, 1, 1)).map(BlockPos::new).collect(Collectors.toList()))); + positions.addAll(Lists.newArrayList(BlockPos.betweenClosedStream(worldPosition.offset(-range, -1, -1), worldPosition.offset(range, 1, 1)).map(BlockPos::new).collect(Collectors.toList()))); //Y - positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-1, -range, -1), pos.add(1, range, 1)).map(BlockPos::new).collect(Collectors.toList()))); + positions.addAll(Lists.newArrayList(BlockPos.betweenClosedStream(worldPosition.offset(-1, -range, -1), worldPosition.offset(1, range, 1)).map(BlockPos::new).collect(Collectors.toList()))); //Z - positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-1, -1, -range), pos.add(1, 1, range)).map(BlockPos::new).collect(Collectors.toList()))); + positions.addAll(Lists.newArrayList(BlockPos.betweenClosedStream(worldPosition.offset(-1, -1, -range), worldPosition.offset(1, 1, range)).map(BlockPos::new).collect(Collectors.toList()))); for (BlockPos checkPos : positions) { - TileEntity tile = world.getTileEntity(checkPos); + TileEntity tile = level.getBlockEntity(checkPos); if (tile instanceof ICraftingInjector) { ICraftingInjector pedestal = (ICraftingInjector) tile; - Vec3D dirVec = new Vec3D(tile.getPos()).subtract(pos); - double dist = Utils.getDistanceAtoB(new Vec3D(tile.getPos()), new Vec3D(pos)); + Vec3D dirVec = new Vec3D(tile.getBlockPos()).subtract(worldPosition); + double dist = Utils.getDistanceAtoB(new Vec3D(tile.getBlockPos()), new Vec3D(worldPosition)); - if (dist >= 2 && Direction.getFacingFromVector((int) dirVec.x, (int) dirVec.y, (int) dirVec.z) == pedestal.getDirection().getOpposite() && pedestal.setCraftingInventory(this)) { - BlockPos pPos = tile.getPos(); + if (dist >= 2 && Direction.getNearest((int) dirVec.x, (int) dirVec.y, (int) dirVec.z) == pedestal.getDirection().getOpposite() && pedestal.setCraftingInventory(this)) { + BlockPos pPos = tile.getBlockPos(); Direction facing = pedestal.getDirection(); - List checkList = Lists.newArrayList(BlockPos.getAllInBoxMutable(pPos.offset(facing), pPos.offset(facing, FacingUtils.distanceInDirection(pPos, pos, facing) - 1))); + List checkList = Lists.newArrayList(BlockPos.betweenClosed(pPos.relative(facing), pPos.relative(facing, FacingUtils.distanceInDirection(pPos, worldPosition, facing) - 1))); boolean obstructed = false; for (BlockPos bp : checkList) { - if (!world.isAirBlock(bp) && (world.getBlockState(bp).isSolid() || world.getTileEntity(bp) instanceof ICraftingInjector)) { + if (!level.isEmptyBlock(bp) && (level.getBlockState(bp).canOcclude() || level.getBlockEntity(bp) instanceof ICraftingInjector)) { obstructed = true; break; } @@ -314,6 +314,11 @@ public int getCraftingStage() { return craftingStage.get(); } + @Override + public BlockPos getCorePos() { + return getBlockPos(); + } + //endregion // //region Inventory @@ -373,28 +378,28 @@ public void initializeEffects() { List positions = new ArrayList(); //X - positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-range, -1, -1), pos.add(range, 1, 1)).map(BlockPos::new).collect(Collectors.toList()))); + positions.addAll(Lists.newArrayList(BlockPos.betweenClosedStream(worldPosition.offset(-range, -1, -1), worldPosition.offset(range, 1, 1)).map(BlockPos::new).collect(Collectors.toList()))); //Y - positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-1, -range, -1), pos.add(1, range, 1)).map(BlockPos::new).collect(Collectors.toList()))); + positions.addAll(Lists.newArrayList(BlockPos.betweenClosedStream(worldPosition.offset(-1, -range, -1), worldPosition.offset(1, range, 1)).map(BlockPos::new).collect(Collectors.toList()))); //Z - positions.addAll(Lists.newArrayList(BlockPos.getAllInBox(pos.add(-1, -1, -range), pos.add(1, 1, range)).map(BlockPos::new).collect(Collectors.toList()))); + positions.addAll(Lists.newArrayList(BlockPos.betweenClosedStream(worldPosition.offset(-1, -1, -range), worldPosition.offset(1, 1, range)).map(BlockPos::new).collect(Collectors.toList()))); for (BlockPos checkPos : positions) { - TileEntity tile = world.getTileEntity(checkPos); + TileEntity tile = level.getBlockEntity(checkPos); if (tile instanceof ICraftingInjector) { ICraftingInjector pedestal = (ICraftingInjector) tile; - Vec3D dirVec = new Vec3D(tile.getPos()).subtract(pos); - double dist = Utils.getDistanceAtoB(new Vec3D(tile.getPos()), new Vec3D(pos)); + Vec3D dirVec = new Vec3D(tile.getBlockPos()).subtract(worldPosition); + double dist = Utils.getDistanceAtoB(new Vec3D(tile.getBlockPos()), new Vec3D(worldPosition)); - if (dist >= 2 && Direction.getFacingFromVector((int) dirVec.x, (int) dirVec.y, (int) dirVec.z) == pedestal.getDirection().getOpposite() && pedestal.setCraftingInventory(this)) { - BlockPos pPos = tile.getPos(); + if (dist >= 2 && Direction.getNearest((int) dirVec.x, (int) dirVec.y, (int) dirVec.z) == pedestal.getDirection().getOpposite() && pedestal.setCraftingInventory(this)) { + BlockPos pPos = tile.getBlockPos(); Direction facing = pedestal.getDirection(); - List checkList = Lists.newArrayList(BlockPos.getAllInBoxMutable(pPos.offset(facing), pPos.offset(facing, FacingUtils.distanceInDirection(pPos, pos, facing) - 1))); + List checkList = Lists.newArrayList(BlockPos.betweenClosed(pPos.relative(facing), pPos.relative(facing, FacingUtils.distanceInDirection(pPos, worldPosition, facing) - 1))); boolean obstructed = false; for (BlockPos bp : checkList) { - if (!world.isAirBlock(bp) && (world.getBlockState(bp).isSolid() || world.getTileEntity(bp) instanceof ICraftingInjector)) { + if (!level.isEmptyBlock(bp) && (level.getBlockState(bp).canOcclude() || level.getBlockEntity(bp) instanceof ICraftingInjector)) { obstructed = true; break; } @@ -410,7 +415,7 @@ public void initializeEffects() { } // activeRecipe = RecipeManager.FUSION_REGISTRY.findRecipe(this, world, pos); - activeRecipe = world.getRecipeManager().getRecipe(DraconicAPI.FUSION_RECIPE_TYPE, this, world).orElse(null); + activeRecipe = level.getRecipeManager().getRecipeFor(DraconicAPI.FUSION_RECIPE_TYPE, this, level).orElse(null); if (activeRecipe == null) { effects = null; @@ -425,9 +430,9 @@ public void initializeEffects() { } pedestal.setCraftingInventory(this); - Vec3D spawn = new Vec3D(((TileEntity) pedestal).getPos()); - spawn.add(0.5 + pedestal.getDirection().getXOffset() * 0.45, 0.5 + pedestal.getDirection().getYOffset() * 0.45, 0.5 + pedestal.getDirection().getZOffset() * 0.45); - effects.add(new EffectTrackerFusionCrafting(world, spawn, new Vec3D(pos), this, activeRecipe.getIngredients().size())); + Vec3D spawn = new Vec3D(((TileEntity) pedestal).getBlockPos()); + spawn.add(0.5 + pedestal.getDirection().getStepX() * 0.45, 0.5 + pedestal.getDirection().getStepY() * 0.45, 0.5 + pedestal.getDirection().getStepZ() * 0.45); + effects.add(new EffectTrackerFusionCrafting(level, spawn, new Vec3D(worldPosition), this, activeRecipe.getIngredients().size())); // BCEffectHandler.effectRenderer.addEffect(ResourceHelperDE.getResource("textures/blocks/fusion_crafting/fusion_particle.png"), new ParticleFusionCrafting(world, spawn, new Vec3D(pos), this)); } } @@ -491,11 +496,11 @@ public void updateEffects() { double offsetY = (xAdditive + zAdditive) * 0.2 * (distFromCore / 1.2); - effect.circlePosition.set(pos.getX() + 0.5 + offsetX, pos.getY() + 0.5 + offsetY, pos.getZ() + 0.5 + offsetZ); + effect.circlePosition.set(worldPosition.getX() + 0.5 + offsetX, worldPosition.getY() + 0.5 + offsetY, worldPosition.getZ() + 0.5 + offsetZ); index++; } - SoundHandler soundManager = Minecraft.getInstance().getSoundHandler(); + SoundHandler soundManager = Minecraft.getInstance().getSoundManager(); if (!allLocked && flag) { soundManager.play(new FusionRotationSound(this)); } @@ -508,7 +513,7 @@ public void updateEffects() { // BCEffectHandler.spawnFXDirect(DEParticles.DE_SHEET, new EffectTrackerFusionCrafting.SubParticle(world, new Vec3D(pos).add(0.5, 0.5, 0.5))); } - world.playSound(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, DESounds.fusionComplete, SoundCategory.BLOCKS, 2F, 1F, false); + level.playLocalSound(worldPosition.getX() + 0.5, worldPosition.getY() + 0.5, worldPosition.getZ() + 0.5, DESounds.fusionComplete, SoundCategory.BLOCKS, 2F, 1F, false); effects = null; } } @@ -544,7 +549,7 @@ public void renderEffects(float partialTicks) { @Override public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(pos.add(-16, -16, -16), pos.add(17, 17, 17)); + return new AxisAlignedBB(worldPosition.offset(-16, -16, -16), worldPosition.offset(17, 17, 17)); } // // @Override @@ -561,8 +566,8 @@ public int getComparatorOutput() { } else if (craftingStage.get() > 0) { return (int) Math.max(1, ((craftingStage.get() / 2000D) * 15D)); } else { - IFusionRecipe recipe = world.getRecipeManager().getRecipe(DraconicAPI.FUSION_RECIPE_TYPE, this, world).orElse(null); - if (recipe != null && recipe.canCraft(this, world)) { + IFusionRecipe recipe = level.getRecipeManager().getRecipeFor(DraconicAPI.FUSION_RECIPE_TYPE, this, level).orElse(null); + if (recipe != null && recipe.canCraft(this, level)) { return 1; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCraftingInjector.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCraftingInjector.java index 2e567d822..685520d76 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCraftingInjector.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCraftingInjector.java @@ -155,18 +155,18 @@ public boolean setCraftingInventory(IFusionInventory craftingInventory) { currentCraftingInventory = null; return false; } - if (validateCraftingInventory() && !world.isRemote) { + if (validateCraftingInventory() && !level.isClientSide) { return false; } currentCraftingInventory = craftingInventory; - lastCorePos.set(new Vec3I(((TileEntity) craftingInventory).getPos())); + lastCorePos.set(new Vec3I(((TileEntity) craftingInventory).getBlockPos())); chargeSpeedModifier = 300 - (getPedestalTier() * 80); return true; } @Override public Direction getDirection() { - return getBlockState().get(CraftingInjector.FACING); + return getBlockState().getValue(CraftingInjector.FACING); } @Override @@ -194,11 +194,11 @@ public void onCraft() { //endregion public void slotContentsChanged(int index) { - markDirty(); + setChanged(); - TileEntity tile = world.getTileEntity(lastCorePos.get().getPos()); + TileEntity tile = level.getBlockEntity(lastCorePos.get().getPos()); if (tile instanceof IFusionCraftingInventory) { - world.notifyNeighborsOfStateChange(tile.getPos(), tile.getBlockState().getBlock()); + level.updateNeighborsAt(tile.getBlockPos(), tile.getBlockState().getBlock()); } updateBlock(); @@ -233,6 +233,6 @@ public void readExtraNBT(CompoundNBT compound) { @Override public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(pos.add(-1, -1, -1), pos.add(1, 1, 1)); + return new AxisAlignedBB(worldPosition.offset(-1, -1, -1), worldPosition.offset(1, 1, 1)); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCreativeOPCapacitor.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCreativeOPCapacitor.java index d506c50de..18e0d2aa3 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCreativeOPCapacitor.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileCreativeOPCapacitor.java @@ -87,17 +87,17 @@ public long extractOP(long maxExtract, boolean simulate) { @Override public void tick() { super.tick(); - if (!world.isRemote) { + if (!level.isClientSide) { for (Direction direction : Direction.values()) { - sendEnergyTo(world, pos, powerRate.get(), direction); + sendEnergyTo(level, worldPosition, powerRate.get(), direction); } } } @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (!world.isRemote) { - if (player.isSneaking()) { + if (!level.isClientSide) { + if (player.isShiftKeyDown()) { powerRate.divide(10); } else { if (powerRate.get() == Long.MAX_VALUE) { diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDislocatorPedestal.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDislocatorPedestal.java index 72a6bdda1..f02888c6b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDislocatorPedestal.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDislocatorPedestal.java @@ -42,42 +42,42 @@ public TileDislocatorPedestal() { } public boolean onBlockActivated(PlayerEntity player) { - if (world.isRemote) { + if (level.isClientSide) { return true; } ItemStack stack = itemHandler.getStackInSlot(0); - if (!player.isSneaking() && !stack.isEmpty()) { + if (!player.isShiftKeyDown() && !stack.isEmpty()) { if (stack.getItem() instanceof Dislocator) { - TargetPos location = ((Dislocator) stack.getItem()).getTargetPos(stack, world); + TargetPos location = ((Dislocator) stack.getItem()).getTargetPos(stack, level); if (location == null) { if (dislocator_p2p.isValid(stack)) { if (dislocator_p2p.isPlayer(stack)) { - ChatHelper.sendIndexed(player, new TranslationTextComponent("info.de.bound_dislocator.cant_find_player").mergeStyle(TextFormatting.RED), 34); + ChatHelper.sendIndexed(player, new TranslationTextComponent("info.de.bound_dislocator.cant_find_player").withStyle(TextFormatting.RED), 34); } else { - ChatHelper.sendIndexed(player, new TranslationTextComponent("info.de.bound_dislocator.cant_find_player").mergeStyle(TextFormatting.RED), 34); + ChatHelper.sendIndexed(player, new TranslationTextComponent("info.de.bound_dislocator.cant_find_player").withStyle(TextFormatting.RED), 34); } } return true; } if (dislocator_p2p.isValid(stack)) { - location.setYaw(player.rotationYaw); - location.setPitch(player.rotationPitch); + location.setYaw(player.yRot); + location.setPitch(player.xRot); } - boolean silenced = world.getBlockState(pos.down()).getBlock().getTags().contains(WOOL_TAG); + boolean silenced = level.getBlockState(worldPosition.below()).getBlock().getTags().contains(WOOL_TAG); if (!silenced) { - BCoreNetwork.sendSound(player.world, player.getPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, player.world.rand.nextFloat() * 0.1F + 0.9F, false); + BCoreNetwork.sendSound(player.level, player.blockPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, player.level.random.nextFloat() * 0.1F + 0.9F, false); } - dislocator_p2p.notifyArriving(stack, player.world, player); + dislocator_p2p.notifyArriving(stack, player.level, player); location.teleport(player); if (!silenced) { - BCoreNetwork.sendSound(player.world, player.getPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, player.world.rand.nextFloat() * 0.1F + 0.9F, false); + BCoreNetwork.sendSound(player.level, player.blockPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, player.level.random.nextFloat() * 0.1F + 0.9F, false); } } @@ -88,12 +88,12 @@ public boolean onBlockActivated(PlayerEntity player) { //Transfer the dislocator that was in the pedestal to the players inventory if (dislocator_p2p.isValid(stack) && !dislocator_p2p.isPlayer(stack) && itemHandler.getStackInSlot(0).isEmpty()) { - DislocatorLinkHandler.updateLink(world, stack, player); + DislocatorLinkHandler.updateLink(level, stack, player); } checkIn(); - markDirty(); + setChanged(); updateBlock(); return true; @@ -104,7 +104,7 @@ public BlockPos getArrivalPos(String linkID) { if (!dislocator_p2p.isValid(itemHandler.getStackInSlot(0)) || !dislocator_p2p.getLinkID(itemHandler.getStackInSlot(0)).equals(linkID)) { return null; } - return getPos(); + return getBlockPos(); } @Override @@ -115,7 +115,7 @@ public void entityArriving(Entity entity) { public void checkIn() { ItemStack stack = itemHandler.getStackInSlot(0); if (dislocator_p2p.isValid(stack) && !dislocator_p2p.isPlayer(stack)) { - DislocatorLinkHandler.updateLink(world, stack, pos, world.getDimensionKey()); + DislocatorLinkHandler.updateLink(level, stack, worldPosition, level.dimension()); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDislocatorReceptacle.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDislocatorReceptacle.java index fbe82ae5b..1020d8283 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDislocatorReceptacle.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDislocatorReceptacle.java @@ -100,7 +100,7 @@ public void tick() { updateHidden(false); updateCrystalLogic(); - if (world.isRemote && !active.get()) { + if (level.isClientSide && !active.get()) { hiddenTime = 5; } @@ -113,7 +113,7 @@ public void tick() { if (frameMoving) { if (active.get()) { - finishMove(pos, new HashSet<>()); + finishMove(worldPosition, new HashSet<>()); } frameMoving = false; checkIn(); @@ -127,10 +127,10 @@ public void tick() { return; } - TargetPos location = ((Dislocator) stack.getItem()).getTargetPos(stack, world); + TargetPos location = ((Dislocator) stack.getItem()).getTargetPos(stack, level); if (dislocator_p2p.isValid(stack) && location != null) { - location.setYaw(entity.rotationYaw); - location.setPitch(entity.rotationPitch); + location.setYaw(entity.yRot); + location.setPitch(entity.xRot); } if (location == null) { @@ -140,10 +140,10 @@ public void tick() { else { if (entity instanceof PlayerEntity) { if (dislocator_p2p.isPlayer(stack)) { - ChatHelper.sendMessage((PlayerEntity) entity, new TranslationTextComponent("info.de.bound_dislocator.cant_find_player").mergeStyle(TextFormatting.RED)); + ChatHelper.sendMessage((PlayerEntity) entity, new TranslationTextComponent("info.de.bound_dislocator.cant_find_player").withStyle(TextFormatting.RED)); } else { - ChatHelper.sendMessage((PlayerEntity) entity, new TranslationTextComponent("info.de.bound_dislocator.cant_find_target").mergeStyle(TextFormatting.RED)); + ChatHelper.sendMessage((PlayerEntity) entity, new TranslationTextComponent("info.de.bound_dislocator.cant_find_target").withStyle(TextFormatting.RED)); } } } @@ -152,10 +152,10 @@ public void tick() { return; } - dislocator_p2p.notifyArriving(stack, world, entity); - BCoreNetwork.sendSound(entity.world, entity.getPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, entity.world.rand.nextFloat() * 0.1F + 0.9F, false); + dislocator_p2p.notifyArriving(stack, level, entity); + BCoreNetwork.sendSound(entity.level, entity.blockPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, entity.level.random.nextFloat() * 0.1F + 0.9F, false); location.teleport(entity); - BCoreNetwork.sendSound(entity.world, entity.getPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, entity.world.rand.nextFloat() * 0.1F + 0.9F, false); + BCoreNetwork.sendSound(entity.level, entity.blockPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, entity.level.random.nextFloat() * 0.1F + 0.9F, false); } try { @@ -203,16 +203,16 @@ private void updateCrystalLogic() { fxHandler.update(); boolean boundCrystals = active.get() && isBound.get() && linkedCrystal.get().y != -999; - if (world.isRemote && boundCrystals && remoteCrystalTier.isDirty(true)) { + if (level.isClientSide && boundCrystals && remoteCrystalTier.isDirty(true)) { fxHandler.reloadConnections(); } - if (!world.isRemote && boundCrystals) { + if (!level.isClientSide && boundCrystals) { if (DEEventHandler.serverTicks % 10 == 0) { TileEntity remoteTile = getRemoteReceptacle(); ICrystalLink remote = getRemoteCrystal(); if (remoteTile != null && remote instanceof IENetEffectTile) { - int i = remote.getLinks().indexOf(remoteTile.getPos()); + int i = remote.getLinks().indexOf(remoteTile.getBlockPos()); List rates = ((IENetEffectTile) remote).getFlowRates(); if (i >= 0 && i < rates.size()) { linkedFlowRate.set(rates.get(i)); @@ -229,7 +229,7 @@ private void updateCrystalLogic() { dataManager.forceSync(linkedFlowRate); } } - else if (!world.isRemote) { + else if (!level.isClientSide) { linkedFlowRate.zero(); } } @@ -243,18 +243,18 @@ public void setHidden() { } private void updateHidden(boolean setHidden) { - if (world.isRemote && hiddenTime > 0) { + if (level.isClientSide && hiddenTime > 0) { hiddenTime--; if (hiddenTime == 0 || setHidden) { long time = System.nanoTime(); - for (BlockPos checkPos : BlockPos.getAllInBoxMutable(pos.add(-1, -1, -1), pos.add(1, 1, 1))) { - TileEntity tile = world.getTileEntity(checkPos); + for (BlockPos checkPos : BlockPos.betweenClosed(worldPosition.offset(-1, -1, -1), worldPosition.offset(1, 1, 1))) { + TileEntity tile = level.getBlockEntity(checkPos); if (tile instanceof TilePortal) { - BlockPos spawn = spawnPos.get().y == -999 ? pos : getSpawnPos(); + BlockPos spawn = spawnPos.get().y == -999 ? worldPosition : getSpawnPos(); TilePortal tPortal = (TilePortal) tile; - if (tPortal.getMasterPos().equals(pos) && tPortal.updateTime != time) { + if (tPortal.getMasterPos().equals(worldPosition) && tPortal.updateTime != time) { if (!setHidden) { - world.playSound(spawn.getX() + 0.5, spawn.getY() + 0.5, spawn.getZ() + 0.5, SoundEvents.ENTITY_FIREWORK_ROCKET_LARGE_BLAST, SoundCategory.BLOCKS, 2, 0.5F + (world.rand.nextFloat() * 0.1F), false); + level.playLocalSound(spawn.getX() + 0.5, spawn.getY() + 0.5, spawn.getZ() + 0.5, SoundEvents.FIREWORK_ROCKET_LARGE_BLAST, SoundCategory.BLOCKS, 2, 0.5F + (level.random.nextFloat() * 0.1F), false); } ((TilePortal) tile).propRenderUpdate(time, !setHidden); } @@ -267,7 +267,7 @@ private void updateHidden(boolean setHidden) { //region Activation & Inventory public boolean onBlockActivated(PlayerEntity player) { - if (world.isRemote) { + if (level.isClientSide) { return !ltRedstone.get(); } @@ -279,7 +279,7 @@ public void onInventoryChange(int index) { ItemStack prev = itemHandler.getListenerPrevStack(); if (dislocator_p2p.isValid(prev) && !dislocator_p2p.isPlayer(prev)) { - DislocatorLinkHandler.removeLink(world, prev); + DislocatorLinkHandler.removeLink(level, prev); } isBound.set(false); @@ -316,7 +316,7 @@ else if (!itemHandler.getStackInSlot(0).isEmpty()) { private void checkIn() { ItemStack stack = itemHandler.getStackInSlot(0); if (dislocator_p2p.isValid(stack) && !dislocator_p2p.isPlayer(stack)) { - DislocatorLinkHandler.updateLink(world, stack, pos, world.getDimensionKey()); + DislocatorLinkHandler.updateLink(level, stack, worldPosition, level.dimension()); isBound.set(true); } else { @@ -334,21 +334,21 @@ private void checkIn() { //region Teleport Handling public void handleEntityTeleport(Entity entity) { - if (world.isRemote || teleportQ.contains(entity) || coolDownMap.containsKey(entity.getEntityId())) { + if (level.isClientSide || teleportQ.contains(entity) || coolDownMap.containsKey(entity.getId())) { return; } //TODO in 1.13 use entity.portalCooldown - if (arrivalsMap.containsKey(entity.getEntityId())) { - if (entity instanceof PlayerEntity && arrivalsMap.get(entity.getEntityId()) < 10) { + if (arrivalsMap.containsKey(entity.getId())) { + if (entity instanceof PlayerEntity && arrivalsMap.get(entity.getId()) < 10) { //TODO Packet Stuff // new PacketCustom("DEPCChannel", 1).writePos(pos).sendToPlayer((PlayerEntity) entity); } - arrivalsMap.put(entity.getEntityId(), 10); + arrivalsMap.put(entity.getId(), 10); return; } - coolDownMap.put(entity.getEntityId(), 10); + coolDownMap.put(entity.getId(), 10); teleportQ.add(entity); } @@ -357,19 +357,19 @@ public void handleEntityTeleport(Entity entity) { //region MultiBlock public void deactivate() { - if (!world.isRemote) { + if (!level.isClientSide) { active.set(false); } - BlockState state = world.getBlockState(pos); + BlockState state = level.getBlockState(worldPosition); if (state.getBlock() == DEContent.dislocator_receptacle) { - world.setBlockState(pos, state.with(DislocatorReceptacle.ACTIVE, false)); + level.setBlockAndUpdate(worldPosition, state.setValue(DislocatorReceptacle.ACTIVE, false)); } - for (BlockPos checkPos : BlockPos.getAllInBoxMutable(pos.add(-1, -1, -1), pos.add(1, 1, 1))) { - TileEntity tile = world.getTileEntity(checkPos); - if (tile instanceof TilePortal && ((TilePortal) tile).getMasterPos().equals(pos)) { - world.removeBlock(tile.getPos(), false); + for (BlockPos checkPos : BlockPos.betweenClosed(worldPosition.offset(-1, -1, -1), worldPosition.offset(1, 1, 1))) { + TileEntity tile = level.getBlockEntity(checkPos); + if (tile instanceof TilePortal && ((TilePortal) tile).getMasterPos().equals(worldPosition)) { + level.removeBlock(tile.getBlockPos(), false); } } updateBlock(); @@ -379,7 +379,7 @@ public boolean attemptIgnition() { // newOffsets.set(true); ItemStack stack = itemHandler.getStackInSlot(0); - if (!(stack.getItem() instanceof Dislocator) || ((Dislocator) stack.getItem()).getTargetPos(stack, world) == null) { + if (!(stack.getItem() instanceof Dislocator) || ((Dislocator) stack.getItem()).getTargetPos(stack, level) == null) { if (!dislocator_p2p.isValid(stack)) { return false; } @@ -390,19 +390,19 @@ public boolean attemptIgnition() { igniting = true; for (BlockPos portalBlock : portalConfiguration.value()) { - world.setBlockState(portalBlock, DEContent.portal.getDefaultState().with(Portal.AXIS, portalConfiguration.key())); - TileEntity tile = world.getTileEntity(portalBlock); + level.setBlockAndUpdate(portalBlock, DEContent.portal.defaultBlockState().setValue(Portal.AXIS, portalConfiguration.key())); + TileEntity tile = level.getBlockEntity(portalBlock); if (tile instanceof TilePortal) { - ((TilePortal) tile).setMasterPos(pos); + ((TilePortal) tile).setMasterPos(worldPosition); } } active.set(true); activeAxis.set(portalConfiguration.key()); - BlockState state = world.getBlockState(pos); + BlockState state = level.getBlockState(worldPosition); if (state.getBlock() == DEContent.dislocator_receptacle) { - world.setBlockState(pos, state.with(DislocatorReceptacle.ACTIVE, true)); + level.setBlockAndUpdate(worldPosition, state.setValue(DislocatorReceptacle.ACTIVE, true)); } updateBlock(); @@ -429,7 +429,7 @@ private void updateSpawnBlock(List rawBlocks) { for (int level : levels) { List blocks = levelMap.get(level); for (BlockPos pos : blocks) { - if (world.isAirBlock(pos.up()) || world.getBlockState(pos.up()).getBlock() == DEContent.portal) { + if (this.level.isEmptyBlock(pos.above()) || this.level.getBlockState(pos.above()).getBlock() == DEContent.portal) { foundValid.add(pos); } } @@ -518,7 +518,7 @@ private void updateLinkBlock(List rawBlocks) { private Pair> scanConfigurations() { List scanned = new ArrayList(); for (BlockPos offset : FacingUtils.AROUND_X) { - List portalBlocks = scanFromOrigin(pos.add(offset), Axis.X, scanned); + List portalBlocks = scanFromOrigin(worldPosition.offset(offset), Axis.X, scanned); if (portalBlocks != null) { return new Pair>(Axis.X, portalBlocks); } @@ -526,7 +526,7 @@ private Pair> scanConfigurations() { scanned = new ArrayList(); for (BlockPos offset : FacingUtils.AROUND_Y) { - List portalBlocks = scanFromOrigin(pos.add(offset), Axis.Y, scanned); + List portalBlocks = scanFromOrigin(worldPosition.offset(offset), Axis.Y, scanned); if (portalBlocks != null) { return new Pair>(Axis.Y, portalBlocks); } @@ -534,7 +534,7 @@ private Pair> scanConfigurations() { scanned = new ArrayList(); for (BlockPos offset : FacingUtils.AROUND_Z) { - List portalBlocks = scanFromOrigin(pos.add(offset), Axis.Z, scanned); + List portalBlocks = scanFromOrigin(worldPosition.offset(offset), Axis.Z, scanned); if (portalBlocks != null) { return new Pair>(Axis.Z, portalBlocks); } @@ -544,7 +544,7 @@ private Pair> scanConfigurations() { } private List scanFromOrigin(BlockPos scanOrigin, Axis scanAxis, List alreadyScanned) { - if (!world.isAirBlock(scanOrigin) || alreadyScanned.contains(scanOrigin)) { + if (!level.isEmptyBlock(scanOrigin) || alreadyScanned.contains(scanOrigin)) { return null; } @@ -564,11 +564,11 @@ private boolean scanPortal(BlockPos scanPos, BlockPos origin, Axis scanAxis, Lis scanList.add(scanPos); for (Direction facing : FacingUtils.getFacingsAroundAxis(scanAxis)) { - BlockPos nextPos = scanPos.offset(facing); + BlockPos nextPos = scanPos.relative(facing); if (scanList.contains(nextPos) || isFrame(nextPos)) { continue; } - else if (world.isAirBlock(nextPos)) { + else if (level.isEmptyBlock(nextPos)) { if (!scanPortal(nextPos, origin, scanAxis, scanList, blackList)) { return false; } @@ -582,7 +582,7 @@ else if (world.isAirBlock(nextPos)) { } private boolean isFrame(BlockPos pos) { - BlockState state = world.getBlockState(pos); + BlockState state = level.getBlockState(pos); return state.getBlock() == DEContent.infused_obsidian || state.getBlock() == DEContent.dislocator_receptacle; } @@ -601,25 +601,25 @@ public BlockPos getArrivalPos(String linkID) { @Override public void entityArriving(Entity entity) { - Entity rootEntity = entity.getLowestRidingEntity(); + Entity rootEntity = entity.getRootVehicle(); PassengerHelper passengerHelper = new PassengerHelper(rootEntity); - passengerHelper.forEach(e -> arrivalsMap.put(e.getEntityId(), 10)); + passengerHelper.forEach(e -> arrivalsMap.put(e.getId(), 10)); } public void setSpawnPos(BlockPos spawnPos) { - this.spawnPos.get().set(pos.subtract(spawnPos)); + this.spawnPos.get().set(worldPosition.subtract(spawnPos)); } protected BlockPos getSpawnPos() { - return pos.subtract(spawnPos.get().getPos()); + return worldPosition.subtract(spawnPos.get().getPos()); } public void setLinkPos(BlockPos spawnPos) { - crystalLinkPos.get().set(pos.subtract(spawnPos)); + crystalLinkPos.get().set(worldPosition.subtract(spawnPos)); } protected BlockPos getLinkPos() { - return pos.subtract(crystalLinkPos.get().getPos()); + return worldPosition.subtract(crystalLinkPos.get().getPos()); } // @Override @@ -704,12 +704,12 @@ public void forEach(Consumer action) { public void finishMove(BlockPos pos, HashSet blocks) { for (Direction facing : FacingUtils.getFacingsAroundAxis(activeAxis.get())) { - BlockPos np = pos.offset(facing); + BlockPos np = pos.relative(facing); if (blocks.contains(np)) continue; - BlockState state = world.getBlockState(np); + BlockState state = level.getBlockState(np); if (state.getBlock() == DEContent.portal) { - TileEntity tile = world.getTileEntity(np); + TileEntity tile = level.getBlockEntity(np); if (tile instanceof TilePortal) { ((TilePortal) tile).frameMoving = false; } @@ -724,11 +724,11 @@ public void finishMove(BlockPos pos, HashSet blocks) { //region F!@#$%^ Lasers through portals code for Morph protected void setCrystalPos(BlockPos crystalPos) { - linkedCrystal.get().set(pos.subtract(crystalPos)); + linkedCrystal.get().set(worldPosition.subtract(crystalPos)); } protected BlockPos getCrystalPos() { - return pos.subtract(linkedCrystal.get().getPos()); + return worldPosition.subtract(linkedCrystal.get().getPos()); } private BlockPos remotePosCache = null; @@ -751,10 +751,10 @@ private TileDislocatorReceptacle getRemoteReceptacle(boolean skipRemoteCheck) { if (remotePosCache == null) { ItemStack stack = itemHandler.getStackInSlot(0); if (dislocator_p2p.isValid(stack) && !dislocator_p2p.isPlayer(stack)) { - TileEntity tile = DislocatorLinkHandler.getTargetTile(world, stack); + TileEntity tile = DislocatorLinkHandler.getTargetTile(level, stack); if (tile instanceof TileDislocatorReceptacle) { - remotePosCache = tile.getPos(); - remoteDimCache = tile.getWorld().getDimensionKey(); + remotePosCache = tile.getBlockPos(); + remoteDimCache = tile.getLevel().dimension(); } else { invalidLinkTime = 100; @@ -766,9 +766,9 @@ private TileDislocatorReceptacle getRemoteReceptacle(boolean skipRemoteCheck) { } } - MinecraftServer server = world.getServer(); + MinecraftServer server = level.getServer(); if (server != null) { - TileEntity tile = server.getWorld(remoteDimCache).getTileEntity(remotePosCache); + TileEntity tile = server.getLevel(remoteDimCache).getBlockEntity(remotePosCache); if (tile instanceof TileDislocatorReceptacle) { if (skipRemoteCheck) { return (TileDislocatorReceptacle) tile; @@ -787,9 +787,9 @@ private TileDislocatorReceptacle getRemoteReceptacle(boolean skipRemoteCheck) { private ICrystalLink getRemoteCrystal() { TileDislocatorReceptacle tile = getRemoteReceptacle(); if (tile != null) { - MinecraftServer server = world.getServer(); + MinecraftServer server = level.getServer(); if (server != null && tile.linkedCrystal.get().y != -999) { - TileEntity crystal = server.getWorld(remoteDimCache).getTileEntity(tile.getCrystalPos()); + TileEntity crystal = server.getLevel(remoteDimCache).getBlockEntity(tile.getCrystalPos()); if (crystal instanceof IENetEffectTile) { remoteCrystalTier.set((byte) ((IENetEffectTile) crystal).getTier()); return (ICrystalLink) crystal; @@ -816,7 +816,7 @@ public boolean binderUsed(PlayerEntity player, BlockPos linkTarget, Direction si @Override public boolean createLink(ICrystalLink otherCrystal) { - setCrystalPos(((TileEntity) otherCrystal).getPos()); + setCrystalPos(((TileEntity) otherCrystal).getBlockPos()); return true; } @@ -863,7 +863,7 @@ public void modifyEnergyStored(long energy) { @Override public Vec3D getBeamLinkPos(BlockPos linkTo) { - double dist = FacingUtils.distanceInDirection(pos, linkTo, FacingUtils.getAxisFaces(activeAxis.get())[0]); + double dist = FacingUtils.distanceInDirection(worldPosition, linkTo, FacingUtils.getAxisFaces(activeAxis.get())[0]); Vec3D vec = Vec3D.getCenter(getLinkPos()); Direction facing; @@ -874,7 +874,7 @@ public Vec3D getBeamLinkPos(BlockPos linkTo) { facing = FacingUtils.getAxisFaces(activeAxis.get())[1]; } - vec.add(facing.getXOffset() * 0.35, facing.getYOffset() * 0.35, facing.getZOffset() * 0.35); + vec.add(facing.getStepX() * 0.35, facing.getStepY() * 0.35, facing.getStepZ() * 0.35); return vec; } @@ -923,7 +923,7 @@ public int getTier() { @Override public int getIDHash() { if (!hashCached) { - hashID = pos.hashCode(); + hashID = worldPosition.hashCode(); hashCached = true; } return hashID; diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDissEnchanter.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDissEnchanter.java index e20ad12d3..fa375d908 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDissEnchanter.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDissEnchanter.java @@ -53,7 +53,7 @@ public void receivePacketFromClient(MCDataInput data, ServerPlayerEntity client, return; } - ListNBT list = input.getEnchantmentTagList(); + ListNBT list = input.getEnchantmentTags(); if (list.isEmpty()) { return; } @@ -64,7 +64,7 @@ public void receivePacketFromClient(MCDataInput data, ServerPlayerEntity client, CompoundNBT compound = list.getCompound(i); int id = compound.getShort("id"); int lvl = compound.getShort("lvl"); - Enchantment e = Enchantment.getEnchantmentByID(id); + Enchantment e = Enchantment.byId(id); if (e == null || id != targetId) { continue; @@ -72,13 +72,13 @@ public void receivePacketFromClient(MCDataInput data, ServerPlayerEntity client, int cost = (int) ((((double) lvl / (double) e.getMaxLevel()) * 20) * DEOldConfig.disenchnaterCostMultiplyer); - if (!client.abilities.isCreativeMode && cost > client.experienceLevel) { - client.sendMessage(new TranslationTextComponent("chat.dissEnchanter.notEnoughLevels.msg", cost).mergeStyle(TextFormatting.RED), Util.DUMMY_UUID); + if (!client.abilities.instabuild && cost > client.experienceLevel) { + client.sendMessage(new TranslationTextComponent("chat.dissEnchanter.notEnoughLevels.msg", cost).withStyle(TextFormatting.RED), Util.NIL_UUID); return; } - if (!client.abilities.isCreativeMode) { - client.addExperienceLevel(-cost); + if (!client.abilities.instabuild) { + client.giveExperienceLevels(-cost); } CompoundNBT stackCompound = input.getTag(); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDraconiumChest.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDraconiumChest.java index ac453377e..cce4a9086 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDraconiumChest.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileDraconiumChest.java @@ -102,7 +102,7 @@ public TileDraconiumChest() { public void tick() { super.tick(); autoFeedRun = false; - if (!world.isRemote) { + if (!level.isClientSide) { updateEnergy(); updateSmelting(); @@ -214,9 +214,9 @@ public ItemStack getSmeltResult(ItemStack stack) { if (stack.isEmpty()) { return ItemStack.EMPTY; } else if (!itemHandler.getStackInSlot(CORE_SLOT).isEmpty()) { - return OreDoublingRegistry.getDoubledSmeltingResult(stack, world); + return OreDoublingRegistry.getDoubledSmeltingResult(stack, level); } - return OreDoublingRegistry.getSmeltingResult(stack, world); + return OreDoublingRegistry.getSmeltingResult(stack, level); } /** @@ -287,7 +287,7 @@ public boolean attemptAutoFeed() { switch (autoSmeltMode.get()) { case FILL: case LOCK: - if (ItemStack.areItemsEqual(stackInFernace, stack) && ItemStack.areItemStackTagsEqual(stackInFernace, stack) && stackInFernace.getCount() < stackInFernace.getMaxStackSize()) { + if (ItemStack.isSame(stackInFernace, stack) && ItemStack.tagMatches(stackInFernace, stack) && stackInFernace.getCount() < stackInFernace.getMaxStackSize()) { int count = Math.min(stack.getCount(), stackInFernace.getMaxStackSize() - stackInFernace.getCount()); stackInFernace.grow(count); stack.shrink(count); @@ -299,7 +299,7 @@ public boolean attemptAutoFeed() { itemHandler.setStackInSlot(f, stack.copy()); stack = ItemStack.EMPTY; stacksInserted = true; - } else if (ItemStack.areItemsEqual(stackInFernace, stack) && ItemStack.areItemStackTagsEqual(stackInFernace, stack) && stackInFernace.getCount() < stackInFernace.getMaxStackSize()) { + } else if (ItemStack.isSame(stackInFernace, stack) && ItemStack.tagMatches(stackInFernace, stack) && stackInFernace.getCount() < stackInFernace.getMaxStackSize()) { int count = Math.min(stack.getCount(), stackInFernace.getMaxStackSize() - stackInFernace.getCount()); stackInFernace.grow(count); stack.shrink(count); @@ -334,13 +334,13 @@ public boolean attemptAutoFeed() { //region Interaction public void setAutoSmeltMode(AutoSmeltMode mode) { - if (world.isRemote) { + if (level.isClientSide) { sendPacketToServer(output -> output.writeByte(mode.ordinal()), 0); } } public void setColour(int colour) { - if (world.isRemote) { + if (level.isClientSide) { sendPacketToServer(output -> output.writeInt(colour), 2); } } @@ -371,14 +371,14 @@ public void receivePacketFromClient(MCDataInput data, ServerPlayerEntity client, r.validate(); } ioCacheValid = false; - markDirty(); + setChanged(); scheduleAutoFeed(); validateSmelting(); } } else if (id == 2) { colour.set(data.readInt()); - markDirty(); + setChanged(); } } @@ -395,7 +395,7 @@ protected void writeCraftingToNBT(CompoundNBT compound) { if (!itemstack.isEmpty()) { CompoundNBT nbttagcompound = new CompoundNBT(); nbttagcompound.putByte("Slot", (byte) i); - itemstack.write(nbttagcompound); + itemstack.save(nbttagcompound); nbttaglist.add(nbttagcompound); } } @@ -412,7 +412,7 @@ protected void readCraftingFromNBT(CompoundNBT compound) { CompoundNBT nbttagcompound = nbttaglist.getCompound(i); int j = nbttagcompound.getByte("Slot") & 255; if (j >= 0 && j < craftingStacks.size()) { - craftingStacks.set(j, ItemStack.read(nbttagcompound)); + craftingStacks.set(j, ItemStack.of(nbttagcompound)); } } } @@ -442,7 +442,7 @@ public void setInventoryCraftingSlotContents(int i, @Nonnull ItemStack stack) { stack.setCount(itemHandler.getSlotLimit(i)); } - markDirty(); + setChanged(); } public void onSlotContentsChange(int index) { @@ -547,7 +547,7 @@ private void checkIOCache() { //Iterate over all the directions and regions to assign which slots allow inserting and or extracting from each face for (Direction worldFace : Direction.values()) { - int faceIndex = worldFace.getIndex(); + int faceIndex = worldFace.get3DDataValue(); Direction facing = getRotatedFacing(worldFace); List accessibleSlots = new ArrayList<>(); List insertSlots = new ArrayList<>(); @@ -610,7 +610,7 @@ private Direction getRotatedFacing(Direction worldFacing) { // Direction f = worldFacing; int rotate = facing.get() == Direction.NORTH ? 0 : facing.get() == Direction.EAST ? 1 : facing.get() == Direction.SOUTH ? 2 : 3; for (int i = 0; i < rotate; i++) { - worldFacing = worldFacing.rotateYCCW(); + worldFacing = worldFacing.getCounterClockWise(); } // LogHelper.dev(f + " -> " + worldFacing); return worldFacing; @@ -623,12 +623,12 @@ private Direction getRotatedFacing(Direction worldFacing) { public boolean canInsertItem(int index, ItemStack itemStackIn, Direction direction) { checkIOCache(); - return index < 260 && canInsert[direction.getIndex()][index]; + return index < 260 && canInsert[direction.get3DDataValue()][index]; } public boolean canExtractItem(int index, ItemStack stack, Direction direction) { checkIOCache(); - return index < 260 && canExtract[direction.getIndex()][index]; + return index < 260 && canExtract[direction.get3DDataValue()][index]; } //endregion @@ -636,17 +636,17 @@ public boolean canExtractItem(int index, ItemStack stack, Direction direction) { //region Model Rendering Stuff private void updateModel() { - int xCoord = this.pos.getX(); - int yCoord = this.pos.getY(); - int zCoord = this.pos.getZ(); + int xCoord = this.worldPosition.getX(); + int yCoord = this.worldPosition.getY(); + int zCoord = this.worldPosition.getZ(); ++ticksSinceSync; - if (!world.isRemote && numPlayersUsing.get() != 0 && (ticksSinceSync + xCoord + yCoord + zCoord) % 200 == 0) { + if (!level.isClientSide && numPlayersUsing.get() != 0 && (ticksSinceSync + xCoord + yCoord + zCoord) % 200 == 0) { numPlayersUsing.zero(); - for (PlayerEntity entityplayer : this.world.getEntitiesWithinAABB(PlayerEntity.class, new AxisAlignedBB((double) ((float) xCoord - 5.0F), (double) ((float) yCoord - 5.0F), (double) ((float) zCoord - 5.0F), (double) ((float) (xCoord + 1) + 5.0F), (double) ((float) (yCoord + 1) + 5.0F), (double) ((float) (zCoord + 1) + 5.0F)))) { - if (entityplayer.openContainer instanceof ContainerDraconiumChest) { - TileDraconiumChest tile = ((ContainerDraconiumChest) entityplayer.openContainer).tile; + for (PlayerEntity entityplayer : this.level.getEntitiesOfClass(PlayerEntity.class, new AxisAlignedBB((double) ((float) xCoord - 5.0F), (double) ((float) yCoord - 5.0F), (double) ((float) zCoord - 5.0F), (double) ((float) (xCoord + 1) + 5.0F), (double) ((float) (yCoord + 1) + 5.0F), (double) ((float) (zCoord + 1) + 5.0F)))) { + if (entityplayer.containerMenu instanceof ContainerDraconiumChest) { + TileDraconiumChest tile = ((ContainerDraconiumChest) entityplayer.containerMenu).tile; if (tile == this) { numPlayersUsing.inc(); } @@ -659,7 +659,7 @@ private void updateModel() { if (this.numPlayersUsing.get() > 0 && this.lidAngle == 0.0F) { double d1 = (double) xCoord + 0.5D; double d2 = (double) zCoord + 0.5D; - this.world.playSound((PlayerEntity) null, d1, (double) yCoord + 0.5D, d2, SoundEvents.BLOCK_CHEST_OPEN, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); + this.level.playSound((PlayerEntity) null, d1, (double) yCoord + 0.5D, d2, SoundEvents.CHEST_OPEN, SoundCategory.BLOCKS, 0.5F, this.level.random.nextFloat() * 0.1F + 0.9F); } if (this.numPlayersUsing.get() == 0 && this.lidAngle > 0.0F || this.numPlayersUsing.get() > 0 && this.lidAngle < 1.0F) { @@ -678,7 +678,7 @@ private void updateModel() { if (this.lidAngle < 0.5F && f2 >= 0.5F) { double d3 = (double) xCoord + 0.5D; double d0 = (double) zCoord + 0.5D; - this.world.playSound((PlayerEntity) null, d3, (double) yCoord + 0.5D, d0, SoundEvents.BLOCK_CHEST_CLOSE, SoundCategory.BLOCKS, 0.5F, this.world.rand.nextFloat() * 0.1F + 0.9F); + this.level.playSound((PlayerEntity) null, d3, (double) yCoord + 0.5D, d0, SoundEvents.CHEST_CLOSE, SoundCategory.BLOCKS, 0.5F, this.level.random.nextFloat() * 0.1F + 0.9F); } if (this.lidAngle < 0.0F) { diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyCore.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyCore.java index f2334ae30..d87d4770c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyCore.java @@ -61,7 +61,7 @@ public class TileEnergyCore extends TileBCore implements ITickableTileEntity, IE public static final byte ORIENT_EAST_WEST = 3; public static final Direction[][] STAB_ORIENTATIONS = new Direction[][]{{}, // ORIENT_UNKNOWN - Direction.BY_HORIZONTAL_INDEX, // ORIENT_UP_DOWN //TODO is 'BY_HORIZONTAL_INDEX' correct? + Direction.BY_2D_DATA, // ORIENT_UP_DOWN //TODO is 'BY_HORIZONTAL_INDEX' correct? {Direction.UP, Direction.DOWN, Direction.EAST, Direction.WEST}, // ORIENT_NORTH_SOUTH {Direction.UP, Direction.DOWN, Direction.NORTH, Direction.SOUTH} // ORIENT_EAST_WEST }; @@ -94,7 +94,7 @@ public TileEnergyCore() { } active.addValueListener(active -> { - if (world != null) world.setBlockState(pos, world.getBlockState(pos).with(EnergyCore.ACTIVE, active)); + if (level != null) level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(EnergyCore.ACTIVE, active)); }); } @@ -105,7 +105,7 @@ public int getAccessDistanceSq() { @Override public void tick() { - if (!world.isRemote) { + if (!level.isClientSide) { flowArray[ticksElapsed % 20] = (energy.get() - lastTickEnergy); lastTickEnergy = energy.get(); @@ -134,29 +134,29 @@ public void tick() { super.tick(); - if (ticksElapsed % 20 == 0 && !world.isRemote && transferRate.isDirty(true)) { + if (ticksElapsed % 20 == 0 && !level.isClientSide && transferRate.isDirty(true)) { dataManager.forceSync(transferRate); } - if (world.isRemote && active.get()) { - List players = world.getEntitiesWithinAABB(PlayerEntity.class, new AxisAlignedBB(pos, pos.add(1, 1, 1)).grow(10, 10, 10)); + if (level.isClientSide && active.get()) { + List players = level.getEntitiesOfClass(PlayerEntity.class, new AxisAlignedBB(worldPosition, worldPosition.offset(1, 1, 1)).inflate(10, 10, 10)); for (PlayerEntity player : players) { double dist = Vec3D.getCenter(this).distance(new Vec3D(player)); - double distNext = new Vec3D(player).distance(new Vec3D(pos.getX() + player.getMotion().x + 0.5, pos.getY() + player.getMotion().y - 0.4, pos.getZ() + player.getMotion().z + 0.5)); + double distNext = new Vec3D(player).distance(new Vec3D(worldPosition.getX() + player.getDeltaMovement().x + 0.5, worldPosition.getY() + player.getDeltaMovement().y - 0.4, worldPosition.getZ() + player.getDeltaMovement().z + 0.5)); double threshold = tier.get() > 2 ? tier.get() - 0.5 : tier.get() + 0.5; double boundary = distNext - threshold; double dir = dist - distNext; if (boundary <= 0) { if (dir < 0) { - player.move(MoverType.PLAYER, new Vector3d(-player.getMotion().x * 1.5, -player.getMotion().y * 1.5, -player.getMotion().z * 1.5)); + player.move(MoverType.PLAYER, new Vector3d(-player.getDeltaMovement().x * 1.5, -player.getDeltaMovement().y * 1.5, -player.getDeltaMovement().z * 1.5)); } double multiplier = (threshold - dist) * 0.05; - double xm = ((pos.getX() + 0.5 - player.getPosX()) / distNext) * multiplier; - double ym = ((pos.getY() - 0.4 - player.getPosY()) / distNext) * multiplier; - double zm = ((pos.getZ() + 0.5 - player.getPosZ()) / distNext) * multiplier; + double xm = ((worldPosition.getX() + 0.5 - player.getX()) / distNext) * multiplier; + double ym = ((worldPosition.getY() - 0.4 - player.getY()) / distNext) * multiplier; + double zm = ((worldPosition.getZ() + 0.5 - player.getZ()) / distNext) * multiplier; player.move(MoverType.PLAYER, new Vector3d(-xm, -ym, -zm)); } @@ -175,16 +175,16 @@ public Container createMenu(int currentWindowIndex, PlayerInventory playerInvent } public void onStructureClicked(World world, BlockPos blockClicked, BlockState state, PlayerEntity player) { - if (!world.isRemote) { + if (!world.isClientSide) { validateStructure(); if (player instanceof ServerPlayerEntity) { - NetworkHooks.openGui((ServerPlayerEntity) player, this, pos); + NetworkHooks.openGui((ServerPlayerEntity) player, this, worldPosition); } } } public void activateCore() { - if (world.isRemote || !validateStructure()) { + if (level.isClientSide || !validateStructure()) { return; } @@ -199,7 +199,7 @@ public void activateCore() { } public void deactivateCore() { - if (world.isRemote) { + if (level.isClientSide) { return; } @@ -252,7 +252,7 @@ else if (id == 4) { //Build private void startBuilder(PlayerEntity player) { if (activeBuilder != null && !activeBuilder.isDead()) { - player.sendMessage(new TranslationTextComponent("ecore.de.already_assembling.txt").mergeStyle(RED), Util.DUMMY_UUID); + player.sendMessage(new TranslationTextComponent("ecore.de.already_assembling.txt").withStyle(RED), Util.NIL_UUID); } else { activeBuilder = new EnergyCoreBuilder(this, player); @@ -264,8 +264,8 @@ private void startBuilder(PlayerEntity player) { */ private void updateStabilizers(boolean coreActive) { for (ManagedVec3I offset : stabOffsets) { - BlockPos tilePos = pos.add(-offset.get().x, -offset.get().y, -offset.get().z); - TileEntity tile = world.getTileEntity(tilePos); + BlockPos tilePos = worldPosition.offset(-offset.get().x, -offset.get().y, -offset.get().z); + TileEntity tile = level.getBlockEntity(tilePos); if (tile instanceof TileEnergyCoreStabilizer) { ((TileEnergyCoreStabilizer) tile).isCoreActive.set(coreActive); @@ -312,8 +312,8 @@ public boolean checkStabilizers() { boolean flag = true; if (stabilizersOK.get()) { for (ManagedVec3I offset : stabOffsets) { - BlockPos tilePos = pos.subtract(offset.get().getPos()); - TileEntity tile = world.getTileEntity(tilePos); + BlockPos tilePos = worldPosition.subtract(offset.get().getPos()); + TileEntity tile = level.getBlockEntity(tilePos); if (!(tile instanceof TileEnergyCoreStabilizer) || !((TileEnergyCoreStabilizer) tile).hasCoreLock.get() || ((TileEnergyCoreStabilizer) tile).getCore() != this || !((TileEnergyCoreStabilizer) tile).isStabilizerValid(tier.get(), this)) { flag = false; @@ -338,8 +338,8 @@ public boolean checkStabilizers() { Direction facing = dirs[fIndex]; for (int dist = 0; dist < 16; dist++) { - BlockPos pos1 = pos.add(facing.getXOffset() * dist, facing.getYOffset() * dist, facing.getZOffset() * dist); - TileEntity stabilizer = world.getTileEntity(pos1); + BlockPos pos1 = worldPosition.offset(facing.getStepX() * dist, facing.getStepY() * dist, facing.getStepZ() * dist); + TileEntity stabilizer = level.getBlockEntity(pos1); if (stabilizer instanceof TileEnergyCoreStabilizer && (!((TileEnergyCoreStabilizer) stabilizer).hasCoreLock.get() || ((TileEnergyCoreStabilizer) stabilizer).getCore().equals(this)) && ((TileEnergyCoreStabilizer) stabilizer).isStabilizerValid(tier.get(), this)) { stabsFound.add((TileEnergyCoreStabilizer) stabilizer); break; @@ -349,7 +349,7 @@ public boolean checkStabilizers() { if (stabsFound.size() == 4) { for (TileEnergyCoreStabilizer stab : stabsFound) { - stabOffsets[stabsFound.indexOf(stab)].set(new Vec3I(pos.getX() - stab.getPos().getX(), pos.getY() - stab.getPos().getY(), pos.getZ() - stab.getPos().getZ())); + stabOffsets[stabsFound.indexOf(stab)].set(new Vec3I(worldPosition.getX() - stab.getBlockPos().getX(), worldPosition.getY() - stab.getBlockPos().getY(), worldPosition.getZ() - stab.getBlockPos().getZ())); stab.setCore(this); } stabilizersOK.set(true); @@ -369,8 +369,8 @@ public boolean checkStabilizers() { */ private void releaseStabilizers() { for (ManagedVec3I offset : stabOffsets) { - BlockPos tilePos = pos.add(-offset.get().x, -offset.get().y, -offset.get().z); - TileEntity tile = world.getTileEntity(tilePos); + BlockPos tilePos = worldPosition.offset(-offset.get().x, -offset.get().y, -offset.get().z); + TileEntity tile = level.getBlockEntity(tilePos); if (tile instanceof TileEnergyCoreStabilizer) { ((TileEnergyCoreStabilizer) tile).hasCoreLock.set(false); @@ -386,27 +386,27 @@ private void releaseStabilizers() { //region Energy Transfer public long receiveEnergy(long maxReceive, boolean simulate) { - if (world.isRemote) { + if (level.isClientSide) { return 0; } long energyReceived = Math.min(getExtendedCapacity() - energy.get(), maxReceive); if (!simulate) { energy.add(energyReceived); - markDirty(); + setChanged(); } return energyReceived; } public long extractEnergy(long maxExtract, boolean simulate) { - if (world.isRemote) { + if (level.isClientSide) { return 0; } long energyExtracted = Math.min(energy.get(), maxExtract); if (!simulate) { energy.subtract(energyExtracted); - markDirty(); + setChanged(); } return energyExtracted; } @@ -447,7 +447,7 @@ public AxisAlignedBB getRenderBoundingBox() { @Override @OnlyIn(Dist.CLIENT) - public double getMaxRenderDistanceSquared() { + public double getViewDistance() { return 65536.0D; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyCoreStabilizer.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyCoreStabilizer.java index 01238abe6..ea72ca98d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyCoreStabilizer.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyCoreStabilizer.java @@ -60,7 +60,7 @@ public TileEnergyCoreStabilizer() { @Override public void tick() { super.tick(); - if (world.isRemote && hasCoreLock.get() && isCoreActive.get()) { + if (level.isClientSide && hasCoreLock.get() && isCoreActive.get()) { rotation = ClientEventHandler.elapsedTicks; updateVisual(); if (isValidMultiBlock.get()) { @@ -71,35 +71,35 @@ public void tick() { @OnlyIn(Dist.CLIENT) private void updateVisual() { - Vec3D spawn = new Vec3D(pos); + Vec3D spawn = new Vec3D(worldPosition); spawn.add(0.5, 0.5, 0.5); - double rand = world.rand.nextInt(100) / 12D; + double rand = level.random.nextInt(100) / 12D; double randOffset = rand * (Math.PI * 2D); double offsetX = Math.sin((ClientEventHandler.elapsedTicks / 180D * Math.PI) + randOffset); double offsetY = Math.cos((ClientEventHandler.elapsedTicks / 180D * Math.PI) + randOffset); - if (!isValidMultiBlock.get() || world.rand.nextBoolean()) { + if (!isValidMultiBlock.get() || level.random.nextBoolean()) { double d = isValidMultiBlock.get() ? 1.1 : 0.25; double inset = isValidMultiBlock.get() ? 1 : 0; if (coreDirection.get().getAxis() == Direction.Axis.Z) { - spawn.add(offsetX * d, offsetY * d, (world.rand.nextBoolean() ? -0.38 : 0.38) * inset); + spawn.add(offsetX * d, offsetY * d, (level.random.nextBoolean() ? -0.38 : 0.38) * inset); } else if (coreDirection.get().getAxis() == Direction.Axis.Y) { - spawn.add(offsetX * d, (world.rand.nextBoolean() ? -0.38 : 0.38) * inset, offsetY * d); + spawn.add(offsetX * d, (level.random.nextBoolean() ? -0.38 : 0.38) * inset, offsetY * d); } else if (coreDirection.get().getAxis() == Direction.Axis.X) { - spawn.add((world.rand.nextBoolean() ? -0.38 : 0.38) * inset, offsetY * d, offsetX * d); + spawn.add((level.random.nextBoolean() ? -0.38 : 0.38) * inset, offsetY * d, offsetX * d); } - Vec3D target = new Vec3D(pos).subtract(coreOffset.get().getPos()).add(0.5, 0.5, 0.5); - world.addParticle(new IntParticleType.IntParticleData(DEParticles.energy_core, 1, (int) (randOffset * 100D), isValidMultiBlock.get() ? 1 : 0), spawn.x, spawn.y, spawn.z, target.x, target.y, target.z); + Vec3D target = new Vec3D(worldPosition).subtract(coreOffset.get().getPos()).add(0.5, 0.5, 0.5); + level.addParticle(new IntParticleType.IntParticleData(DEParticles.energy_core, 1, (int) (randOffset * 100D), isValidMultiBlock.get() ? 1 : 0), spawn.x, spawn.y, spawn.z, target.x, target.y, target.z); } else { if (coreDirection.get().getAxis() == Direction.Axis.Z) { - spawn.add(offsetX * 1.2, offsetY * 1.2, world.rand.nextBoolean() ? -0.38 : 0.38); + spawn.add(offsetX * 1.2, offsetY * 1.2, level.random.nextBoolean() ? -0.38 : 0.38); } else if (coreDirection.get().getAxis() == Direction.Axis.Y) { - spawn.add(offsetX * 1.2, world.rand.nextBoolean() ? -0.38 : 0.38, offsetY * 1.2); + spawn.add(offsetX * 1.2, level.random.nextBoolean() ? -0.38 : 0.38, offsetY * 1.2); } else if (coreDirection.get().getAxis() == Direction.Axis.X) { - spawn.add(world.rand.nextBoolean() ? -0.38 : 0.38, offsetY * 1.2, offsetX * 1.2); + spawn.add(level.random.nextBoolean() ? -0.38 : 0.38, offsetY * 1.2, offsetX * 1.2); } - Vec3D target = new Vec3D(pos).add(0.5, 0.5, 0.5); - world.addParticle(new IntParticleType.IntParticleData(DEParticles.energy_core, 0), spawn.x, spawn.y, spawn.z, target.x, target.y, target.z); + Vec3D target = new Vec3D(worldPosition).add(0.5, 0.5, 0.5); + level.addParticle(new IntParticleType.IntParticleData(DEParticles.energy_core, 0), spawn.x, spawn.y, spawn.z, target.x, target.y, target.z); } } // @@ -110,7 +110,7 @@ private void updateVisual() { @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (world.isRemote) return true; + if (level.isClientSide) return true; TileEnergyCore core = getCore(); if (core == null) { @@ -118,9 +118,9 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand } if (core != null) { - core.onStructureClicked(world, pos, state, player); + core.onStructureClicked(level, worldPosition, state, player); } else { - player.sendMessage(new TranslationTextComponent("msg.de.coreNotFound.txt").mergeStyle(TextFormatting.DARK_RED), Util.DUMMY_UUID); + player.sendMessage(new TranslationTextComponent("msg.de.coreNotFound.txt").withStyle(TextFormatting.DARK_RED), Util.NIL_UUID); } return true; } @@ -129,8 +129,8 @@ public boolean isStabilizerValid(int coreTier, TileEnergyCore core) { if (coreTier < 5 && !isValidMultiBlock.get()) { return true; } else if (coreTier >= 5 && isValidMultiBlock.get()) { - BlockPos offset = pos.subtract(core.getPos()); - Direction direction = Direction.getFacingFromVector(offset.getX(), offset.getY(), offset.getZ()).getOpposite(); + BlockPos offset = worldPosition.subtract(core.getBlockPos()); + Direction direction = Direction.getNearest(offset.getX(), offset.getY(), offset.getZ()).getOpposite(); return direction.getAxis() == multiBlockAxis.get(); } return false; @@ -141,14 +141,14 @@ public boolean isStabilizerValid(int coreTier, TileEnergyCore core) { //region MultiBlock public void onPlaced() { - if (world.isRemote || checkAndFormMultiBlock()) { + if (level.isClientSide || checkAndFormMultiBlock()) { return; } for (Direction facing1 : Direction.values()) { - BlockPos search = pos.add(facing1.getXOffset(), facing1.getYOffset(), facing1.getZOffset()); + BlockPos search = worldPosition.offset(facing1.getStepX(), facing1.getStepY(), facing1.getStepZ()); - TileEntity stabilizer = world.getTileEntity(search); + TileEntity stabilizer = level.getBlockEntity(search); if (stabilizer instanceof TileEnergyCoreStabilizer && ((TileEnergyCoreStabilizer) stabilizer).checkAndFormMultiBlock()) { return; @@ -156,8 +156,8 @@ public void onPlaced() { for (Direction facing2 : Direction.values()) { if (facing2 != facing1 && facing2 != facing1.getOpposite()) { - BlockPos s2 = search.add(facing2.getXOffset(), facing2.getYOffset(), facing2.getZOffset()); - stabilizer = world.getTileEntity(s2); + BlockPos s2 = search.offset(facing2.getStepX(), facing2.getStepY(), facing2.getStepZ()); + stabilizer = level.getBlockEntity(s2); if (stabilizer instanceof TileEnergyCoreStabilizer && ((TileEnergyCoreStabilizer) stabilizer).checkAndFormMultiBlock()) { return; @@ -169,7 +169,7 @@ public void onPlaced() { private boolean checkAxisValid(Direction.Axis axis) { for (BlockPos offset : FacingUtils.getAroundAxis(axis)) { - if (!isAvailable(pos.add(offset))) { + if (!isAvailable(worldPosition.offset(offset))) { return false; } } @@ -204,18 +204,18 @@ private boolean checkAndFormMultiBlock() { */ private boolean isAvailable(BlockPos pos) { if (isValidMultiBlock.get()) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = level.getBlockEntity(pos); return tile instanceof TileCoreStructure && ((TileCoreStructure) tile).getController() == this; } - TileEntity stabilizer = world.getTileEntity(pos); + TileEntity stabilizer = level.getBlockEntity(pos); return stabilizer instanceof TileEnergyCoreStabilizer && (!((TileEnergyCoreStabilizer) stabilizer).hasCoreLock.get() || ((TileEnergyCoreStabilizer) stabilizer).getCore() == null || !((TileEnergyCoreStabilizer) stabilizer).getCore().active.get()); } private void buildMultiBlock(Direction.Axis axis) { for (BlockPos offset : FacingUtils.getAroundAxis(axis)) { - world.setBlockState(pos.add(offset), DEContent.energy_core_structure.getDefaultState()); - TileEntity tile = world.getTileEntity(pos.add(offset)); + level.setBlockAndUpdate(worldPosition.offset(offset), DEContent.energy_core_structure.defaultBlockState()); + TileEntity tile = level.getBlockEntity(worldPosition.offset(offset)); if (tile instanceof TileCoreStructure) { ((TileCoreStructure) tile).blockName.set("draconicevolution:energy_core_stabilizer"); @@ -223,14 +223,14 @@ private void buildMultiBlock(Direction.Axis axis) { } } - world.setBlockState(pos, world.getBlockState(pos).with(EnergyCoreStabilizer.LARGE, true)); + level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(EnergyCoreStabilizer.LARGE, true)); isValidMultiBlock.set(true); multiBlockAxis.set(axis); } public void deFormStructure() { - if (world.getBlockState(pos).getBlock() == DEContent.energy_core_stabilizer){ - world.setBlockState(pos, world.getBlockState(pos).with(EnergyCoreStabilizer.LARGE, false)); + if (level.getBlockState(worldPosition).getBlock() == DEContent.energy_core_stabilizer){ + level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(EnergyCoreStabilizer.LARGE, false)); } isValidMultiBlock.set(false); @@ -239,7 +239,7 @@ public void deFormStructure() { } for (BlockPos offset : FacingUtils.getAroundAxis(multiBlockAxis.get())) { - TileEntity tile = world.getTileEntity(pos.add(offset)); + TileEntity tile = level.getBlockEntity(worldPosition.offset(offset)); if (tile instanceof TileCoreStructure) { ((TileCoreStructure) tile).revert(); } @@ -282,7 +282,7 @@ public TileEnergyCore findCore() { for (Direction facing : Direction.values()) { for (int i = 0; i < 16; i++) { - TileEntity tile = world.getTileEntity(pos.add(facing.getXOffset() * i, facing.getYOffset() * i, facing.getZOffset() * i)); + TileEntity tile = level.getBlockEntity(worldPosition.offset(facing.getStepX() * i, facing.getStepY() * i, facing.getStepZ() * i)); if (tile instanceof TileEnergyCore) { TileEnergyCore core = (TileEnergyCore) tile; core.validateStructure(); @@ -299,7 +299,7 @@ public TileEnergyCore findCore() { // public TileEnergyCore getCore() { if (hasCoreLock.get()) { - TileEntity tile = world.getTileEntity(getCorePos()); + TileEntity tile = level.getBlockEntity(getCorePos()); if (tile instanceof TileEnergyCore) { return (TileEnergyCore) tile; } else { @@ -310,20 +310,20 @@ public TileEnergyCore getCore() { } private BlockPos getCorePos() { - return pos.subtract(coreOffset.get().getPos()); + return worldPosition.subtract(coreOffset.get().getPos()); } public void setCore(TileEnergyCore core) { - BlockPos offset = pos.subtract(core.getPos()); + BlockPos offset = worldPosition.subtract(core.getBlockPos()); coreOffset.set(new Vec3I(offset)); hasCoreLock.set(true); - coreDirection.set(Direction.getFacingFromVector(offset.getX(), offset.getY(), offset.getZ()).getOpposite()); + coreDirection.set(Direction.getNearest(offset.getX(), offset.getY(), offset.getZ()).getOpposite()); updateBlock(); } @Override public AxisAlignedBB getRenderBoundingBox() { - return super.getRenderBoundingBox().expand(1, 1, 1); + return super.getRenderBoundingBox().expandTowards(1, 1, 1); } // //endregion diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyPylon.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyPylon.java index 531570863..07fdcbb33 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyPylon.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyPylon.java @@ -134,18 +134,18 @@ public void tick() { updateComparators(); } - if (!world.isRemote && isOutputMode.get()) { + if (!level.isClientSide && isOutputMode.get()) { long extracted = getCore().extractEnergy(sendEnergyToAll(opAdapter.getOPStored(), opAdapter.getOPStored()), false); if (extracted > 0) { particleRate.set((byte) Math.min(20, extracted < 500 ? 1 : extracted / 500)); } } - if (world.isRemote) { + if (level.isClientSide) { spawnParticles(); } - if (!world.isRemote && (particleRate.get() > 1 || (particleRate.get() > 0 && world.rand.nextInt(2) == 0))) { + if (!level.isClientSide && (particleRate.get() > 1 || (particleRate.get() > 0 && level.random.nextInt(2) == 0))) { particleRate.subtract((byte) 2); } } @@ -154,7 +154,7 @@ public void updateComparators() { int cOut = (int) (((double) getExtendedStorage() / getExtendedCapacity()) * 15D); if (cOut != lastCompOverride) { lastCompOverride = cOut; - world.notifyNeighborsOfStateChange(pos, getBlockState().getBlock()); + level.updateNeighborsAt(worldPosition, getBlockState().getBlock()); } } @@ -162,22 +162,22 @@ public void updateComparators() { public void invertIO() { isOutputMode.invert(); - world.setBlockState(pos, world.getBlockState(pos).with(EnergyPylon.OUTPUT, isOutputMode.get())); + level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(EnergyPylon.OUTPUT, isOutputMode.get())); } private TileEnergyCore getCore() { if (hasCoreLock.get()) { - BlockPos corePos = pos.subtract(coreOffset.get().getPos()); - Chunk coreChunk = world.getChunkAt(corePos); + BlockPos corePos = worldPosition.subtract(coreOffset.get().getPos()); + Chunk coreChunk = level.getChunkAt(corePos); - if (!world.isAreaLoaded(corePos, 16)) { + if (!level.isAreaLoaded(corePos, 16)) { core = null; return null; } - TileEntity tileAtPos = coreChunk.getTileEntity(corePos, Chunk.CreateEntityType.CHECK); + TileEntity tileAtPos = coreChunk.getBlockEntity(corePos, Chunk.CreateEntityType.CHECK); if (tileAtPos == null || core == null || tileAtPos != core) { - TileEntity tile = world.getTileEntity(corePos); + TileEntity tile = level.getBlockEntity(corePos); if (tile instanceof TileEnergyCore) { core = (TileEnergyCore) tile; @@ -195,11 +195,11 @@ private List findActiveCores() { int yMod = sphereOnTop.get() ? 18 : -18; int range = 18; - Iterable positions = BlockPos.getAllInBoxMutable(pos.add(-range, -range + yMod, -range), pos.add(range, range + yMod, range)); + Iterable positions = BlockPos.betweenClosed(worldPosition.offset(-range, -range + yMod, -range), worldPosition.offset(range, range + yMod, range)); for (BlockPos blockPos : positions) { - if (world.getBlockState(blockPos).getBlock() == DEContent.energy_core) { - TileEntity tile = world.getTileEntity(blockPos); + if (level.getBlockState(blockPos).getBlock() == DEContent.energy_core) { + TileEntity tile = level.getBlockEntity(blockPos); if (tile instanceof TileEnergyCore && ((TileEnergyCore) tile).active.get()) { list.add(((TileEnergyCore) tile)); } @@ -210,7 +210,7 @@ private List findActiveCores() { } public void selectNextCore() { - if (world.isRemote) { + if (level.isClientSide) { return; } List cores = findActiveCores(); @@ -225,10 +225,10 @@ public void selectNextCore() { } TileEnergyCore selectedCore = cores.get(coreSelection); - coreOffset.set(new Vec3I(pos.subtract(selectedCore.getPos()))); + coreOffset.set(new Vec3I(worldPosition.subtract(selectedCore.getBlockPos()))); core = selectedCore; hasCoreLock.set(true); - world.notifyNeighborsOfStateChange(pos, getBlockState().getBlock()); + level.updateNeighborsAt(worldPosition, getBlockState().getBlock()); coreSelection++; if (hasCoreLock.get()) { @@ -241,26 +241,26 @@ public void selectNextCore() { @Override public boolean validateStructure() { if (!structureValid.get()) { - if (world.getBlockState(pos.add(0, 1, 0)).getBlock() == Blocks.GLASS) { - world.setBlockState(pos.add(0, 1, 0), DEContent.energy_core_structure.getDefaultState()); - TileEntity tile = world.getTileEntity(pos.add(0, 1, 0)); + if (level.getBlockState(worldPosition.offset(0, 1, 0)).getBlock() == Blocks.GLASS) { + level.setBlockAndUpdate(worldPosition.offset(0, 1, 0), DEContent.energy_core_structure.defaultBlockState()); + TileEntity tile = level.getBlockEntity(worldPosition.offset(0, 1, 0)); if (tile instanceof TileCoreStructure) { ((TileCoreStructure) tile).blockName.set("minecraft:glass"); ((TileCoreStructure) tile).setController(this); } sphereOnTop.set(true); - world.setBlockState(pos, world.getBlockState(pos).with(EnergyPylon.FACING, "up")); - } else if (world.getBlockState(pos.add(0, -1, 0)).getBlock() == Blocks.GLASS) { - world.setBlockState(pos.add(0, -1, 0), DEContent.energy_core_structure.getDefaultState()); - TileEntity tile = world.getTileEntity(pos.add(0, -1, 0)); + level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(EnergyPylon.FACING, "up")); + } else if (level.getBlockState(worldPosition.offset(0, -1, 0)).getBlock() == Blocks.GLASS) { + level.setBlockAndUpdate(worldPosition.offset(0, -1, 0), DEContent.energy_core_structure.defaultBlockState()); + TileEntity tile = level.getBlockEntity(worldPosition.offset(0, -1, 0)); if (tile instanceof TileCoreStructure) { ((TileCoreStructure) tile).blockName.set("minecraft:glass"); ((TileCoreStructure) tile).setController(this); } sphereOnTop.set(false); - world.setBlockState(pos, world.getBlockState(pos).with(EnergyPylon.FACING, "down")); + level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(EnergyPylon.FACING, "down")); } else { - world.setBlockState(pos, world.getBlockState(pos).with(EnergyPylon.FACING, "null")); + level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(EnergyPylon.FACING, "null")); return false; } } @@ -272,7 +272,7 @@ public boolean validateStructure() { hasCoreLock.set(false); } - if (hasCoreLock.get() && world.isRemote) { + if (hasCoreLock.get() && level.isClientSide) { drawParticleBeam(); } @@ -281,11 +281,11 @@ public boolean validateStructure() { @Override public boolean isStructureValid() { - return (isGlass(pos.add(0, 1, 0)) || isGlass(pos.add(0, -1, 0))) && (!isGlass(pos.add(0, 1, 0)) || !isGlass(pos.add(0, -1, 0))); + return (isGlass(worldPosition.offset(0, 1, 0)) || isGlass(worldPosition.offset(0, -1, 0))) && (!isGlass(worldPosition.offset(0, 1, 0)) || !isGlass(worldPosition.offset(0, -1, 0))); } private boolean isGlass(BlockPos pos) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = level.getBlockEntity(pos); return tile instanceof TileCoreStructure && ((TileCoreStructure) tile).blockName.get().equals("minecraft:glass"); } @@ -296,9 +296,9 @@ private boolean isGlass(BlockPos pos) { private void drawParticleBeam() { if (getCore() == null) return; - BlockPos thisPos = pos.add(0, sphereOnTop.get() ? 1 : -1, 0); - Vec3D coreVec = Vec3D.getDirectionVec(new Vec3D(thisPos).add(0.5, 0.5, 0.5), new Vec3D(getCore().getPos()).add(0.5, 0.5, 0.5)); - double coreDistance = Utils.getDistanceAtoB(new Vec3D(thisPos).add(0.5, 0.5, 0.5), new Vec3D(getCore().getPos().add(0.5, 0.5, 0.5))); + BlockPos thisPos = worldPosition.offset(0, sphereOnTop.get() ? 1 : -1, 0); + Vec3D coreVec = Vec3D.getDirectionVec(new Vec3D(thisPos).add(0.5, 0.5, 0.5), new Vec3D(getCore().getBlockPos()).add(0.5, 0.5, 0.5)); + double coreDistance = Utils.getDistanceAtoB(new Vec3D(thisPos).add(0.5, 0.5, 0.5), new Vec3D(getCore().getBlockPos().offset(0.5, 0.5, 0.5))); for (int i = 0; i < 100; i++) { double location = i / 100D; @@ -307,18 +307,18 @@ private void drawParticleBeam() { double speed = 0.02F; double offset = 0.2F; - double randX = world.rand.nextDouble() - 0.5D; - double randY = world.rand.nextDouble() - 0.5D; - double randZ = world.rand.nextDouble() - 0.5D; + double randX = level.random.nextDouble() - 0.5D; + double randY = level.random.nextDouble() - 0.5D; + double randZ = level.random.nextDouble() - 0.5D; particlePos.add(randX * offset, randY * offset, randZ * offset); - world.addParticle(new IntParticleType.IntParticleData(DEParticles.line_indicator, 150, 0, 255, 40 + world.rand.nextInt(20)), particlePos.x, particlePos.y, particlePos.z, randX * speed, randY * speed, randZ * speed); + level.addParticle(new IntParticleType.IntParticleData(DEParticles.line_indicator, 150, 0, 255, 40 + level.random.nextInt(20)), particlePos.x, particlePos.y, particlePos.z, randX * speed, randY * speed, randZ * speed); } } @OnlyIn(Dist.CLIENT) private void spawnParticles() { - Random rand = world.rand; + Random rand = level.random; if (getCore() == null || particleRate.get() <= 0) return; if (particleRate.get() > 20) particleRate.set((byte) 20); @@ -330,14 +330,14 @@ private void spawnParticles() { spawn = getParticleSpawn(rand); dest = getParticleDest(rand); // BCEffectHandler.spawnFX(DEParticles.ENERGY_PARTICLE, world, spawn, dest, 0, 200, 255, 200); - world.addParticle(new IntParticleType.IntParticleData(DEParticles.energy, 0, 200, 255, 200), spawn.x, spawn.y, spawn.z, dest.x, dest.y, dest.z); + level.addParticle(new IntParticleType.IntParticleData(DEParticles.energy, 0, 200, 255, 200), spawn.x, spawn.y, spawn.z, dest.x, dest.y, dest.z); } } else if (rand.nextInt(Math.max(1, 10 - particleRate.get())) == 0) { spawn = getParticleSpawn(rand); dest = getParticleDest(rand); // BCEffectHandler.spawnFX(DEParticles.ENERGY_PARTICLE, world, spawn, dest, 0, 200, 255, 200); - world.addParticle(new IntParticleType.IntParticleData(DEParticles.energy, 0, 200, 255, 200), spawn.x, spawn.y, spawn.z, dest.x, dest.y, dest.z); + level.addParticle(new IntParticleType.IntParticleData(DEParticles.energy, 0, 200, 255, 200), spawn.x, spawn.y, spawn.z, dest.x, dest.y, dest.z); } } @@ -345,19 +345,19 @@ private void spawnParticles() { private Vec3D getParticleSpawn(Random random) { if (isOutputMode.get()) { double range = getCore().tier.get(); - return new Vec3D(getCore().getPos()).add((random.nextFloat() - 0.5F) * range, (random.nextFloat() - 0.5F) * range, (random.nextFloat() - 0.5F) * range); + return new Vec3D(getCore().getBlockPos()).add((random.nextFloat() - 0.5F) * range, (random.nextFloat() - 0.5F) * range, (random.nextFloat() - 0.5F) * range); } else { - return sphereOnTop.get() ? new Vec3D(pos).add(0.5, 1.5, 0.5) : new Vec3D(pos).add(0.5, -0.5, 0.5); + return sphereOnTop.get() ? new Vec3D(worldPosition).add(0.5, 1.5, 0.5) : new Vec3D(worldPosition).add(0.5, -0.5, 0.5); } } @OnlyIn(Dist.CLIENT) private Vec3D getParticleDest(Random random) { if (isOutputMode.get()) { - return sphereOnTop.get() ? new Vec3D(pos).add(0.5, 1.5, 0.5) : new Vec3D(pos).add(0.5, -0.5, 0.5); + return sphereOnTop.get() ? new Vec3D(worldPosition).add(0.5, 1.5, 0.5) : new Vec3D(worldPosition).add(0.5, -0.5, 0.5); } else { double range = getCore().tier.get() / 2D; - return new Vec3D(getCore().getPos()).add((random.nextFloat() - 0.5F) * range, (random.nextFloat() - 0.5F) * range, (random.nextFloat() - 0.5F) * range); + return new Vec3D(getCore().getBlockPos()).add((random.nextFloat() - 0.5F) * range, (random.nextFloat() - 0.5F) * range, (random.nextFloat() - 0.5F) * range); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyTransfuser.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyTransfuser.java index 2ecf87ce1..9d8a4437e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyTransfuser.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEnergyTransfuser.java @@ -87,7 +87,7 @@ public TileEnergyTransfuser() { @Override public void tick() { super.tick(); - if (world.isRemote || !isTileEnabled()) { + if (level.isClientSide || !isTileEnabled()) { return; } @@ -143,7 +143,7 @@ public void tick() { @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult trace) { - if (world.isRemote) { + if (level.isClientSide) { return true; } @@ -151,9 +151,9 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand int slot = hit.subHit; if (slot > -1 && slot < 4) { ItemStack stack = itemsCombined.getStackInSlot(slot); - ItemStack heldStack = player.getHeldItem(handIn); + ItemStack heldStack = player.getItemInHand(handIn); if (!stack.isEmpty() && heldStack.isEmpty()) { - player.setHeldItem(handIn, stack); + player.setItemInHand(handIn, stack); itemsCombined.setStackInSlot(slot, ItemStack.EMPTY); return true; } else if (stack.isEmpty() && !heldStack.isEmpty()) { @@ -165,7 +165,7 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand heldStack.shrink(1); } else { itemsCombined.setStackInSlot(slot, heldStack); - player.setHeldItem(handIn, ItemStack.EMPTY); + player.setItemInHand(handIn, ItemStack.EMPTY); } return true; } @@ -173,7 +173,7 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand } if (player instanceof ServerPlayerEntity) { - NetworkHooks.openGui((ServerPlayerEntity) player, this, pos); + NetworkHooks.openGui((ServerPlayerEntity) player, this, worldPosition); } return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEntityDetector.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEntityDetector.java index c50e3296a..a53c53702 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEntityDetector.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileEntityDetector.java @@ -98,7 +98,7 @@ public TileEntityDetector(boolean advanced) { capManager.setManaged("energy", CapabilityOP.OP, opStorage).saveBoth().syncContainer(); entityFilter = new EntityFilter(true, FilterType.values()); - entityFilter.setDirtyHandler(this::markDirty); + entityFilter.setDirtyHandler(this::setChanged); entityFilter.setupServerPacketHandling(() -> createClientBoundPacket(0), packet -> sendPacketToClients(getAccessingPlayers(), packet)); entityFilter.setupClientPacketHandling(() -> createServerBoundPacket(0), packetCustom -> BrandonsCore.proxy.sendToServer(packetCustom)); setClientSidePacketHandler(0, input -> entityFilter.receivePacketFromServer(input)); @@ -113,7 +113,7 @@ public TileEntityDetector(boolean advanced) { public void tick() { super.tick(); - if (world.isRemote) { + if (level.isClientSide) { updateAnimation(); return; } @@ -136,7 +136,7 @@ else if (pulseTimer <= 0) { if (outputStrength.get() > 0 && pulseRsMode.get() && pulseDuration <= 0) { outputStrength.zero(); - world.notifyNeighborsOfStateChange(pos, getBlockState().getBlock()); + level.updateNeighborsAt(worldPosition, getBlockState().getBlock()); } else { pulseDuration--; @@ -147,19 +147,19 @@ else if (pulseTimer <= 0) { private void updateAnimation() { //region Targeting - List entities = entityFilter.filterEntities(world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos, pos.add(1, 1, 1)).grow(range.get(), range.get(), range.get()))); + List entities = entityFilter.filterEntities(level.getEntitiesOfClass(Entity.class, new AxisAlignedBB(worldPosition, worldPosition.offset(1, 1, 1)).inflate(range.get(), range.get(), range.get()))); Entity closest = null; double closestDist = -1; - Vector3d posVec = new Vector3d(pos.getX(), pos.getY(), pos.getZ()); + Vector3d posVec = new Vector3d(worldPosition.getX(), worldPosition.getY(), worldPosition.getZ()); for (Entity entity : entities) { if (closest == null) { closest = entity; - closestDist = entity.getDistanceSq(posVec); + closestDist = entity.distanceToSqr(posVec); } - else if (entity.getDistanceSq(posVec) < closestDist) { + else if (entity.distanceToSqr(posVec) < closestDist) { closest = entity; - closestDist = entity.getDistanceSq(posVec); + closestDist = entity.distanceToSqr(posVec); } } @@ -168,10 +168,10 @@ else if (entity.getDistanceSq(posVec) < closestDist) { if (closest != null) { - double xDist = closest.getPosX() - (double) ((float) getPos().getX() + 0.5F); - double zDist = closest.getPosZ() - (double) ((float) getPos().getZ() + 0.5F); - double yDist = (closest.getPosY() + closest.getEyeHeight()) - (double) ((float) pos.getY() + 0.5F); - double dist = Utils.getDistanceAtoB(Vec3D.getCenter(pos), new Vec3D(closest)); + double xDist = closest.getX() - (double) ((float) getBlockPos().getX() + 0.5F); + double zDist = closest.getZ() - (double) ((float) getBlockPos().getZ() + 0.5F); + double yDist = (closest.getY() + closest.getEyeHeight()) - (double) ((float) worldPosition.getY() + 0.5F); + double dist = Utils.getDistanceAtoB(Vec3D.getCenter(worldPosition), new Vec3D(closest)); float thRot = (float) MathHelper.atan2(zDist, xDist); @@ -217,8 +217,8 @@ else if (yRot - ltyRot < -0.1) { //region Effects - ParticleStarSpark spark = new ParticleStarSpark((ClientWorld)world, Vec3D.getCenter(pos).add((-0.5 + world.rand.nextDouble()) * 0.1, 0.005, (-0.5 + world.rand.nextDouble()) * 0.1)); - spark.setSizeAndRandMotion(0.4F * (world.rand.nextFloat() + 0.1), 0.02D, 0, 0.02D); + ParticleStarSpark spark = new ParticleStarSpark((ClientWorld)level, Vec3D.getCenter(worldPosition).add((-0.5 + level.random.nextDouble()) * 0.1, 0.005, (-0.5 + level.random.nextDouble()) * 0.1)); + spark.setSizeAndRandMotion(0.4F * (level.random.nextFloat() + 0.1), 0.02D, 0, 0.02D); spark.setMaxAge(30, 10); spark.setGravity(0.0002D); spark.setAirResistance(0.02F); @@ -226,12 +226,12 @@ else if (yRot - ltyRot < -0.1) { //TODO particles // BCEffectHandler.spawnFXDirect(DEParticles.DE_SHEET, spark); - int i = world.rand.nextInt(4); + int i = level.random.nextInt(4); double x = i / 2; double z = i % 2; - spark = new ParticleStarSpark((ClientWorld)world, new Vec3D(pos).add(0.14 + (x * 0.72), 0.17, 0.14 + (z * 0.72))); - spark.setSizeAndRandMotion(0.3F * (world.rand.nextFloat() + 0.2), 0.002D, 0, 0.002D); + spark = new ParticleStarSpark((ClientWorld)level, new Vec3D(worldPosition).add(0.14 + (x * 0.72), 0.17, 0.14 + (z * 0.72))); + spark.setSizeAndRandMotion(0.3F * (level.random.nextFloat() + 0.2), 0.002D, 0, 0.002D); spark.setGravity(0.0002D); spark.sparkSize = 0.15F; if (isAdvanced()) { @@ -248,7 +248,7 @@ else if (yRot - ltyRot < -0.1) { } public void doScanPulse() { - List entities = entityFilter.filterEntities(world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(pos, pos.add(1, 1, 1)).grow(range.get(), range.get(), range.get()))); + List entities = entityFilter.filterEntities(level.getEntitiesOfClass(Entity.class, new AxisAlignedBB(worldPosition, worldPosition.offset(1, 1, 1)).inflate(range.get(), range.get(), range.get()))); double min = rsMinDetection.get() - 1; double max = rsMaxDetection.get(); @@ -267,7 +267,7 @@ else if (max - min == 15) { if (outputStrength.get() != output) { outputStrength.set((byte) output); - world.notifyNeighborsOfStateChange(pos, getBlockState().getBlock()); + level.updateNeighborsAt(worldPosition, getBlockState().getBlock()); } if (pulseRsMode.get()) { @@ -375,13 +375,13 @@ else if (value > 127) { @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (!world.isRemote) { + if (!level.isClientSide) { // FMLNetworkHandler.openGui(player, DraconicEvolution.instance, GuiHandler.GUIID_ENTITY_DETECTOR, world, pos.getX(), pos.getY(), pos.getZ()); MinecraftServer server = player.getServer(); if (server != null) { ListNBT list = new ListNBT(); - for (String name : server.getPlayerList().getOnlinePlayerNames()) { + for (String name : server.getPlayerList().getPlayerNamesArray()) { list.add(StringNBT.valueOf(name)); } CompoundNBT compound = new CompoundNBT(); @@ -432,6 +432,6 @@ public boolean isAdvanced() { @OnlyIn(Dist.CLIENT) @Override public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(pos, pos.add(1, 1, 1)); + return new AxisAlignedBB(worldPosition, worldPosition.offset(1, 1, 1)); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileGenerator.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileGenerator.java index c992c340a..c0a1951e9 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileGenerator.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileGenerator.java @@ -91,7 +91,7 @@ public TileGenerator() { @Override public void tick() { super.tick(); - if (world.isRemote) { + if (level.isClientSide) { rotationSpeed = (active.get() ? mode.get().animFanSpeed : 0F); rotation += rotationSpeed; updateSoundAndFX(); @@ -102,7 +102,7 @@ public void tick() { boolean last = active.get(); active.set(fuelRemaining.get() > 0 && opStorage.getOPStored() < opStorage.getMaxOPStored() && isTileEnabled()); if (active.get() != last) { - world.setBlockState(pos, world.getBlockState(pos).with(Generator.ACTIVE, active.get())); + level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(Generator.ACTIVE, active.get())); } if (active.get()) { @@ -172,14 +172,14 @@ private boolean canExtractItem(int slot, ItemStack stack) { @OnlyIn(Dist.CLIENT) private void updateSoundAndFX() { soundHandler.tick(); - if (!active.get() || pos.distanceSq(Minecraft.getInstance().player.getPosition()) > 16 * 16) { + if (!active.get() || worldPosition.distSqr(Minecraft.getInstance().player.blockPosition()) > 16 * 16) { return; } - Random rand = world.rand; + Random rand = level.random; double p = 0.0625; if (rand.nextInt(17 - (mode.get().index * 4)) == 0) { - Direction enumfacing = getBlockState().get(Generator.FACING); + Direction enumfacing = getBlockState().getValue(Generator.FACING); double pgx = (p * 7.5D) + (rand.nextInt(6) * (p)); double pgy = 0.3D; @@ -188,20 +188,20 @@ private void updateSoundAndFX() { switch (enumfacing) { case WEST: - spawnGrillParticle(rand, pos.getX() + pgz - outOffset, pos.getY() + pgy, pos.getZ() + pgx); + spawnGrillParticle(rand, worldPosition.getX() + pgz - outOffset, worldPosition.getY() + pgy, worldPosition.getZ() + pgx); break; case EAST: - spawnGrillParticle(rand, pos.getX() + pgz + outOffset, pos.getY() + pgy, pos.getZ() + (1D - pgx)); + spawnGrillParticle(rand, worldPosition.getX() + pgz + outOffset, worldPosition.getY() + pgy, worldPosition.getZ() + (1D - pgx)); break; case NORTH: - spawnGrillParticle(rand, pos.getX() + (1D - pgx), pos.getY() + pgy, pos.getZ() + pgz - outOffset); + spawnGrillParticle(rand, worldPosition.getX() + (1D - pgx), worldPosition.getY() + pgy, worldPosition.getZ() + pgz - outOffset); break; case SOUTH: - spawnGrillParticle(rand, pos.getX() + pgx, pos.getY() + pgy, pos.getZ() + pgz + outOffset); + spawnGrillParticle(rand, worldPosition.getX() + pgx, worldPosition.getY() + pgy, worldPosition.getZ() + pgz + outOffset); } } if (rand.nextInt(5 - mode.get().index) == 0) { - Direction enumfacing = getBlockState().get(Generator.FACING); + Direction enumfacing = getBlockState().getValue(Generator.FACING); double pex = (p * 3D) + (rand.nextInt(5) * p); double pey = p * 6.5; @@ -211,35 +211,35 @@ private void updateSoundAndFX() { switch (enumfacing) { case WEST: - spawnExhaustParticle(rand, pos.getX() + (1D - pex), pos.getY() + pey, pos.getZ() + pez - exhaustOffset, new Vec3D(0, 0, -exhaustVelocity)); + spawnExhaustParticle(rand, worldPosition.getX() + (1D - pex), worldPosition.getY() + pey, worldPosition.getZ() + pez - exhaustOffset, new Vec3D(0, 0, -exhaustVelocity)); break; case EAST: - spawnExhaustParticle(rand, pos.getX() + pex, pos.getY() + pey, pos.getZ() + pez + exhaustOffset, new Vec3D(0, 0, exhaustVelocity)); + spawnExhaustParticle(rand, worldPosition.getX() + pex, worldPosition.getY() + pey, worldPosition.getZ() + pez + exhaustOffset, new Vec3D(0, 0, exhaustVelocity)); break; case NORTH: - spawnExhaustParticle(rand, pos.getX() + pez + exhaustOffset, pos.getY() + pey, pos.getZ() + (1D - pex), new Vec3D(exhaustVelocity, 0, 0)); + spawnExhaustParticle(rand, worldPosition.getX() + pez + exhaustOffset, worldPosition.getY() + pey, worldPosition.getZ() + (1D - pex), new Vec3D(exhaustVelocity, 0, 0)); break; case SOUTH: - spawnExhaustParticle(rand, pos.getX() + pez - exhaustOffset, pos.getY() + pey, pos.getZ() + pex, new Vec3D(-exhaustVelocity, 0, 0)); + spawnExhaustParticle(rand, worldPosition.getX() + pez - exhaustOffset, worldPosition.getY() + pey, worldPosition.getZ() + pex, new Vec3D(-exhaustVelocity, 0, 0)); } } } @OnlyIn(Dist.CLIENT) private void spawnGrillParticle(Random rand, double x, double y, double z) { - world.addParticle(ParticleTypes.SMOKE, x, y, z, 0.0D, 0.0D, 0.0D); + level.addParticle(ParticleTypes.SMOKE, x, y, z, 0.0D, 0.0D, 0.0D); if (mode.get() != Mode.PERFORMANCE_PLUS && rand.nextInt(8) == 0) { - world.addParticle(new IntParticleData(DEParticles.flame, 127), x, y, z, 0, 0, 0); + level.addParticle(new IntParticleData(DEParticles.flame, 127), x, y, z, 0, 0, 0); } } @OnlyIn(Dist.CLIENT) private void spawnExhaustParticle(Random rand, double x, double y, double z, Vec3D velocity) { if (rand.nextBoolean()) { - world.addParticle(ParticleTypes.SMOKE, x, y, z, velocity.x, velocity.y, velocity.z); - world.addParticle(ParticleTypes.SMOKE, x, y, z, velocity.x, velocity.y, velocity.z); + level.addParticle(ParticleTypes.SMOKE, x, y, z, velocity.x, velocity.y, velocity.z); + level.addParticle(ParticleTypes.SMOKE, x, y, z, velocity.x, velocity.y, velocity.z); } else { - world.addParticle(new IntParticleData(DEParticles.flame, 64, (int) ((0.1 + (rand.nextDouble() * 0.05)) * 255)), x, y, z, velocity.x, velocity.y, velocity.z); + level.addParticle(new IntParticleData(DEParticles.flame, 64, (int) ((0.1 + (rand.nextDouble() * 0.05)) * 255)), x, y, z, velocity.x, velocity.y, velocity.z); } } @@ -252,7 +252,7 @@ public Container createMenu(int currentWindowIndex, PlayerInventory playerInvent @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { if (player instanceof ServerPlayerEntity) { - NetworkHooks.openGui((ServerPlayerEntity) player, this, pos); + NetworkHooks.openGui((ServerPlayerEntity) player, this, worldPosition); } return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileGrinder.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileGrinder.java index dc0094d33..1db0db859 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileGrinder.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileGrinder.java @@ -97,7 +97,7 @@ public TileGrinder() { setupPowerSlot(itemHandler, 0, opStorage, false); entityFilter = new EntityFilter(true, HOSTILE, TAMED, ADULTS, ENTITY_TYPE, FILTER_GROUP, PLAYER); - entityFilter.setDirtyHandler(this::markDirty); + entityFilter.setDirtyHandler(this::setChanged); entityFilter.setTypePredicate(e -> e != PLAYER || DEOldConfig.allowGrindingPlayers); entityFilter.setupServerPacketHandling(() -> createClientBoundPacket(0), packet -> sendPacketToClients(getAccessingPlayers(), packet)); entityFilter.setupClientPacketHandling(() -> createServerBoundPacket(0), packetCustom -> BrandonsCore.proxy.sendToServer(packetCustom)); @@ -126,7 +126,7 @@ public void onPlayerOpenContainer(PlayerEntity player) { public void tick() { super.tick(); - if (world.isRemote) { + if (level.isClientSide) { if (animA < 1) animA += getAnimSpeed(); else targetA = null; if (animB < 1) animB += getAnimSpeed(); @@ -174,20 +174,20 @@ private boolean updateActiveState() { isActive = false; } - world.setBlockState(pos, world.getBlockState(pos).with(Grinder.ACTIVE, isActive)); + level.setBlockAndUpdate(worldPosition, level.getBlockState(worldPosition).setValue(Grinder.ACTIVE, isActive)); return active.set(isActive); } public void validateKillZone(boolean forceReCalc) { if (forceReCalc || killZone == null) { - BlockState state = world.getBlockState(pos); - Direction facing = state.get(Grinder.FACING); + BlockState state = level.getBlockState(worldPosition); + Direction facing = state.getValue(Grinder.FACING); // LogHelper.dev("Update Kill Zone: " + facing); int aoe = this.aoe.get(); - BlockPos pos1 = pos.add(-(aoe - 1), -(aoe - 1), -(aoe - 1)); - BlockPos pos2 = pos.add(aoe, aoe, aoe); - pos1 = pos1.add(facing.getXOffset() * aoe, 0, facing.getZOffset() * aoe); - pos2 = pos2.add(facing.getXOffset() * aoe, 0, facing.getZOffset() * aoe); + BlockPos pos1 = worldPosition.offset(-(aoe - 1), -(aoe - 1), -(aoe - 1)); + BlockPos pos2 = worldPosition.offset(aoe, aoe, aoe); + pos1 = pos1.offset(facing.getStepX() * aoe, 0, facing.getStepZ() * aoe); + pos2 = pos2.offset(facing.getStepX() * aoe, 0, facing.getStepZ() * aoe); killZone = new AxisAlignedBB(pos1, pos2); } } @@ -198,10 +198,10 @@ private boolean attackTarget() { } ItemStack weapon = itemHandler.getStackInSlot(1); - if (weapon.isEmpty() || weapon.getDamage() >= weapon.getMaxDamage() - 1) { + if (weapon.isEmpty() || weapon.getDamageValue() >= weapon.getMaxDamage() - 1) { weapon = ItemStack.EMPTY; } - getFakePlayer().setHeldItem(Hand.MAIN_HAND, weapon); + getFakePlayer().setItemInHand(Hand.MAIN_HAND, weapon); int eph = DEOldConfig.grinderEnergyPerHeart; float health = nextTarget.getHealth(); @@ -224,14 +224,14 @@ private boolean attackTarget() { //Dont mess around. If we know the mob should die lets just make it die! float damage = willKill ? Float.MAX_VALUE : ((float) cost / (float) eph) * 1.1F; - DamageSource source = DamageSource.causePlayerDamage(getFakePlayer()); + DamageSource source = DamageSource.playerAttack(getFakePlayer()); //Attack the mob and enter cooldown mode for 5 ticks if successful. Else cooldown for 3 ticks. - if (nextTarget.attackEntityFrom(source, damage)) { + if (nextTarget.hurt(source, damage)) { if (!weapon.isEmpty()) { ItemStack justInCase = weapon.copy(); - justInCase.setDamage(justInCase.getMaxDamage() - 1); - weapon.damageItem(1, getFakePlayer(), fakePlayer -> itemHandler.setStackInSlot(1, justInCase)); + justInCase.setDamageValue(justInCase.getMaxDamage() - 1); + weapon.hurtAndBreak(1, getFakePlayer(), fakePlayer -> itemHandler.setStackInSlot(1, justInCase)); } LogHelper.dev("Grinder: Dealt " + damage + " damage to entity: " + nextTarget); @@ -239,7 +239,7 @@ private boolean attackTarget() { opStorage.modifyEnergyStored(-cost); return true; } - LogHelper.dev("Grinder: Failed to deal damage to entity: " + nextTarget.getType().getName().getString() + " Waiting 3 ticks..."); + LogHelper.dev("Grinder: Failed to deal damage to entity: " + nextTarget.getType().getDescription().getString() + " Waiting 3 ticks..."); if (!killZone.intersects(nextTarget.getBoundingBox())) { nextTarget = null; } @@ -248,11 +248,11 @@ private boolean attackTarget() { } private void queNextTarget() { - List entitiesInRange = world.getEntitiesWithinAABB(LivingEntity.class, killZone, entityFilter.predicate()); + List entitiesInRange = level.getEntitiesOfClass(LivingEntity.class, killZone, entityFilter.predicate()); boolean foundInvulnerable = false; while (!entitiesInRange.isEmpty()) { - LivingEntity randEntity = entitiesInRange.remove(world.rand.nextInt(entitiesInRange.size())); + LivingEntity randEntity = entitiesInRange.remove(level.random.nextInt(entitiesInRange.size())); if (isValidEntity(randEntity)) { LogHelper.dev("Grinder: Found next target: " + randEntity); if (randEntity.isInvulnerable()) { @@ -261,8 +261,8 @@ private void queNextTarget() { } else { nextTarget = randEntity; //Throw the sword! - sendPacketToChunk(output -> output.writeInt(nextTarget.getEntityId()), 1); - world.playSound(null, pos, SoundEvents.ITEM_TRIDENT_THROW, SoundCategory.BLOCKS, 1, 0.55F + (world.rand.nextFloat() * 0.1F)); + sendPacketToChunk(output -> output.writeInt(nextTarget.getId()), 1); + level.playSound(null, worldPosition, SoundEvents.TRIDENT_THROW, SoundCategory.BLOCKS, 1, 0.55F + (level.random.nextFloat() * 0.1F)); coolDown = killRate; return; } @@ -282,21 +282,21 @@ private boolean isValidEntity(LivingEntity livingBase) { } private void handleLootCollection() { - List xp = world.getEntitiesWithinAABB(ExperienceOrbEntity.class, killZone.grow(4, 4, 4)); + List xp = level.getEntitiesOfClass(ExperienceOrbEntity.class, killZone.inflate(4, 4, 4)); for (ExperienceOrbEntity orb : xp) { if (!orb.isAlive()) continue; - if (collectXP.get() && storedXP.get() + orb.xpValue <= getXPStorageCapacity()) { - storedXP.add(orb.xpValue); + if (collectXP.get() && storedXP.get() + orb.value <= getXPStorageCapacity()) { + storedXP.add(orb.value); orb.remove(); - } else if (orb.xpOrbAge < 5400) { - orb.xpOrbAge = 5700; + } else if (orb.age < 5400) { + orb.age = 5700; } } if (collectItems.get()) { - List items = world.getEntitiesWithinAABB(ItemEntity.class, killZone.grow(1, 1, 1)); + List items = level.getEntitiesOfClass(ItemEntity.class, killZone.inflate(1, 1, 1)); for (Direction dir : Direction.values()) { - TileEntity target = world.getTileEntity(pos.offset(dir)); + TileEntity target = level.getBlockEntity(worldPosition.relative(dir)); if (target != null) { LazyOptional opCap = target.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, dir.getOpposite()); opCap.ifPresent(iItemHandler -> { @@ -339,7 +339,7 @@ public void receivePacketFromClient(MCDataInput data, ServerPlayerEntity client, break; } for (int i = 0; i < levels; i++) { - int xp = Math.min(client.xpBarCap(), storedXP.get()); + int xp = Math.min(client.getXpNeededForNextLevel(), storedXP.get()); storedXP.subtract(xp); client.giveExperiencePoints(xp); } @@ -351,7 +351,7 @@ public void receivePacketFromClient(MCDataInput data, ServerPlayerEntity client, public void receivePacketFromServer(MCDataInput data, int id) { super.receivePacketFromServer(data, id); if (id == 1) { - Entity target = world.getEntityByID(data.readInt()); + Entity target = level.getEntity(data.readInt()); if (target != null) { if (swordFlipFlop) { targetA = target; @@ -379,7 +379,7 @@ public float getAnimSpeed() { public FakePlayer getFakePlayer() { if (cachedFakePlayer == null) { - cachedFakePlayer = FakePlayerFactory.get((ServerWorld) world, new GameProfile(UUID.fromString("5b5689b9-e43d-4282-a42a-dc916f3616b7"), "Draconic Evolution Grinder")); + cachedFakePlayer = FakePlayerFactory.get((ServerWorld) level, new GameProfile(UUID.fromString("5b5689b9-e43d-4282-a42a-dc916f3616b7"), "Draconic Evolution Grinder")); } return cachedFakePlayer; } @@ -404,7 +404,7 @@ public Container createMenu(int currentWindowIndex, PlayerInventory playerInvent @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { if (player instanceof ServerPlayerEntity) { - NetworkHooks.openGui((ServerPlayerEntity) player, this, pos); + NetworkHooks.openGui((ServerPlayerEntity) player, this, worldPosition); } return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileParticleGenerator.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileParticleGenerator.java index 99af3f5cb..ada346cb8 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileParticleGenerator.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileParticleGenerator.java @@ -62,13 +62,13 @@ public TileParticleGenerator() { public void tick() { super.tick(); - if (world.isRemote && (inverted.get() != world.isBlockPowered(pos))) { + if (level.isClientSide && (inverted.get() != level.hasNeighborSignal(worldPosition))) { if (tick >= delay.get()) { - Random rand = world.rand; + Random rand = level.random; - final double X = pos.getX() + spawnX.get() + randomSpawnX.get() * rand.nextDouble() + .5D; - final double Y = pos.getY() + spawnY.get() + randomSpawnY.get() * rand.nextDouble() + .5D; - final double Z = pos.getZ() + spawnZ.get() + randomSpawnZ.get() * rand.nextDouble() + .5D; + final double X = worldPosition.getX() + spawnX.get() + randomSpawnX.get() * rand.nextDouble() + .5D; + final double Y = worldPosition.getY() + spawnY.get() + randomSpawnY.get() * rand.nextDouble() + .5D; + final double Z = worldPosition.getZ() + spawnZ.get() + randomSpawnZ.get() * rand.nextDouble() + .5D; final double MX = motionX.get() + randomMotionX.get() * rand.nextDouble(); final double MY = motionY.get() + randomMotionY.get() * rand.nextDouble(); final double MZ = motionZ.get() + randomMotionZ.get() * rand.nextDouble(); diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePlacedItem.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePlacedItem.java index 013e54aa6..cf9f71d31 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePlacedItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePlacedItem.java @@ -59,14 +59,14 @@ public TilePlacedItem() { //region Bounds / Interaction public void handleClick(int hit, PlayerEntity player) { - if (!player.getHeldItemMainhand().isEmpty() && ModHelper.isWrench(player.getHeldItemMainhand())) { + if (!player.getMainHandItem().isEmpty() && ModHelper.isWrench(player.getMainHandItem())) { altRenderMode.invert(); LogHelper.dev(altRenderMode); super.tick(); return; } - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { if (hit == -1) { return; } @@ -75,7 +75,7 @@ public void handleClick(int hit, PlayerEntity player) { if (index >= 0 && index < rotation.length) { rotation[index].inc(); - BCoreNetwork.sendSound(world, pos, SoundEvents.ENTITY_ITEM_FRAME_ROTATE_ITEM, SoundCategory.PLAYERS, 1.0F, 0.9F + world.rand.nextFloat() * 0.2F, false); + BCoreNetwork.sendSound(level, worldPosition, SoundEvents.ITEM_FRAME_ROTATE_ITEM, SoundCategory.PLAYERS, 1.0F, 0.9F + level.random.nextFloat() * 0.2F, false); super.tick(); } @@ -83,23 +83,23 @@ public void handleClick(int hit, PlayerEntity player) { } if (hit == 0) { - for (int i = 0; i < inventory.getSizeInventory(); i++) { - FeatureUtils.dropItemNoDellay(inventory.getStackInSlot(i), world, Vector3.fromEntity(player)); + for (int i = 0; i < inventory.getContainerSize(); i++) { + FeatureUtils.dropItemNoDellay(inventory.getItem(i), level, Vector3.fromEntity(player)); } inventory.stacks.clear(); - world.removeBlock(pos, false); + level.removeBlock(worldPosition, false); } else { - if (!inventory.getStackInSlot(hit - 1).isEmpty()) { - FeatureUtils.dropItemNoDellay(inventory.getStackInSlot(hit - 1), world, Vector3.fromEntity(player)); - inventory.setInventorySlotContents(hit - 1, ItemStack.EMPTY); + if (!inventory.getItem(hit - 1).isEmpty()) { + FeatureUtils.dropItemNoDellay(inventory.getItem(hit - 1), level, Vector3.fromEntity(player)); + inventory.setItem(hit - 1, ItemStack.EMPTY); } } } public void breakBlock() { - for (int i = 0; i < inventory.getSizeInventory(); i++) { - FeatureUtils.dropItemNoDellay(inventory.getStackInSlot(i), world, Vector3.fromTileCenter(this)); + for (int i = 0; i < inventory.getContainerSize(); i++) { + FeatureUtils.dropItemNoDellay(inventory.getItem(i), level, Vector3.fromTileCenter(this)); } inventory.stacks.clear(); } @@ -110,7 +110,7 @@ public void breakBlock() { private synchronized void calculateBounds() { BlockState state = getBlockState();//world.getBlockState(getPos()); - Cuboid6 box = new Cuboid6(0.5, 0, 0.5, 0.5, 0, 0.5).apply(Rotation.sideRotations[state.get(PlacedItem.FACING).getIndex()].at(Vector3.CENTER)); + Cuboid6 box = new Cuboid6(0.5, 0, 0.5, 0.5, 0, 0.5).apply(Rotation.sideRotations[state.getValue(PlacedItem.FACING).get3DDataValue()].at(Vector3.CENTER)); int i = 0; for (Cuboid6 cuboid : indexedCuboids) { @@ -119,10 +119,10 @@ private synchronized void calculateBounds() { } if (facing.getAxisDirection() == Direction.AxisDirection.NEGATIVE) { - box.setSide(facing.getIndex() ^ 1, 0.01); + box.setSide(facing.get3DDataValue() ^ 1, 0.01); } else { - box.setSide(facing.getIndex() ^ 1, 0.99); + box.setSide(facing.get3DDataValue() ^ 1, 0.99); } @@ -135,7 +135,7 @@ private synchronized void calculateBounds() { } private synchronized void recalculateCuboids() { - BlockState state = world.getBlockState(getPos()); + BlockState state = level.getBlockState(getBlockPos()); if (state.getBlock() != DEContent.placed_item) { return; } @@ -143,7 +143,7 @@ private synchronized void recalculateCuboids() { double scale = displayCount.get() == 1 && (toolDisplay.get() || altRenderMode.get()) ? 0.2 : 0.32; - Transformation rotation = rotations[state.get(PlacedItem.FACING).getIndex()].at(Vector3.CENTER); + Transformation rotation = rotations[state.getValue(PlacedItem.FACING).get3DDataValue()].at(Vector3.CENTER); double offset = 0.225; double blockH = 0.36; @@ -208,7 +208,7 @@ public void updateBlock() { @Override public void writeExtraNBT(CompoundNBT compound) { super.writeExtraNBT(compound); - compound.putByte("Facing", (byte) facing.getIndex()); + compound.putByte("Facing", (byte) facing.get3DDataValue()); for (int i = 0; i < isBlock.length; i++) { compound.putBoolean("IsBlock" + i, isBlock[i]); } @@ -218,7 +218,7 @@ public void writeExtraNBT(CompoundNBT compound) { @Override public void readExtraNBT(CompoundNBT compound) { super.readExtraNBT(compound); - facing = Direction.byIndex(compound.getByte("Facing")); + facing = Direction.from3DDataValue(compound.getByte("Facing")); for (int i = 0; i < isBlock.length; i++) { isBlock[i] = compound.getBoolean("IsBlock" + i); } @@ -231,7 +231,7 @@ public void readExtraNBT(CompoundNBT compound) { @OnlyIn(Dist.CLIENT) @Override public AxisAlignedBB getRenderBoundingBox() { - return new AxisAlignedBB(pos.add(-1, -1, -1), pos.add(2, 2, 2)); + return new AxisAlignedBB(worldPosition.offset(-1, -1, -1), worldPosition.offset(2, 2, 2)); } public static class PlacedItemInventory implements IInventory { @@ -243,23 +243,23 @@ public PlacedItemInventory(TilePlacedItem tile) { } @Override - public void setInventorySlotContents(int index, ItemStack stack) { + public void setItem(int index, ItemStack stack) { setSlot(index, stack); int count = 0; - for (int i = 0; i < getSizeInventory(); i++) { - if (!getStackInSlot(i).isEmpty()) { - tile.isBlock[i] = getStackInSlot(i).getItem() instanceof BlockItem; + for (int i = 0; i < getContainerSize(); i++) { + if (!getItem(i).isEmpty()) { + tile.isBlock[i] = getItem(i).getItem() instanceof BlockItem; count++; } } if (count == 0) { - tile.world.removeBlock(tile.getPos(), false); + tile.level.removeBlock(tile.getBlockPos(), false); } else { tile.displayCount.set((byte) count); - ItemStack stack0 = getStackInSlot(0); + ItemStack stack0 = getItem(0); tile.toolDisplay.set(count == 1 && stack0.getItem().isEnchantable(stack0)); tile.tick(); tile.updateBlock(); @@ -267,12 +267,12 @@ public void setInventorySlotContents(int index, ItemStack stack) { } @Override - public int getSizeInventory() { + public int getContainerSize() { return 4; } @Override - public ItemStack getStackInSlot(int index) { + public ItemStack getItem(int index) { return index >= 0 && index < stacks.size() && stacks.get(index) != null ? stacks.get(index) : ItemStack.EMPTY; } @@ -293,7 +293,7 @@ else if (index < stacks.size()) { stacks.add(stack); } - markDirty(); + setChanged(); } protected void toNBT(CompoundNBT compound) { @@ -303,7 +303,7 @@ protected void toNBT(CompoundNBT compound) { if (stack.isEmpty()) { continue; } - itemList.add(stack.write(new CompoundNBT())); + itemList.add(stack.save(new CompoundNBT())); } compound.put("InventoryStacks", itemList); @@ -314,14 +314,14 @@ protected void fromNBT(CompoundNBT compound) { ListNBT itemList = compound.getList("InventoryStacks", 10); for (int i = 0; i < itemList.size(); i++) { - stacks.add(ItemStack.read(itemList.getCompound(i))); + stacks.add(ItemStack.of(itemList.getCompound(i))); } } @Override - public ItemStack removeStackFromSlot(int index) { - ItemStack stack = getStackInSlot(index); - setInventorySlotContents(index, ItemStack.EMPTY); + public ItemStack removeItemNoUpdate(int index) { + ItemStack stack = getItem(index); + setItem(index, ItemStack.EMPTY); return stack; } @@ -331,7 +331,7 @@ public boolean isEmpty() { } @Override - public ItemStack decrStackSize(int index, int count) { + public ItemStack removeItem(int index, int count) { ItemStack stack; if (index >= 0 && index < stacks.size() && !stacks.get(index).isEmpty() && count > 0) { @@ -342,7 +342,7 @@ public ItemStack decrStackSize(int index, int count) { } if (!stack.isEmpty()) { - markDirty(); + setChanged(); } return stack; @@ -350,39 +350,39 @@ public ItemStack decrStackSize(int index, int count) { @Override - public int getInventoryStackLimit() { + public int getMaxStackSize() { return 64; } @Override - public void markDirty() { - tile.markDirty(); + public void setChanged() { + tile.setChanged(); } @Override - public boolean isUsableByPlayer(PlayerEntity player) { + public boolean stillValid(PlayerEntity player) { return true; } @Override - public void openInventory(PlayerEntity player) { + public void startOpen(PlayerEntity player) { } @Override - public void closeInventory(PlayerEntity player) { + public void stopOpen(PlayerEntity player) { } @Override - public boolean isItemValidForSlot(int index, ItemStack stack) { + public boolean canPlaceItem(int index, ItemStack stack) { return true; } @Override - public void clear() { + public void clearContent() { stacks.clear(); - tile.world.removeBlock(tile.getPos(), false); + tile.level.removeBlock(tile.getBlockPos(), false); } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePortal.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePortal.java index b25b15b6d..4a7a762e6 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePortal.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePortal.java @@ -37,7 +37,7 @@ public void validatePortal() { return; } - TileEntity tile = world.getTileEntity(getMasterPos()); + TileEntity tile = level.getBlockEntity(getMasterPos()); if (tile instanceof TileDislocatorReceptacle) { if (((TileDislocatorReceptacle) tile).igniting) { @@ -45,35 +45,35 @@ public void validatePortal() { } if (!((TileDislocatorReceptacle) tile).active.get()) { - world.removeBlock(pos, false); + level.removeBlock(worldPosition, false); return; } - BlockState state = world.getBlockState(pos); - for (Direction facing : FacingUtils.getFacingsAroundAxis(state.get(Portal.AXIS))) { - BlockState checkPos = world.getBlockState(pos.offset(facing)); + BlockState state = level.getBlockState(worldPosition); + for (Direction facing : FacingUtils.getFacingsAroundAxis(state.getValue(Portal.AXIS))) { + BlockState checkPos = level.getBlockState(worldPosition.relative(facing)); if (checkPos.getBlock() != DEContent.portal && checkPos.getBlock() != DEContent.infused_obsidian && checkPos.getBlock() != DEContent.dislocator_receptacle) { ((TileDislocatorReceptacle) tile).deactivate(); - world.removeBlock(pos, false); + level.removeBlock(worldPosition, false); } } dataManager.detectAndSendChanges(); } else { - world.removeBlock(pos, false); + level.removeBlock(worldPosition, false); } } public void setMasterPos(BlockPos masterPos) { - this.masterPos.get().set(pos.subtract(masterPos)); + this.masterPos.get().set(worldPosition.subtract(masterPos)); } protected BlockPos getMasterPos() { - return pos.subtract(masterPos.get().getPos()); + return worldPosition.subtract(masterPos.get().getPos()); } public TileDislocatorReceptacle getMaster() { - TileEntity tile = world.getTileEntity(getMasterPos()); + TileEntity tile = level.getBlockEntity(getMasterPos()); return tile instanceof TileDislocatorReceptacle ? (TileDislocatorReceptacle) tile : null; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePortalClient.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePortalClient.java index 2c577eede..fcf2e8557 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePortalClient.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePortalClient.java @@ -31,37 +31,37 @@ public void tick() { if (disabled) return; PlayerEntity player = Minecraft.getInstance().player; - double distanceMod = Utils.getDistanceAtoB(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, player.getPosX(), player.getPosY(), player.getPosZ()); - if (world.rand.nextInt(Math.max((int) (distanceMod * (distanceMod / 5D)), 1)) == 0) { - BlockState state = world.getBlockState(pos); + double distanceMod = Utils.getDistanceAtoB(worldPosition.getX() + 0.5, worldPosition.getY() + 0.5, worldPosition.getZ() + 0.5, player.getX(), player.getY(), player.getZ()); + if (level.random.nextInt(Math.max((int) (distanceMod * (distanceMod / 5D)), 1)) == 0) { + BlockState state = level.getBlockState(worldPosition); if (state.getBlock() != DEContent.portal) { return; } - Direction.Axis axis = state.get(Portal.AXIS); + Direction.Axis axis = state.getValue(Portal.AXIS); - double rD1 = world.rand.nextDouble(); - double rD2 = world.rand.nextDouble(); - double rO1 = -0.1 + world.rand.nextDouble() * 0.2; - double rO2 = -0.1 + world.rand.nextDouble() * 0.2; + double rD1 = level.random.nextDouble(); + double rD2 = level.random.nextDouble(); + double rO1 = -0.1 + level.random.nextDouble() * 0.2; + double rO2 = -0.1 + level.random.nextDouble() * 0.2; //TODO particles - if (axis == Z && player.getPosZ() < pos.getZ() + 0.5) { + if (axis == Z && player.getZ() < worldPosition.getZ() + 0.5) { // BCEffectHandler.spawnFX(DEParticles.PORTAL, world, new Vec3D(pos).add(rD1, rD2, 0), new Vec3D(pos).add(rD1 + rO1, rD2 + rO2, 0.75), 256D); } - else if (axis == Z && player.getPosZ() > pos.getZ() + 0.5) { + else if (axis == Z && player.getZ() > worldPosition.getZ() + 0.5) { // BCEffectHandler.spawnFX(DEParticles.PORTAL, world, new Vec3D(pos).add(rD1, rD2, 1), new Vec3D(pos).add(rD1 + rO1, rD2 + rO2, 0.25), 256D); } - else if (axis == X && player.getPosX() < pos.getX() + 0.5) { + else if (axis == X && player.getX() < worldPosition.getX() + 0.5) { // BCEffectHandler.spawnFX(DEParticles.PORTAL, world, new Vec3D(pos).add(0, rD1, rD2), new Vec3D(pos).add(0.75, rD1 + rO1, rD2 + rO2), 256D); } - else if (axis == X && player.getPosX() > pos.getX() + 0.5) { + else if (axis == X && player.getX() > worldPosition.getX() + 0.5) { // BCEffectHandler.spawnFX(DEParticles.PORTAL, world, new Vec3D(pos).add(1, rD1, rD2), new Vec3D(pos).add(0.25, rD1 + rO1, rD2 + rO2), 256D); } - else if (axis == Y && player.getPosY() + player.getEyeHeight() > pos.getY() + 0.5) { + else if (axis == Y && player.getY() + player.getEyeHeight() > worldPosition.getY() + 0.5) { // BCEffectHandler.spawnFX(DEParticles.PORTAL, world, new Vec3D(pos).add(rD1, 1, rD2), new Vec3D(pos).add(rD1 + rO1, 0.25, rD2 + rO2), 256D); } - else if (axis == Y && player.getPosY() + player.getEyeHeight() < pos.getY() + 0.5) { + else if (axis == Y && player.getY() + player.getEyeHeight() < worldPosition.getY() + 0.5) { // BCEffectHandler.spawnFX(DEParticles.PORTAL, world, new Vec3D(pos).add(rD1, 0, rD2), new Vec3D(pos).add(rD1 + rO1, 0.75, rD2 + rO2), 256D); } } @@ -72,21 +72,21 @@ else if (axis == Y && player.getPosY() + player.getEyeHeight() < pos.getY() + 0. public void propRenderUpdate(long updateTime, boolean reignite) { this.updateTime = updateTime; - BlockState state = world.getBlockState(pos); + BlockState state = level.getBlockState(worldPosition); if (state.getBlock() != DEContent.portal) { return; } - Direction.Axis axis = state.get(Portal.AXIS); + Direction.Axis axis = state.getValue(Portal.AXIS); for (BlockPos offset : FacingUtils.getAroundAxis(axis)) { - TileEntity tile = world.getTileEntity(pos.add(offset)); + TileEntity tile = level.getBlockEntity(worldPosition.offset(offset)); if (tile instanceof TilePortalClient && ((TilePortalClient) tile).updateTime != updateTime) { ((TilePortalClient) tile).propRenderUpdate(updateTime, reignite); } } if (reignite) { - Random rand = world.rand; - world.addParticle(ParticleTypes.EXPLOSION, pos.getX() + rand.nextDouble(), pos.getY() + rand.nextDouble(), pos.getZ() + rand.nextDouble(), rand.nextDouble() * 0.03, rand.nextDouble() * 0.03, rand.nextDouble() * 0.03); + Random rand = level.random; + level.addParticle(ParticleTypes.EXPLOSION, worldPosition.getX() + rand.nextDouble(), worldPosition.getY() + rand.nextDouble(), worldPosition.getZ() + rand.nextDouble(), rand.nextDouble() * 0.03, rand.nextDouble() * 0.03, rand.nextDouble() * 0.03); // DelayedTask.run(3, () -> world. markBlockRangeForRenderUpdate(pos, pos));//TODO } else { diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePotentiometer.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePotentiometer.java index 9f5284cda..638f09d4e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePotentiometer.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TilePotentiometer.java @@ -48,7 +48,7 @@ public int getStrongPower(BlockState blockState, Direction side) { @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { power.dec(); if (power.get() < 0) { power.set((byte) 15); @@ -61,15 +61,15 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand } } - if (world.isRemote) { + if (level.isClientSide) { ChatHelper.sendIndexed(player, new StringTextComponent(String.valueOf(power.get())), 41); } else { - world.playSound(null, pos, SoundEvents.BLOCK_STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.5F + (power.get() / 20F)); + level.playSound(null, worldPosition, SoundEvents.STONE_BUTTON_CLICK_ON, SoundCategory.BLOCKS, 0.3F, 0.5F + (power.get() / 20F)); } - world.notifyNeighborsOfStateChange(pos, getBlockState().getBlock()); - world.notifyNeighborsOfStateChange(pos.offset(getBlockState().get(Potentiometer.FACING).getOpposite()), getBlockState().getBlock()); + level.updateNeighborsAt(worldPosition, getBlockState().getBlock()); + level.updateNeighborsAt(worldPosition.relative(getBlockState().getValue(Potentiometer.FACING).getOpposite()), getBlockState().getBlock()); super.tick(); return true; diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileStabilizedSpawner.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileStabilizedSpawner.java index 5c0da1a05..f01359030 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileStabilizedSpawner.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/TileStabilizedSpawner.java @@ -63,7 +63,7 @@ public void tick() { public boolean isActive() { if (isPowered.get() || mobSoul.get().isEmpty()) { return false; - } else if (spawnerTier.get().requiresPlayer && !world.isPlayerWithin(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D, (double) this.activatingRangeFromPlayer)) { + } else if (spawnerTier.get().requiresPlayer && !level.hasNearbyAlivePlayer(worldPosition.getX() + 0.5D, worldPosition.getY() + 0.5D, worldPosition.getZ() + 0.5D, (double) this.activatingRangeFromPlayer)) { return false; } return true; @@ -71,14 +71,14 @@ public boolean isActive() { @Override public void onNeighborChange(BlockPos changePos) { - isPowered.set(world.isBlockPowered(pos)); + isPowered.set(level.hasNeighborSignal(worldPosition)); } @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand, BlockRayTraceResult hit) { - ItemStack stack = player.getHeldItem(hand); + ItemStack stack = player.getItemInHand(hand); if (stack.getItem() == DEContent.mob_soul) { - if (!world.isRemote) { + if (!level.isClientSide) { (mobSoul.set(stack.copy())).setCount(1); if (!player.isCreative()) { InventoryUtils.consumeHeldItem(player, stack, hand); @@ -90,7 +90,7 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand ItemStack soul = new ItemStack(DEContent.mob_soul); DEContent.mob_soul.setEntity(type.getRegistryName(), soul); mobSoul.set(soul); - if (!player.abilities.isCreativeMode) { + if (!player.abilities.instabuild) { stack.shrink(1); } return true; @@ -127,11 +127,11 @@ public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand hand dropStack = new ItemStack(DEContent.core_chaotic); break; } - if (!world.isRemote && !player.abilities.isCreativeMode) { - ItemEntity entityItem = new ItemEntity(world, pos.getX() + 0.5, pos.getY() + 1, pos.getZ() + 0.5, dropStack); - entityItem.setMotion(entityItem.getMotion().x, 0.2, entityItem.getMotion().z); + if (!level.isClientSide && !player.abilities.instabuild) { + ItemEntity entityItem = new ItemEntity(level, worldPosition.getX() + 0.5, worldPosition.getY() + 1, worldPosition.getZ() + 0.5, dropStack); + entityItem.setDeltaMovement(entityItem.getDeltaMovement().x, 0.2, entityItem.getDeltaMovement().z); ; - world.addEntity(entityItem); + level.addFreshEntity(entityItem); InventoryUtils.consumeHeldItem(player, stack, hand); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFlowGate.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFlowGate.java index 26038c931..bcc345a39 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFlowGate.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFlowGate.java @@ -70,7 +70,7 @@ public long getFlow() { return flowOverride.get(); } if (rsSignal.get() == -1) { - rsSignal.set((byte) world.getRedstonePowerFromNeighbors(pos)); + rsSignal.set((byte) level.getBestNeighborSignal(worldPosition)); } return minFlow.get() + (long) (((double) rsSignal.get() / 15D) * (double) (maxFlow.get() - minFlow.get())); } @@ -106,29 +106,29 @@ else if (id == 1) { } public TileEntity getTarget() { - return world.getTileEntity(pos.offset(getDirection())); + return level.getBlockEntity(worldPosition.relative(getDirection())); } public TileEntity getSource() { - return world.getTileEntity(pos.offset(getDirection().getOpposite())); + return level.getBlockEntity(worldPosition.relative(getDirection().getOpposite())); } @Override - public void updateContainingBlockInfo() { - super.updateContainingBlockInfo(); + public void clearCache() { + super.clearCache(); rotationCache = null; } public Direction getDirection() { if (rotationCache == null) { - rotationCache = getBlockState().get(FlowGate.FACING); + rotationCache = getBlockState().getValue(FlowGate.FACING); } return rotationCache; } @Override public void onNeighborChange(BlockPos neighbor) { - rsSignal.set((byte) world.getRedstonePowerFromNeighbors(pos)); + rsSignal.set((byte) level.getBestNeighborSignal(worldPosition)); } //region Peripheral diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFluidGate.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFluidGate.java index ab5f35490..f4624c598 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFluidGate.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFluidGate.java @@ -22,6 +22,8 @@ import javax.annotation.Nonnull; +import net.minecraftforge.fluids.capability.IFluidHandler.FluidAction; + /** * Created by brandon3055 on 15/11/2016. */ @@ -150,7 +152,7 @@ public ITextComponent getName() { @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { if (player instanceof ServerPlayerEntity) { - NetworkHooks.openGui((ServerPlayerEntity) player, this, pos); + NetworkHooks.openGui((ServerPlayerEntity) player, this, worldPosition); } return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFluxGate.java b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFluxGate.java index 05cf377ad..56b51f6bd 100644 --- a/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFluxGate.java +++ b/src/main/java/com/brandon3055/draconicevolution/blocks/tileentity/flowgate/TileFluxGate.java @@ -50,8 +50,8 @@ private void updateCapabilities() { } @Override - public void updateContainingBlockInfo() { - super.updateContainingBlockInfo(); + public void clearCache() { + super.clearCache(); updateCapabilities(); } @@ -82,7 +82,7 @@ public Container createMenu(int id, PlayerInventory inventory, PlayerEntity play @Override public boolean onBlockActivated(BlockState state, PlayerEntity player, Hand handIn, BlockRayTraceResult hit) { if (player instanceof ServerPlayerEntity) { - NetworkHooks.openGui((ServerPlayerEntity) player, this, pos); + NetworkHooks.openGui((ServerPlayerEntity) player, this, worldPosition); } return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/ClientProxy.java b/src/main/java/com/brandon3055/draconicevolution/client/ClientProxy.java index 3468f9a2b..145d14e74 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/ClientProxy.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/ClientProxy.java @@ -97,10 +97,10 @@ public void clientSetup(FMLClientSetupEvent event) { ResourceUtils.registerReloadListener(new DETextures()); //Because i want this to render on bipedal mobs. - for (EntityRenderer e : Minecraft.getInstance().getRenderManager().renderers.values()) { - if (e instanceof LivingRenderer && ((LivingRenderer) e).getEntityModel() instanceof BipedModel) { + for (EntityRenderer e : Minecraft.getInstance().getEntityRenderDispatcher().renderers.values()) { + if (e instanceof LivingRenderer && ((LivingRenderer) e).getModel() instanceof BipedModel) { boolean foundArmor = false; - for (Object layer : ((LivingRenderer) e).layerRenderers) { + for (Object layer : ((LivingRenderer) e).layers) { if (layer instanceof BipedArmorLayer) { ((LivingRenderer) e).addLayer(new VBOArmorLayer((LivingRenderer) e, (BipedArmorLayer) layer)); foundArmor = true; @@ -113,7 +113,7 @@ public void clientSetup(FMLClientSetupEvent event) { } } - for (PlayerRenderer renderPlayer : Minecraft.getInstance().getRenderManager().getSkinMap().values()) { + for (PlayerRenderer renderPlayer : Minecraft.getInstance().getEntityRenderDispatcher().getSkinMap().values()) { renderPlayer.addLayer(new VBOArmorLayer<>(renderPlayer, null)); renderPlayer.addLayer(new ElytraLayer(renderPlayer){ @Override @@ -126,22 +126,22 @@ public boolean shouldRender(ItemStack stack, LivingEntity entity) { private void registerGuiFactories() { - ScreenManager.registerFactory(DEContent.container_generator, GuiGenerator::new); - ScreenManager.registerFactory(DEContent.container_grinder, GuiGrinder::new); - ScreenManager.registerFactory(DEContent.container_energy_core, GuiEnergyCore::new); - ScreenManager.registerFactory(DEContent.container_modular_item, GuiModularItem::new); - ScreenManager.registerFactory(DEContent.container_configurable_item, GuiConfigurableItem::new); - ScreenManager.registerFactory(DEContent.container_reactor, GuiReactor::new); + ScreenManager.register(DEContent.container_generator, GuiGenerator::new); + ScreenManager.register(DEContent.container_grinder, GuiGrinder::new); + ScreenManager.register(DEContent.container_energy_core, GuiEnergyCore::new); + ScreenManager.register(DEContent.container_modular_item, GuiModularItem::new); + ScreenManager.register(DEContent.container_configurable_item, GuiConfigurableItem::new); + ScreenManager.register(DEContent.container_reactor, GuiReactor::new); // ScreenManager.registerFactory(DEContent.container_celestial_manipulator, GuiCelestialManipulator::new); // ScreenManager.registerFactory(DEContent.container_dissenchanter, ::new); // ScreenManager.registerFactory(DEContent.container_draconium_chest, ContainerDraconiumChest::new); // ScreenManager.registerFactory(DEContent.container_energy_crystal, ContainerEnergyCrystal::new); // ScreenManager.registerFactory(DEContent.container_energy_infuser, ContainerEnergyInfuser::new); - ScreenManager.registerFactory(DEContent.container_fusion_crafting_core, GuiFusionCraftingCore::new); + ScreenManager.register(DEContent.container_fusion_crafting_core, GuiFusionCraftingCore::new); // ScreenManager.registerFactory(DEContent.container_reactor, ContainerReactor::new); - ScreenManager.registerFactory(DEContent.container_flow_gate, GuiFlowGate::new); - ScreenManager.registerFactory(DEContent.container_energy_transfuser, GuiEnergyTransfuser::new); + ScreenManager.register(DEContent.container_flow_gate, GuiFlowGate::new); + ScreenManager.register(DEContent.container_energy_transfuser, GuiEnergyTransfuser::new); } private void registerTileRenderers() { @@ -230,9 +230,9 @@ private void registerItemRenderers() { private void setupRenderLayers() { - RenderTypeLookup.setRenderLayer(DEContent.grinder, RenderType.getCutoutMipped()); - RenderTypeLookup.setRenderLayer(DEContent.generator, RenderType.getCutoutMipped()); - RenderTypeLookup.setRenderLayer(DEContent.energy_transfuser, RenderType.getCutoutMipped()); + RenderTypeLookup.setRenderLayer(DEContent.grinder, RenderType.cutoutMipped()); + RenderTypeLookup.setRenderLayer(DEContent.generator, RenderType.cutoutMipped()); + RenderTypeLookup.setRenderLayer(DEContent.energy_transfuser, RenderType.cutoutMipped()); // RenderTypeLookup.setRenderLayer(DEContent.chaos_crystal, RenderType.getCutout()); // RenderTypeLookup.setRenderLayer(DEContent.chaos_crystal_part, RenderType.getCutout()); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/DEParticles.java b/src/main/java/com/brandon3055/draconicevolution/client/DEParticles.java index 4b989dc36..e69de60ca 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/DEParticles.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/DEParticles.java @@ -54,13 +54,13 @@ public static void registerParticles(RegistryEvent.Register> eve @OnlyIn(Dist.CLIENT) @SubscribeEvent public static void registerFactories(ParticleFactoryRegisterEvent event) { - ParticleManager manager = Minecraft.getInstance().particles; - manager.registerFactory(flame, CustomFlameParticle.Factory::new); - manager.registerFactory(line_indicator, ParticleLineIndicator.Factory::new); - manager.registerFactory(energy, ParticleEnergy.Factory::new); - manager.registerFactory(energy_core, ParticleEnergyCoreFX.Factory::new); - manager.registerFactory(guardian_projectile, GuardianProjectileParticle.Factory::new); - manager.registerFactory(blink, BlinkParticle.Factory::new); + ParticleManager manager = Minecraft.getInstance().particleEngine; + manager.register(flame, CustomFlameParticle.Factory::new); + manager.register(line_indicator, ParticleLineIndicator.Factory::new); + manager.register(energy, ParticleEnergy.Factory::new); + manager.register(energy_core, ParticleEnergyCoreFX.Factory::new); + manager.register(guardian_projectile, GuardianProjectileParticle.Factory::new); + manager.register(blink, BlinkParticle.Factory::new); } @@ -68,9 +68,9 @@ public static void registerFactories(ParticleFactoryRegisterEvent event) { public static Particle addParticleDirect(World world, Particle particle) { if (world instanceof ClientWorld) { Minecraft mc = Minecraft.getInstance(); - ActiveRenderInfo activerenderinfo = mc.gameRenderer.getActiveRenderInfo(); - if (mc != null && activerenderinfo.isValid() && mc.particles != null) { - mc.particles.addEffect(particle); + ActiveRenderInfo activerenderinfo = mc.gameRenderer.getMainCamera(); + if (mc != null && activerenderinfo.isInitialized() && mc.particleEngine != null) { + mc.particleEngine.add(particle); return particle; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/ModuleSpriteUploader.java b/src/main/java/com/brandon3055/draconicevolution/client/ModuleSpriteUploader.java index d9658c3df..84709368d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/ModuleSpriteUploader.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/ModuleSpriteUploader.java @@ -18,11 +18,11 @@ public class ModuleSpriteUploader extends SpriteUploader { public ModuleSpriteUploader() { super(Minecraft.getInstance().textureManager, LOCATION_MODULE_TEXTURE, "module"); IReloadableResourceManager resourceManager = (IReloadableResourceManager) Minecraft.getInstance().getResourceManager(); - resourceManager.addReloadListener(this); + resourceManager.registerReloadListener(this); } @Override - protected Stream getResourceLocations() { + protected Stream getResourcesToLoad() { return DEModules.MODULE_REGISTRY.getKeys().stream(); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/TestRenderLayer.java b/src/main/java/com/brandon3055/draconicevolution/client/TestRenderLayer.java index 26a483874..9dd17bb6b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/TestRenderLayer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/TestRenderLayer.java @@ -30,14 +30,14 @@ public class TestRenderLayer extends LayerRenderer> entityRenderer) { super(entityRenderer); Random rand = new Random(); - model = entityRenderer.getEntityModel(); + model = entityRenderer.getModel(); List rendererList = null; //Pretty sure "AgeableModel" is actually "LivingModel" because it seems to apply to all living entities regardless of whether or not that entity is actually ageable @@ -46,12 +46,12 @@ public TestRenderLayer(IEntityRenderer> // rendererList = Lists.newArrayList(((AgeableModel)model).getBodyParts()); // rendererList = Lists.newArrayList(((AgeableModel) model).getHeadParts()); } else if (model instanceof SegmentedModel) { //Because parrots have to be special... - rendererList = Lists.newArrayList(((SegmentedModel) model).getParts()); + rendererList = Lists.newArrayList(((SegmentedModel) model).parts()); } if (rendererList != null && !rendererList.isEmpty()) { renderOn = rendererList.get(rand.nextInt(rendererList.size())); - if (!renderOn.cubeList.isEmpty()) { - box = renderOn.cubeList.get(rand.nextInt(renderOn.cubeList.size())); + if (!renderOn.cubes.isEmpty()) { + box = renderOn.cubes.get(rand.nextInt(renderOn.cubes.size())); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiCelestialManipulator.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiCelestialManipulator.java index c627fd4da..1b287e011 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiCelestialManipulator.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiCelestialManipulator.java @@ -30,8 +30,8 @@ public class GuiCelestialManipulator extends ModularGuiContainer container, PlayerInventory playerInventory, ITextComponent title) { super(container, playerInventory, title); - this.xSize = 180; - this.ySize = 200; + this.imageWidth = 180; + this.imageHeight = 200; this.player = playerInventory.player; this.tile = container.tile; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiDislocator.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiDislocator.java index 593716176..c9ea4957d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiDislocator.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiDislocator.java @@ -105,7 +105,7 @@ public void addElements(GuiElementManager manager) { TextFormatting.GOLD + "X: " + (int) getTarget().getX(), TextFormatting.GOLD + "Y: " + (int) getTarget().getY(), TextFormatting.GOLD + "Z: " + (int) getTarget().getY(), - TextFormatting.GOLD + (hasShiftDown() ? getTarget().getDimension().getLocation().toString() : getTarget().getDimension().getLocation().getPath())}); + TextFormatting.GOLD + (hasShiftDown() ? getTarget().getDimension().location().toString() : getTarget().getDimension().location().getPath())}); GuiLabel xLabel = infoBG.addChild(new GuiLabel().setAlignment(GuiAlign.LEFT).setShadowStateSupplier(() -> BCConfig.darkMode)) .setDisplaySupplier(() -> "X: " + (int) getTarget().getX()) @@ -132,7 +132,7 @@ public void addElements(GuiElementManager manager) { .setEnabledCallback(() -> selectedIndex >= 0 && selectedIndex < targetList.size()); GuiLabel dimLabel = infoBG.addChild(new GuiLabel().setAlignment(GuiAlign.LEFT).setShadowStateSupplier(() -> BCConfig.darkMode)) - .setDisplaySupplier(() -> getTarget().getDimension().getLocation().getPath()) + .setDisplaySupplier(() -> getTarget().getDimension().location().getPath()) .setPos(infoBG.xPos() + 2, zLabel.maxYPos() + 2) .setYSize(8) .setTextColGetter(GuiToolkit.Palette.Slot::text) @@ -247,7 +247,7 @@ private DislocatorTarget getTarget() { } private void addNew(int mode) { - String tempName = (int) player.getPosX() + " " + (int) player.getPosY() + " " + (int) player.getPosZ(); + String tempName = (int) player.getX() + " " + (int) player.getY() + " " + (int) player.getZ(); lastAdded = mode == 0 ? selectedIndex + 1 : mode == 1 ? 0 : targetList.size(); DraconicNetwork.sendDislocatorMessage(0, output -> output.writeByte(mode).writeVarInt(lastAdded).writeString(tempName)); } @@ -255,7 +255,7 @@ private void addNew(int mode) { private void detectChanges() { ItemStack stack = DislocatorAdvanced.findDislocator(player); if (stack.isEmpty() || !player.isAlive()) { - closeScreen(); + onClose(); return; } @@ -379,7 +379,7 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { //Teleport on right click if (mouseOver && button == 1) { DraconicNetwork.sendDislocatorMessage(8, e -> e.writeVarInt(index)); - closeScreen(); + onClose(); return true; } else if (mouseOver && button == 0 && !getTarget().isLocked()) { //Edit name on double click @@ -437,13 +437,13 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par RenderMaterial mat = DESprites.get("dislocator/slot"); RenderMaterial matSelect = DESprites.get("dislocator/slot_selected"); - IRenderTypeBuffer.Impl getter = minecraft.getRenderTypeBuffers().getBufferSource(); - drawSprite(getter.getBuffer(BCSprites.GUI_TEX_TYPE), xPos(), yPos(), (selected ? matSelect : mat).getSprite()); + IRenderTypeBuffer.Impl getter = minecraft.renderBuffers().bufferSource(); + drawSprite(getter.getBuffer(BCSprites.GUI_TEX_TYPE), xPos(), yPos(), (selected ? matSelect : mat).sprite()); if ((hovered && !selected)) { - getter.finish(); - drawSprite(getter.getBuffer(BCSprites.GUI_TEX_TYPE), xPos(), yPos(), matSelect.getSprite(), 0x30FFFFFF); + getter.endBatch(); + drawSprite(getter.getBuffer(BCSprites.GUI_TEX_TYPE), xPos(), yPos(), matSelect.sprite(), 0x30FFFFFF); } - getter.finish(); + getter.endBatch(); super.renderElement(minecraft, mouseX, mouseY, partialTicks); if (lock.isMouseOver(mouseX, mouseY) || (delete.isEnabled() && delete.isMouseOver(mouseX, mouseY))) { @@ -455,17 +455,17 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par public boolean renderOverlayLayer(Minecraft minecraft, int mouseX, int mouseY, float partialTicks) { if (dragging) { int yPos = MathHelper.clip(mouseY - 6, getParent().yPos(), getParent().maxYPos() - 12); - IRenderTypeBuffer.Impl getter = minecraft.getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = minecraft.renderBuffers().bufferSource(); TargetElement hovered = getHovered(mouseX, mouseY); if (hovered != null) { int y = mouseY > hovered.yPos() + (hovered.ySize() / 2) ? hovered.maxYPos() : hovered.yPos() - 1; drawColouredRect(getter, xPos(), y, xSize(), 3, 0x6000FF00); - getter.finish(); + getter.endBatch(); } - drawSprite(getter.getBuffer(BCSprites.GUI_TEX_TYPE), xPos(), yPos, DESprites.get("dislocator/slot_selected").getSprite(), 0x60FFFFFF); - getter.finish(); + drawSprite(getter.getBuffer(BCSprites.GUI_TEX_TYPE), xPos(), yPos, DESprites.get("dislocator/slot_selected").sprite(), 0x60FFFFFF); + getter.endBatch(); return true; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiDissEnchanter.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiDissEnchanter.java index a446325f6..21617e851 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiDissEnchanter.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiDissEnchanter.java @@ -21,8 +21,8 @@ public GuiDissEnchanter(ContainerDissEnchanter container, PlayerInventory player super(container, playerInventory, title); // this.tile = container.tile; this.player = playerInventory.player; - xSize = 175; - ySize = 142 + 70; + imageWidth = 175; + imageHeight = 142 + 70; } @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiEnergyCore.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiEnergyCore.java index d2cfdf761..953aca6f9 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiEnergyCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiEnergyCore.java @@ -52,8 +52,8 @@ public class GuiEnergyCore extends ModularGuiContainer container, PlayerInventory playerInventory, ITextComponent title) { super(container, playerInventory, title); this.tile = container.tile; - this.xSize = 180; - this.ySize = 200; + this.imageWidth = 180; + this.imageHeight = 200; this.player = playerInventory.player; dumbGui = true; } @@ -61,14 +61,14 @@ public GuiEnergyCore(ContainerBCTile container, PlayerInventory @Override public void addElements(GuiElementManager manager) { //TODO - container.inventorySlots.forEach(slot -> { - if (slot.slotNumber < 9) { - slot.xPos += 10; - slot.yPos += 174; + container.slots.forEach(slot -> { + if (slot.index < 9) { + slot.x += 10; + slot.y += 174; } else { - slot.xPos += 10; - slot.yPos += 98; + slot.x += 10; + slot.y += 98; } }); } @@ -78,14 +78,14 @@ public void addElements(GuiElementManager manager) { public void init(Minecraft mc, int width, int height) { super.init(mc, width, height); - addButton(activate = new GuiButtonAHeight(guiLeft + 9, guiTop + 99, 162, 12, "Activate-L", (b) -> tile.sendPacketToServer(output -> {}, 0))); - addButton(tierUp = new GuiButtonAHeight(guiLeft + 91, guiTop + 86, 80, 12, I18n.format("button.de.tierUp.txt"), (b) -> tile.sendPacketToServer(output -> {}, 1))); - addButton(tierDown = new GuiButtonAHeight(guiLeft + 9, guiTop + 86, 80, 12, I18n.format("button.de.tierDown.txt"), (b) -> tile.sendPacketToServer(output -> {}, 2))); - addButton(toggleGuide = new GuiButtonAHeight(guiLeft + 9, guiTop + 73, 162, 12, I18n.format("button.de.buildGuide.txt"), (b) -> tile.sendPacketToServer(output -> {}, 3))); - addButton(assembleCore = new GuiButtonAHeight(guiLeft + 9, guiTop + 99, 162, 12, I18n.format("button.de.assembleCore.txt"), (b) -> tile.sendPacketToServer(output -> {}, 4))); + addButton(activate = new GuiButtonAHeight(leftPos + 9, topPos + 99, 162, 12, "Activate-L", (b) -> tile.sendPacketToServer(output -> {}, 0))); + addButton(tierUp = new GuiButtonAHeight(leftPos + 91, topPos + 86, 80, 12, I18n.get("button.de.tierUp.txt"), (b) -> tile.sendPacketToServer(output -> {}, 1))); + addButton(tierDown = new GuiButtonAHeight(leftPos + 9, topPos + 86, 80, 12, I18n.get("button.de.tierDown.txt"), (b) -> tile.sendPacketToServer(output -> {}, 2))); + addButton(toggleGuide = new GuiButtonAHeight(leftPos + 9, topPos + 73, 162, 12, I18n.get("button.de.buildGuide.txt"), (b) -> tile.sendPacketToServer(output -> {}, 3))); + addButton(assembleCore = new GuiButtonAHeight(leftPos + 9, topPos + 99, 162, 12, I18n.get("button.de.assembleCore.txt"), (b) -> tile.sendPacketToServer(output -> {}, 4))); - addButton(layerMinus = new GuiButtonAHeight(guiLeft + 5, guiTop - 13, 70, 12, "Layer-", (b) -> layer(-1))); - addButton(layerPlus = new GuiButtonAHeight(guiLeft + 105, guiTop - 13, 70, 12, "Layer+", (b) -> layer(1))); + addButton(layerMinus = new GuiButtonAHeight(leftPos + 5, topPos - 13, 70, 12, "Layer-", (b) -> layer(-1))); + addButton(layerPlus = new GuiButtonAHeight(leftPos + 105, topPos - 13, 70, 12, "Layer+", (b) -> layer(1))); layerPlus.visible = tile.buildGuide.get(); layerMinus.visible = tile.buildGuide.get(); @@ -93,25 +93,25 @@ public void init(Minecraft mc, int width, int height) { } @Override - protected void drawGuiContainerBackgroundLayer(MatrixStack mStack, float partialTicks, int mouseX, int mouseY) { - GuiHelper.drawGuiBaseBackground(this, guiLeft, guiTop, xSize, ySize); - GuiHelper.drawPlayerSlots(this, guiLeft + (xSize / 2), guiTop + 115, true); - drawCenteredString(mStack, font, I18n.format("gui.de.energyStorageCore.name", tile.tier.get()), guiLeft + (xSize / 2), guiTop + 5, InfoHelper.GUI_TITLE); + protected void renderBg(MatrixStack mStack, float partialTicks, int mouseX, int mouseY) { + GuiHelper.drawGuiBaseBackground(this, leftPos, topPos, imageWidth, imageHeight); + GuiHelper.drawPlayerSlots(this, leftPos + (imageWidth / 2), topPos + 115, true); + drawCenteredString(mStack, font, I18n.get("gui.de.energyStorageCore.name", tile.tier.get()), leftPos + (imageWidth / 2), topPos + 5, InfoHelper.GUI_TITLE); if (tile.active.get()) { - GuiHelper.drawCenteredString(font, I18n.format("gui.de.capacity.txt"), guiLeft + xSize / 2, guiTop + 16, 0xFFAA00, true); - String capText = tile.tier.get() == 8 ? I18n.format("gui.de.almostInfinite.txt") : Utils.formatNumber(tile.getExtendedCapacity()); - GuiHelper.drawCenteredString(font, capText, guiLeft + xSize / 2, guiTop + 27, 0x555555, false); + GuiHelper.drawCenteredString(font, I18n.get("gui.de.capacity.txt"), leftPos + imageWidth / 2, topPos + 16, 0xFFAA00, true); + String capText = tile.tier.get() == 8 ? I18n.get("gui.de.almostInfinite.txt") : Utils.formatNumber(tile.getExtendedCapacity()); + GuiHelper.drawCenteredString(font, capText, leftPos + imageWidth / 2, topPos + 27, 0x555555, false); DecimalFormat energyValue = new DecimalFormat("###.###"); double percent = (double) tile.getExtendedStorage() / (double) tile.getExtendedCapacity() * 100D; - GuiHelper.drawCenteredString(font, I18n.format("info.bc.charge.txt"), guiLeft + xSize / 2, guiTop + 38, 0xFFAA00, true); - GuiHelper.drawCenteredString(font, Utils.formatNumber(tile.getExtendedStorage()) + " OP [" + energyValue.format(percent) + "%]", guiLeft + xSize / 2, guiTop + 49, 0x555555, false); + GuiHelper.drawCenteredString(font, I18n.get("info.bc.charge.txt"), leftPos + imageWidth / 2, topPos + 38, 0xFFAA00, true); + GuiHelper.drawCenteredString(font, Utils.formatNumber(tile.getExtendedStorage()) + " OP [" + energyValue.format(percent) + "%]", leftPos + imageWidth / 2, topPos + 49, 0x555555, false); int coreColour = tile.transferRate.get() > 0 ? 0x00FF00 : tile.transferRate.get() < 0 ? 0xFF0000 : 0x222222; String transfer = (tile.transferRate.get() > 0 ? "+" : tile.transferRate.get() < 0 ? "-" : "") + Utils.formatNumber(Math.abs(tile.transferRate.get())) + " OP/t"; - GuiHelper.drawCenteredString(font, I18n.format("gui.de.transfer.txt"), guiLeft + xSize / 2, guiTop + 59, 0xFFAA00, true); - GuiHelper.drawCenteredString(font, transfer, guiLeft + xSize / 2, guiTop + 70, coreColour, tile.transferRate.get() > 0); + GuiHelper.drawCenteredString(font, I18n.get("gui.de.transfer.txt"), leftPos + imageWidth / 2, topPos + 59, 0xFFAA00, true); + GuiHelper.drawCenteredString(font, transfer, leftPos + imageWidth / 2, topPos + 70, coreColour, tile.transferRate.get() > 0); if (tile.transferRate.get() != 0) { @@ -130,19 +130,19 @@ protected void drawGuiContainerBackgroundLayer(MatrixStack mStack, float partial time += (seconds % 60 < 10 ? "0" : "") + seconds % 60 + "." + (ticks % 20 < 10 ? "0" : "") + ticks % 20; } - GuiHelper.drawCenteredString(font, time, guiLeft + xSize / 2, guiTop + 70 + 10, 0x555555, false); + GuiHelper.drawCenteredString(font, time, leftPos + imageWidth / 2, topPos + 70 + 10, 0x555555, false); } } else { int stabColour = tile.stabilizersOK.get() ? 0x00FF00 : 0xFF0000; - String stabText = I18n.format("gui.de.stabilizers.txt") + ": " + (tile.stabilizersOK.get() ? I18n.format("gui.de.valid.txt") : I18n.format("gui.de.invalid.txt")); - GuiHelper.drawCenteredString(font, stabText, guiLeft + xSize / 2, guiTop + 18, stabColour, tile.stabilizersOK.get()); + String stabText = I18n.get("gui.de.stabilizers.txt") + ": " + (tile.stabilizersOK.get() ? I18n.get("gui.de.valid.txt") : I18n.get("gui.de.invalid.txt")); + GuiHelper.drawCenteredString(font, stabText, leftPos + imageWidth / 2, topPos + 18, stabColour, tile.stabilizersOK.get()); if (tile.tier.get() >= 5) { - GuiHelper.drawCenteredString(font, I18n.format("gui.de.advancedStabilizersRequired.txt"), guiLeft + xSize / 2, guiTop + 28, 0x777777, false); + GuiHelper.drawCenteredString(font, I18n.get("gui.de.advancedStabilizersRequired.txt"), leftPos + imageWidth / 2, topPos + 28, 0x777777, false); } int coreColour = tile.coreValid.get() ? 0x00FF00 : 0xFF0000; - String coreText = I18n.format("gui.de.core.txt") + ": " + (tile.coreValid.get() ? I18n.format("gui.de.valid.txt") : I18n.format("gui.de.invalid.txt")); - GuiHelper.drawCenteredString(font, coreText, guiLeft + xSize / 2, guiTop + 36, coreColour, tile.coreValid.get()); + String coreText = I18n.get("gui.de.core.txt") + ": " + (tile.coreValid.get() ? I18n.get("gui.de.valid.txt") : I18n.get("gui.de.invalid.txt")); + GuiHelper.drawCenteredString(font, coreText, leftPos + imageWidth / 2, topPos + 36, coreColour, tile.coreValid.get()); if (!tile.coreValid.get()) { // GuiHelper.drawCenteredSplitString(font, tile.invalidMessage.get(), guiLeft + xSize / 2, guiTop + 46, 180, coreColour, tile.coreValid.get()); } @@ -157,20 +157,20 @@ public void render(MatrixStack mStack, int mouseX, int mouseY, float partialTick if (tile.active.get()) { // GuiHelper.drawEnergyBar(this, guiLeft + 5, guiTop + 82, 170, true, tile.getExtendedStorage(), tile.getExtendedCapacity(), true, mouseX, mouseY); - if (GuiHelper.isInRect(guiLeft + 40, guiTop + 27, xSize - 80, 8, mouseX, mouseY)) { + if (GuiHelper.isInRect(leftPos + 40, topPos + 27, imageWidth - 80, 8, mouseX, mouseY)) { renderTooltip(mStack, new StringTextComponent(TextFormatting.GRAY + "[" + Utils.addCommas(tile.getExtendedCapacity()) + " OP]"), mouseX, mouseY); } - if (GuiHelper.isInRect(guiLeft + 40, guiTop + 48, xSize - 80, 8, mouseX, mouseY)) { + if (GuiHelper.isInRect(leftPos + 40, topPos + 48, imageWidth - 80, 8, mouseX, mouseY)) { renderTooltip(mStack, new StringTextComponent(TextFormatting.GRAY + "[" + Utils.addCommas(tile.getExtendedStorage()) + " OP]"), mouseX, mouseY); } } if (tile.buildGuide.get()) { - drawCenteredString(mStack, font, layer == -1 ? "All" : layer + "", guiLeft + (xSize / 2), guiTop - 10, 0xFFFFFF); + drawCenteredString(mStack, font, layer == -1 ? "All" : layer + "", leftPos + (imageWidth / 2), topPos - 10, 0xFFFFFF); } - this.renderHoveredTooltip(mStack, mouseX, mouseY); + this.renderTooltip(mStack, mouseX, mouseY); } @Override @@ -197,7 +197,7 @@ private void updateButtonStates() { activate.setMessage(new TranslationTextComponent("button.de.deactivate.txt")); } else { activate.setMessage(new TranslationTextComponent("button.de.activate.txt")); - toggleGuide.setMessage(new StringTextComponent(I18n.format("button.de.buildGuide.txt") + " " + (tile.buildGuide.get() ? I18n.format("gui.de.active.txt") : I18n.format("gui.de.inactive.txt")))); + toggleGuide.setMessage(new StringTextComponent(I18n.get("button.de.buildGuide.txt") + " " + (tile.buildGuide.get() ? I18n.get("gui.de.active.txt") : I18n.get("gui.de.inactive.txt")))); tierUp.active = tile.tier.get() < 8; tierDown.active = tile.tier.get() > 1; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiEnergyTransfuser.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiEnergyTransfuser.java index c5e79f453..d29f1be49 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiEnergyTransfuser.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiEnergyTransfuser.java @@ -32,6 +32,8 @@ import static com.brandon3055.brandonscore.client.gui.GuiToolkit.Palette.*; import static com.brandon3055.brandonscore.inventory.ContainerSlotLayout.SlotType.TILE_INV; +import com.brandon3055.brandonscore.client.gui.GuiToolkit.Palette.Ctrl; + /** * Created by brandon3055 on 12/12/2020. */ @@ -45,7 +47,7 @@ public class GuiEnergyTransfuser extends ModularGuiContainer container, PlayerInventory inv, ITextComponent title) { super(container, inv, title); this.tile = container.tile; - this.player = playerInventory.player; + this.player = inventory.player; } @Override @@ -102,7 +104,7 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par MatrixStack mStack = new MatrixStack(); mStack.translate(xPos() + (fi == 0 ? 5 : fi == 2 ? 7 : 4) , yPos() + 2, 0); mStack.scale(2, 2, 2); - fontRenderer.func_238422_b_(mStack, RenderTileEnergyTransfuser.TEXT[fi].func_241878_f(), 0, 0, tile.ioModes[fi].get().getColour()); + fontRenderer.draw(mStack, RenderTileEnergyTransfuser.TEXT[fi].getVisualOrderText(), 0, 0, tile.ioModes[fi].get().getColour()); } }.setPosAndSize(slot)); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiFusionCraftingCore.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiFusionCraftingCore.java index 08d7ad280..3422d5da3 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiFusionCraftingCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiFusionCraftingCore.java @@ -49,8 +49,8 @@ public GuiFusionCraftingCore(ContainerFusionCraftingCore container, PlayerInvent super(container, inv, titleIn); this.player = inv.player; this.tile = container.tile; - this.xSize = 180; - this.ySize = 200; + this.imageWidth = 180; + this.imageHeight = 200; } @Override @@ -66,13 +66,13 @@ public void addElements(GuiElementManager manager) { template.background.addChild(stackIcon = new GuiStackIcon(null).setRelPos(81, 47)); template.background.addChild(new GuiButton("Craft") - .setPosAndSize(width / 2 - 40, guiTop + 93, 80, 14) + .setPosAndSize(width / 2 - 40, topPos + 93, 80, 14) .setVanillaButtonRender(true) .setEnabledCallback(() -> currentRecipe != null && !tile.isCrafting.get()) .onPressed(() -> tile.sendPacketToServer(output -> {}, 0))); template.background.addChild(new GuiLabel() - .setPosAndSize(width / 2 - 40, guiTop + 93, 80, 14) + .setPosAndSize(width / 2 - 40, topPos + 93, 80, 14) .setAlignment(GuiAlign.CENTER) .setEnabledCallback(() -> currentRecipe != null && tile.isCrafting.get()) .setDisplaySupplier(() -> { @@ -95,11 +95,11 @@ public void addElements(GuiElementManager manager) { public void tick() { super.tick(); - currentRecipe = tile.getWorld().getRecipeManager().getRecipe(DraconicAPI.FUSION_RECIPE_TYPE, tile, tile.getWorld()).orElse(null); + currentRecipe = tile.getLevel().getRecipeManager().getRecipeFor(DraconicAPI.FUSION_RECIPE_TYPE, tile, tile.getLevel()).orElse(null); if (currentRecipe == null) { stackIcon.setStack(ItemStack.EMPTY); } else { - stackIcon.setStack(currentRecipe.getRecipeOutput()); + stackIcon.setStack(currentRecipe.getResultItem()); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiGenerator.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiGenerator.java index 2e1f035f5..09b45d83b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiGenerator.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiGenerator.java @@ -38,7 +38,7 @@ public class GuiGenerator extends ModularGuiContainer> { - private static final RenderType modelType = RenderType.getEntitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/generator/generator_2.png")); + private static final RenderType modelType = RenderType.entitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/generator/generator_2.png")); private static final CCModel storageModel; static { @@ -74,8 +74,8 @@ public void addElements(GuiElementManager manager) { //Mode Button GuiButton modeButton = toolkit.createButton("", template.background); - modeButton.setDisplaySupplier(() -> I18n.format(tile.mode.get().unlocalizedName())); - modeButton.setHoverText(element -> TextFormatting.BLUE + I18n.format(tile.mode.get().unlocalizedName() + ".info")); + modeButton.setDisplaySupplier(() -> I18n.get(tile.mode.get().unlocalizedName())); + modeButton.setHoverText(element -> TextFormatting.BLUE + I18n.get(tile.mode.get().unlocalizedName() + ".info")); modeButton.onButtonPressed((pressed) -> tile.mode.set(tile.mode.get().next(hasShiftDown() || pressed == 1))); modeButton.setSize(80, 14); modeButton.zOffset += 100; @@ -97,7 +97,7 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par ccrs.reset(); MatrixStack mStack = new MatrixStack(); - IRenderTypeBuffer.Impl getter = Minecraft.getInstance().getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = Minecraft.getInstance().renderBuffers().bufferSource(); ccrs.bind(modelType, getter); Matrix4 mat = new Matrix4(mStack); @@ -107,7 +107,7 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par mat.apply(new Rotation(150 * torad, 1, 0, 0).with(new Rotation(10 * torad, -my, 1 + mx, 0))); mat.scale(7.5); storageModel.render(ccrs, mat); - getter.finish(); + getter.endBatch(); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiGrinder.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiGrinder.java index ff7e67e1e..72390e841 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiGrinder.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiGrinder.java @@ -86,7 +86,7 @@ public void addElements(GuiElementManager manager) { PopoutDialog popOutDialog = new PopoutDialog(bg); popOutDialog.onReload(e -> e.setPosAndSize(bg)); popOutDialog.addChild(filterUI); - popOutDialog.addChild(new GuiLabel(I18n.format("gui_tkt.brandonscore.click_out_close")).onReload(e -> e.setYPos(bg.maxYPos()).setXPos(bg.xPos()).setSize(200, 12)).setAlignment(GuiAlign.LEFT)); + popOutDialog.addChild(new GuiLabel(I18n.get("gui_tkt.brandonscore.click_out_close")).onReload(e -> e.setYPos(bg.maxYPos()).setXPos(bg.xPos()).setSize(200, 12)).setAlignment(GuiAlign.LEFT)); GuiButton largeView = toolkit.createResizeButton(bg); largeView.setPos(filterBG.maxXPos() + 1, filterBG.maxYPos() - 12); @@ -109,8 +109,8 @@ public void addElements(GuiElementManager manager) { //UI Buttons GuiButton aoeSize = toolkit.createButton("", bg); - aoeSize.setHoverText(I18n.format("gui.draconicevolution.grinder.aoe.info")); - aoeSize.setDisplaySupplier(() -> I18n.format("gui.draconicevolution.grinder.aoe") + " " + getAOEString()); + aoeSize.setHoverText(I18n.get("gui.draconicevolution.grinder.aoe.info")); + aoeSize.setDisplaySupplier(() -> I18n.get("gui.draconicevolution.grinder.aoe") + " " + getAOEString()); aoeSize.onButtonPressed((bitton) -> modifyAOE(bitton == 1 || hasShiftDown())); aoeSize.setPos(template.powerSlot.xPos(), invBG.yPos()).setYSize(14).setMaxXPos(invBG.xPos() - 2, true); @@ -120,42 +120,42 @@ public void addElements(GuiElementManager manager) { showAOE.setPos(template.powerSlot.xPos(), aoeSize.maxYPos() + 2).setSize(aoeSize); GuiButton collectItems = toolkit.createButton("gui.draconicevolution.grinder.collect.items", bg); - collectItems.setHoverText(I18n.format("gui.draconicevolution.grinder.collect.items.info")); + collectItems.setHoverText(I18n.get("gui.draconicevolution.grinder.collect.items.info")); collectItems.onPressed(tile.collectItems::invert); collectItems.setToggleMode(true).setToggleStateSupplier(tile.collectItems::get); collectItems.setPos(template.powerSlot.xPos(), showAOE.maxYPos() + 2).setSize(aoeSize); GuiButton collectXP = toolkit.createButton("gui.draconicevolution.grinder.collect.xp", bg); - collectXP.setHoverText(I18n.format("gui.draconicevolution.grinder.collect.xp.info")); + collectXP.setHoverText(I18n.get("gui.draconicevolution.grinder.collect.xp.info")); collectXP.onPressed(tile.collectXP::invert); collectXP.setToggleMode(true).setToggleStateSupplier(tile.collectXP::get); collectXP.setPos(template.powerSlot.xPos(), collectItems.maxYPos() + 2).setSize(aoeSize); GuiButton claimXP = toolkit.createButton("gui.draconicevolution.grinder.claim.xp", bg); claimXP.onPressed(() -> tile.sendPacketToServer(output -> output.writeByte(0), 1)); - claimXP.setHoverText(I18n.format("gui.draconicevolution.grinder.claim.xp.info")); + claimXP.setHoverText(I18n.get("gui.draconicevolution.grinder.claim.xp.info")); claimXP.setPos(template.powerSlot.xPos(), collectXP.maxYPos() + 2).setSize(aoeSize).setYSize(14); GuiButton level = toolkit.createButton("1L", bg); level.onPressed(() -> tile.sendPacketToServer(output -> output.writeByte(1), 1)); level.setSize(claimXP.xSize() / 3, 12).setTrim(false); - level.setHoverText(I18n.format("gui.draconicevolution.grinder.claim.xp.level.info")); + level.setHoverText(I18n.get("gui.draconicevolution.grinder.claim.xp.level.info")); toolkit.placeOutside(level, claimXP, GuiToolkit.LayoutPos.BOTTOM_LEFT, level.xSize(), 0); GuiButton level5 = toolkit.createButton("5L", bg); level5.onPressed(() -> tile.sendPacketToServer(output -> output.writeByte(2), 1)); level5.setSize(claimXP.xSize() / 3, 12).setTrim(false); - level5.setHoverText(I18n.format("gui.draconicevolution.grinder.claim.xp.levels.info", "5")); + level5.setHoverText(I18n.get("gui.draconicevolution.grinder.claim.xp.levels.info", "5")); toolkit.placeOutside(level5, claimXP, GuiToolkit.LayoutPos.BOTTOM_CENTER, 0, 0); GuiButton level10 = toolkit.createButton("10L", bg); level10.onPressed(() -> tile.sendPacketToServer(output -> output.writeByte(3), 1)); level10.setSize(claimXP.xSize() / 3, 12).setTrim(false); - level10.setHoverText(I18n.format("gui.draconicevolution.grinder.claim.xp.levels.info", "10")); + level10.setHoverText(I18n.get("gui.draconicevolution.grinder.claim.xp.levels.info", "10")); toolkit.placeOutside(level10, claimXP, GuiToolkit.LayoutPos.BOTTOM_RIGHT, -level10.xSize(), 0); //Info Panel - template.infoPanel.addLabeledValue(GOLD + I18n.format("gui.draconicevolution.grinder.stored_xp"), 6, 11, () -> GRAY + "" + tile.storedXP.get() + " " + I18n.format("gui.draconicevolution.grinder.stored_xp.raw"), true); + template.infoPanel.addLabeledValue(GOLD + I18n.get("gui.draconicevolution.grinder.stored_xp"), 6, 11, () -> GRAY + "" + tile.storedXP.get() + " " + I18n.get("gui.draconicevolution.grinder.stored_xp.raw"), true); } private String getAOEString() { diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiReactor.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiReactor.java index decb0cb66..01991071a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiReactor.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/GuiReactor.java @@ -52,8 +52,8 @@ public GuiReactor(ContainerReactor container, PlayerInventory inv, ITextComponen super(container, inv, titleIn); this.player = player; this.tile = container.tile; - this.xSize = 248; - this.ySize = 222; + this.imageWidth = 248; + this.imageHeight = 222; } @Override @@ -61,65 +61,65 @@ public void addElements(GuiElementManager manager) { List> exclusions = new ArrayList<>(); //region Background Elements - manager.addChild(compPanel = new GuiBorderedRect(guiLeft + xSize, guiTop + 125, 0, 91)); + manager.addChild(compPanel = new GuiBorderedRect(leftPos + imageWidth, topPos + 125, 0, 91)); exclusions.add(compPanel); manager.setJeiExclusions(() -> exclusions); - GuiTexture background = manager.addChild(new GuiTexture(guiLeft, guiTop, 0, 0, xSize, ySize, new ResourceLocation("draconicevolution:" + DETextures.GUI_REACTOR)) { + GuiTexture background = manager.addChild(new GuiTexture(leftPos, topPos, 0, 0, imageWidth, imageHeight, new ResourceLocation("draconicevolution:" + DETextures.GUI_REACTOR)) { @Override public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float partialTicks) { super.renderElement(minecraft, mouseX, mouseY, partialTicks); - RenderTileReactorCore.renderGUI(tile, guiLeft + xSize / 2, guiTop + 70); + RenderTileReactorCore.renderGUI(tile, leftPos + imageWidth / 2, topPos + 70); } - }.onReload(e -> e.setPosAndSize(guiLeft, guiTop, xSize, ySize))); + }.onReload(e -> e.setPosAndSize(leftPos, topPos, imageWidth, imageHeight))); - background.addChild(new GuiBorderedRect(guiLeft + 12, guiTop + 138, 162, 77) + background.addChild(new GuiBorderedRect(leftPos + 12, topPos + 138, 162, 77) .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD) .setShadeColours(0xFF000000, 0xFFFFFFFF)); //endregion //region Status Labels - int y = guiTop + 140; - background.addChild(new GuiLabel(guiLeft + 10 + 5, y, 162, 8, I18n.format("gui.draconicevolution.reactor.core_volume")) + int y = topPos + 140; + background.addChild(new GuiLabel(leftPos + 10 + 5, y, 162, 8, I18n.get("gui.draconicevolution.reactor.core_volume")) .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setAlignment(GuiAlign.LEFT) .setShadow(false) .setTextColour(0x00C0FF) - .setHoverText(I18n.format("gui.draconicevolution.reactor.core_volume.info")) + .setHoverText(I18n.get("gui.draconicevolution.reactor.core_volume.info")) .setHoverTextDelay(2)); - background.addChild(new GuiLabel(guiLeft + 13 + 5, y += 8, 162, 8, "") + background.addChild(new GuiLabel(leftPos + 13 + 5, y += 8, 162, 8, "") .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setDisplaySupplier(() -> MathUtils.round((tile.reactableFuel.get() + tile.convertedFuel.get()) / 1296D, 100) + "m^3") .setAlignment(GuiAlign.LEFT) .setShadow(false) .setTextColour(0xB0B0B0)); - background.addChild(new GuiLabel(guiLeft + 10 + 5, y += 11, 162, 8, I18n.format("gui.draconicevolution.reactor.gen_rate")) + background.addChild(new GuiLabel(leftPos + 10 + 5, y += 11, 162, 8, I18n.get("gui.draconicevolution.reactor.gen_rate")) .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setAlignment(GuiAlign.LEFT) .setShadow(false) .setTextColour(0x00C0FF) - .setHoverText(I18n.format("gui.draconicevolution.reactor.gen_rate.info")) + .setHoverText(I18n.get("gui.draconicevolution.reactor.gen_rate.info")) .setHoverTextDelay(2)); - background.addChild(new GuiLabel(guiLeft + 13 + 5, y += 8, 162, 8, "") + background.addChild(new GuiLabel(leftPos + 13 + 5, y += 8, 162, 8, "") .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setDisplaySupplier(() -> Utils.addCommas((int) tile.generationRate.get()) + " OP/t") .setAlignment(GuiAlign.LEFT) .setShadow(false) .setTextColour(0xB0B0B0)); - background.addChild(new GuiLabel(guiLeft + 10 + 5, y += 11, 162, 8, I18n.format("gui.draconicevolution.reactor.field_rate")) + background.addChild(new GuiLabel(leftPos + 10 + 5, y += 11, 162, 8, I18n.get("gui.draconicevolution.reactor.field_rate")) .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setAlignment(GuiAlign.LEFT) .setShadow(false) .setTextColour(0x00C0FF) - .setHoverText(I18n.format("gui.draconicevolution.reactor.field_rate.info")) + .setHoverText(I18n.get("gui.draconicevolution.reactor.field_rate.info")) .setHoverTextDelay(2)); - background.addChild(new GuiLabel(guiLeft + 13 + 5, y += 8, 162, 8, "") + background.addChild(new GuiLabel(leftPos + 13 + 5, y += 8, 162, 8, "") .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setDisplaySupplier(() -> { double inputRate = tile.fieldDrain.get() / (1D - (tile.shieldCharge.get() / tile.maxShieldCharge.get())); @@ -129,22 +129,22 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par .setShadow(false) .setTextColour(0xB0B0B0)); - background.addChild(new GuiLabel(guiLeft + 10 + 5, y += 11, 162, 8, I18n.format("gui.draconicevolution.reactor.convert_rate")) + background.addChild(new GuiLabel(leftPos + 10 + 5, y += 11, 162, 8, I18n.get("gui.draconicevolution.reactor.convert_rate")) .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setAlignment(GuiAlign.LEFT) .setShadow(false) .setTextColour(0x00C0FF) - .setHoverText(I18n.format("gui.draconicevolution.reactor.convert_rate.info")) + .setHoverText(I18n.get("gui.draconicevolution.reactor.convert_rate.info")) .setHoverTextDelay(2)); - background.addChild(new GuiLabel(guiLeft + 13 + 5, y += 8, 162, 8, "") + background.addChild(new GuiLabel(leftPos + 13 + 5, y += 8, 162, 8, "") .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setDisplaySupplier(() -> Utils.addCommas((int) Math.round(tile.fuelUseRate.get() * 1000000D)) + "nb/t") .setAlignment(GuiAlign.LEFT) .setShadow(false) .setTextColour(0xB0B0B0)); - background.addChild(new GuiLabel(guiLeft + 13 + 5, guiTop + 139, 161, 77, I18n.format("gui.draconicevolution.reactor.go_boom_now")) + background.addChild(new GuiLabel(leftPos + 13 + 5, topPos + 139, 161, 77, I18n.get("gui.draconicevolution.reactor.go_boom_now")) .setEnabledCallback(() -> tile.reactorState.get() == TileReactorCore.ReactorState.BEYOND_HOPE) .setAlignment(GuiAlign.LEFT) .setWrap(true) @@ -160,35 +160,35 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par if (tile.reactorState.get() == TileReactorCore.ReactorState.COLD) { RenderSystem.color4f(1F, 1F, 1F, 1F); RenderMaterial mat = BCSprites.getThemed("slot"); - bindTexture(mat.getAtlasLocation()); - IRenderTypeBuffer.Impl getter = minecraft.getRenderTypeBuffers().getBufferSource(); - GuiHelper.drawPlayerSlots(GuiReactor.this, guiLeft + 43 - 31, guiTop + 139, false); + bindTexture(mat.atlasLocation()); + IRenderTypeBuffer.Impl getter = minecraft.renderBuffers().bufferSource(); + GuiHelper.drawPlayerSlots(GuiReactor.this, leftPos + 43 - 31, topPos + 139, false); for (int x = 0; x < 3; x++) { - drawSprite(mat.getBuffer(getter, BCSprites::makeType), guiLeft + 182 + (x * 18), guiTop + 148, 18, 18, mat.getSprite()); + drawSprite(mat.buffer(getter, BCSprites::makeType), leftPos + 182 + (x * 18), topPos + 148, 18, 18, mat.sprite()); } for (int x = 0; x < 3; x++) { - drawSprite(mat.getBuffer(getter, BCSprites::makeType), guiLeft + 182 + (x * 18), guiTop + 179, 18, 18, mat.getSprite()); + drawSprite(mat.buffer(getter, BCSprites::makeType), leftPos + 182 + (x * 18), topPos + 179, 18, 18, mat.sprite()); } - getter.finish(); + getter.endBatch(); } } }); - background.addChild(new GuiLabel(guiLeft, guiTop + 2, xSize, 12, I18n.format("gui.draconicevolution.reactor.title")) + background.addChild(new GuiLabel(leftPos, topPos + 2, imageWidth, 12, I18n.get("gui.draconicevolution.reactor.title")) .setAlignment(GuiAlign.CENTER) .setTextColour(InfoHelper.GUI_TITLE)); - background.addChild(new GuiLabel(guiLeft + 182, guiTop + 139, 54, 8, I18n.format("gui.draconicevolution.reactor.fuel_in")) + background.addChild(new GuiLabel(leftPos + 182, topPos + 139, 54, 8, I18n.get("gui.draconicevolution.reactor.fuel_in")) .setEnabledCallback(() -> tile.reactorState.get() == TileReactorCore.ReactorState.COLD) .setAlignment(GuiAlign.CENTER) .setTrim(false)); - background.addChild(new GuiLabel(guiLeft + 182, guiTop + 170, 54, 8, I18n.format("gui.draconicevolution.reactor.chaos_out")) + background.addChild(new GuiLabel(leftPos + 182, topPos + 170, 54, 8, I18n.get("gui.draconicevolution.reactor.chaos_out")) .setEnabledCallback(() -> tile.reactorState.get() == TileReactorCore.ReactorState.COLD) .setAlignment(GuiAlign.CENTER) .setTrim(false)); - background.addChild(new GuiLabel(guiLeft + 7, guiTop + 127, xSize, 12, "") + background.addChild(new GuiLabel(leftPos + 7, topPos + 127, imageWidth, 12, "") .setShadowStateSupplier(() -> tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setDisplaySupplier(() -> { String s = tile.reactorState.get().localize(); @@ -197,32 +197,32 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par } else if (tile.reactorState.get() == TileReactorCore.ReactorState.BEYOND_HOPE) { s = TextFormatting.DARK_RED + "--" + s + "--"; } - return TextFormatting.GOLD + I18n.format("gui.draconicevolution.reactor.status") + ": " + s; + return TextFormatting.GOLD + I18n.get("gui.draconicevolution.reactor.status") + ": " + s; }).setAlignment(GuiAlign.LEFT)); - background.addChild(new GuiTexturedPointer(guiLeft + 11, guiTop + 5, 14, 112, 0, 222, 5, ResourceHelperDE.getResource(DETextures.GUI_REACTOR)) { + background.addChild(new GuiTexturedPointer(leftPos + 11, topPos + 5, 14, 112, 0, 222, 5, ResourceHelperDE.getResource(DETextures.GUI_REACTOR)) { @Override public double getPos() { return MathHelper.clip(tile.temperature.get() / TileReactorCore.MAX_TEMPERATURE, 0, 1); } }.setHoverText(element -> getTempStats()).setHoverTextDelay(5)); - background.addChild(new GuiTexturedPointer(guiLeft + 35, guiTop + 5, 14, 112, 0, 222, 5, ResourceHelperDE.getResource(DETextures.GUI_REACTOR)) { + background.addChild(new GuiTexturedPointer(leftPos + 35, topPos + 5, 14, 112, 0, 222, 5, ResourceHelperDE.getResource(DETextures.GUI_REACTOR)) { @Override public double getPos() { return MathHelper.clip(tile.shieldCharge.get() / Math.max(tile.maxShieldCharge.get(), 1), 0, 1); } }.setHoverText(element -> getShieldStats()).setHoverTextDelay(5)); - background.addChild(new GuiTexturedPointer(guiLeft + 199, guiTop + 5, 14, 112, 0, 222, 5, ResourceHelperDE.getResource(DETextures.GUI_REACTOR)) { + background.addChild(new GuiTexturedPointer(leftPos + 199, topPos + 5, 14, 112, 0, 222, 5, ResourceHelperDE.getResource(DETextures.GUI_REACTOR)) { @Override public double getPos() { return MathHelper.clip(tile.saturation.get() / (double) Math.max(tile.maxSaturation.get(), 1), 0, 1); } }.setHoverText(element -> getSaturationStats()).setHoverTextDelay(5)); - background.addChild(new GuiTexturedPointer(guiLeft + 223, guiTop + 5, 14, 112, 0, 222, 5, ResourceHelperDE.getResource(DETextures.GUI_REACTOR)) { + background.addChild(new GuiTexturedPointer(leftPos + 223, topPos + 5, 14, 112, 0, 222, 5, ResourceHelperDE.getResource(DETextures.GUI_REACTOR)) { @Override public double getPos() { return MathHelper.clip(tile.convertedFuel.get() / Math.max(tile.reactableFuel.get() + tile.convertedFuel.get(), 1), 0, 1); @@ -233,45 +233,45 @@ public double getPos() { //region Buttons - background.addChild(new GuiButton(guiLeft + 182, guiTop + 199, 54, 14, I18n.format("gui.draconicevolution.reactor.charge")) + background.addChild(new GuiButton(leftPos + 182, topPos + 199, 54, 14, I18n.get("gui.draconicevolution.reactor.charge")) .setEnabledCallback(tile::canCharge) .setBorderColours(0xFF555555, 0xFF777777) .setFillColour(0xFF000000) .setTrim(false) .onPressed(tile::chargeReactor)); - background.addChild(new GuiButton(guiLeft + 182, guiTop + 182, 54, 14, I18n.format("gui.draconicevolution.reactor.activate")) + background.addChild(new GuiButton(leftPos + 182, topPos + 182, 54, 14, I18n.get("gui.draconicevolution.reactor.activate")) .setEnabledCallback(tile::canActivate) .setBorderColours(0xFF555555, 0xFF777777) .setFillColour(0xFF000000) .setTrim(false) .onPressed(tile::activateReactor)); - background.addChild(new GuiButton(guiLeft + 182, guiTop + 199, 54, 14, I18n.format("gui.draconicevolution.reactor.shutdown")) + background.addChild(new GuiButton(leftPos + 182, topPos + 199, 54, 14, I18n.get("gui.draconicevolution.reactor.shutdown")) .setEnabledCallback(tile::canStop) .setBorderColours(0xFF555555, 0xFF777777) .setFillColour(0xFF000000) .setTrim(false) .onPressed(tile::shutdownReactor)); - background.addChild(new GuiButton(guiLeft + 182, guiTop + 165, 54, 14, I18n.format("gui.draconicevolution.reactor.sas")) + background.addChild(new GuiButton(leftPos + 182, topPos + 165, 54, 14, I18n.get("gui.draconicevolution.reactor.sas")) .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setBorderColours(0xFF555555, 0xFF777777) .setRectFillColourGetter((hovering, disabled) -> tile.failSafeMode.get() ? 0xFF4040FF : 0xFF000000) .setTrim(false) .onPressed(tile::toggleFailSafe) - .setHoverText(I18n.format("gui.draconicevolution.reactor.sas.info"))); + .setHoverText(I18n.get("gui.draconicevolution.reactor.sas.info"))); - background.addChild(new GuiButton(guiLeft + 182, guiTop + 138, 54, 24, I18n.format("gui.draconicevolution.reactor.rs_mode").replaceAll("\\\\n", "\n")) + background.addChild(new GuiButton(leftPos + 182, topPos + 138, 54, 24, I18n.get("gui.draconicevolution.reactor.rs_mode").replaceAll("\\\\n", "\n")) .setEnabledCallback(() -> tile.reactorState.get() != TileReactorCore.ReactorState.COLD && component != null && tile.reactorState.get() != TileReactorCore.ReactorState.BEYOND_HOPE) .setWrap(true) .setBorderColours(0xFF555555, 0xFF777777) .setFillColour(0xFF000000) .onPressed(() -> compPanelExtended = !compPanelExtended) .setInsets(5, 0, 5, 0) - .setHoverText(I18n.format("gui.draconicevolution.reactor.rs_mode.info"))); + .setHoverText(I18n.get("gui.draconicevolution.reactor.rs_mode.info"))); - background.addChild(new GuiLabel(guiLeft + 175, guiTop + 138, 68, 80, "ETE") + background.addChild(new GuiLabel(leftPos + 175, topPos + 138, 68, 80, "ETE") .setEnabledCallback(() -> tile.reactorState.get() == TileReactorCore.ReactorState.BEYOND_HOPE) .setDisplaySupplier(() -> "Estimated\nTime\nUntil\nDetonation\n\n" + TextFormatting.UNDERLINE + (tile.explosionCountdown.get() >= 0 ? (tile.explosionCountdown.get() / 20) + "s" : "Calculating..")) .setWrap(true) @@ -281,7 +281,7 @@ public double getPos() { y = 0; for (RSMode mode : RSMode.values()) { - background.addChild(new GuiButton(guiLeft + xSize + 2, guiTop + 127 + y, 66, 10, I18n.format("gui.draconicevolution.reactor.rs_mode_" + mode.name().toLowerCase())) + background.addChild(new GuiButton(leftPos + imageWidth + 2, topPos + 127 + y, 66, 10, I18n.get("gui.draconicevolution.reactor.rs_mode_" + mode.name().toLowerCase())) .setEnabledCallback(() -> compPanelAnim == 1 && component != null) .setRectFillColourGetter((hovering, disabled) -> { if (component != null && component.rsMode.get() == mode) { @@ -314,14 +314,14 @@ public double getPos() { public List getTempStats() { List list = new ArrayList<>(); - list.add(I18n.format("gui.draconicevolution.reactor.reaction_temp")); + list.add(I18n.get("gui.draconicevolution.reactor.reaction_temp")); list.add(MathUtils.round(tile.temperature.get(), 10) + "C"); return list; } public List getShieldStats() { List list = new ArrayList<>(); - list.add(I18n.format("gui.draconicevolution.reactor.field_strength")); + list.add(I18n.get("gui.draconicevolution.reactor.field_strength")); if (tile.maxShieldCharge.get() > 0) { list.add(MathUtils.round(tile.shieldCharge.get() / tile.maxShieldCharge.get() * 100D, 100D) + "%"); } @@ -331,7 +331,7 @@ public List getShieldStats() { public List getSaturationStats() { List list = new ArrayList<>(); - list.add(I18n.format("gui.draconicevolution.reactor.energy_saturation")); + list.add(I18n.get("gui.draconicevolution.reactor.energy_saturation")); if (tile.maxSaturation.get() > 0) { list.add(MathUtils.round((double) tile.saturation.get() / (double) tile.maxSaturation.get() * 100D, 100D) + "%"); } @@ -341,7 +341,7 @@ public List getSaturationStats() { public List getFuelStats() { List list = new ArrayList<>(); - list.add(I18n.format("gui.draconicevolution.reactor.fuel_conversion")); + list.add(I18n.get("gui.draconicevolution.reactor.fuel_conversion")); if (tile.reactableFuel.get() + tile.convertedFuel.get() > 0) { list.add(MathUtils.round(tile.convertedFuel.get() / (tile.reactableFuel.get() + tile.convertedFuel.get()) * 100D, 100D) + "%"); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/ModuleGridRenderer.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/ModuleGridRenderer.java index fd8141aa5..497cb80de 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/ModuleGridRenderer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/ModuleGridRenderer.java @@ -41,10 +41,10 @@ * Created by brandon3055 on 26/4/20. */ public class ModuleGridRenderer extends GuiElement { - private static final RenderType moduleType = RenderType.makeType("module_type", DefaultVertexFormats.POSITION_TEX, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(ModuleSpriteUploader.LOCATION_MODULE_TEXTURE, false, false)) - .transparency(RenderState.TRANSLUCENT_TRANSPARENCY) - .build(false) + private static final RenderType moduleType = RenderType.create("module_type", DefaultVertexFormats.POSITION_TEX, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(ModuleSpriteUploader.LOCATION_MODULE_TEXTURE, false, false)) + .setTransparencyState(RenderState.TRANSLUCENT_TRANSPARENCY) + .createCompositeState(false) ); private ModuleGrid grid; @@ -67,7 +67,7 @@ public ModuleGridRenderer(ModuleGrid grid, PlayerInventory player) { @Override public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float partialTicks) { super.renderElement(minecraft, mouseX, mouseY, partialTicks); - IRenderTypeBuffer.Impl getter = minecraft.getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = minecraft.renderBuffers().bufferSource(); int light = ThemedElements.getBgLight(); int dark = ThemedElements.getBgDark(); @@ -84,13 +84,13 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par renderCell(getter, xPos, yPos, s, x, y, mouseX, mouseY, GuiHelper.isInRect(xPos, yPos, s, s, mouseX, mouseY), partialTicks); } } - getter.finish(); + getter.endBatch(); } @Override public boolean renderOverlayLayer(Minecraft minecraft, int mouseX, int mouseY, float partialTicks) { if (isMouseOver(mouseX, mouseY)) { - if (player.getItemStack().isEmpty()) { + if (player.getCarried().isEmpty()) { renderCellOverlay(mouseX, mouseY); } else if (lastError != null) { drawHoveringTextString(Collections.singletonList(lastError.getString()), mouseX, mouseY, fontRenderer); @@ -141,15 +141,15 @@ public boolean renderStackOverride(ItemStack stack, int x, int y, String altText int cs = grid.getCellSize(); int mw = module.getProperties().getWidth() * cs; int mh = module.getProperties().getHeight() * cs; - IRenderTypeBuffer.Impl getter = Minecraft.getInstance().getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = Minecraft.getInstance().renderBuffers().bufferSource(); drawModule(getter, x - (mw / 2), y - (mh / 2), module); - getter.finish(); + getter.endBatch(); if (stack.getCount() > 1 || altText != null) { zOffset += 250; FontRenderer font = stack.getItem().getFontRenderer(stack); if (font == null) font = fontRenderer; String s = altText == null ? String.valueOf(stack.getCount()) : altText; - font.drawStringWithShadow(new MatrixStack(), s, (float) (x - font.getStringWidth(s)) + (mw / 2F) - 1, (float) (y - font.FONT_HEIGHT) + (mh / 2F), 0xffffff); + font.drawShadow(new MatrixStack(), s, (float) (x - font.width(s)) + (mw / 2F) - 1, (float) (y - font.lineHeight) + (mh / 2F), 0xffffff); zOffset -= 250; } return true; @@ -163,19 +163,19 @@ public boolean mouseClicked(double mouseX, double mouseY, int button) { canDrop = false; lastError = null; if (isMouseOver(mouseX, mouseY)) { - InputMappings.Input mouseKey = InputMappings.Type.MOUSE.getOrMakeInput(button); - boolean pickBlock = mc.gameSettings.keyBindPickBlock.isActiveAndMatches(mouseKey); + InputMappings.Input mouseKey = InputMappings.Type.MOUSE.getOrCreate(button); + boolean pickBlock = mc.options.keyPickItem.isActiveAndMatches(mouseKey); ModuleGrid.GridPos cell = getCellAtPos(mouseX, mouseY, true); - long i = Util.milliTime(); + long i = Util.getMillis(); //Double click pickup wont track the cell you click doubleClick = i - lastClickTime < 250L && lastClickButton == button && getCellAtPos(mouseX, mouseY, false).equals(lastClickPos); if ((button == 0 || pickBlock) && cell.isValidCell()) { - if (player.getItemStack().isEmpty()) { + if (player.getCarried().isEmpty()) { if (pickBlock) { handleGridClick(cell, button, ClickType.CLONE); //Creative Clone } else { - boolean shiftClick = (InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), 340) || InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), 344)); + boolean shiftClick = (InputMappings.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), 340) || InputMappings.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), 344)); ClickType clicktype = ClickType.PICKUP; if (shiftClick) { clicktype = ClickType.QUICK_MOVE; @@ -228,7 +228,7 @@ private ModuleGrid.GridPos getCellAtPos(double xPos, double yPos, boolean withPl int cs = grid.getCellSize(); int x = (int) ((xPos - xPos()) / cs); int y = (int) ((yPos - yPos()) / cs); - Module module = ModuleItem.getModule(player.getItemStack()); + Module module = ModuleItem.getModule(player.getCarried()); if (module != null && withPlaceOffset) { int mw = module.getProperties().getWidth() * cs; int mh = module.getProperties().getHeight() * cs; @@ -248,14 +248,14 @@ private void drawModule(IRenderTypeBuffer getter, int x, int y, Module module drawBorderedRect(getter, x, y, mw, mh, 1, 0, mixColours(colour, 0x20202000, true)); if (module.getProperties().getTechLevel() == TechLevel.CHAOTIC) { - IVertexBuilder builder = getter.getBuffer(RenderType.getGlint()); + IVertexBuilder builder = getter.getBuffer(RenderType.glint()); float zLevel = getRenderZLevel(); - builder.pos(x, y + mh, zLevel).tex(0, ((float) mh / mw) / 64F).endVertex(); - builder.pos(x + mw, y + mh, zLevel).tex(((float) mw / mh) / 64F, ((float) mh / mw) / 64F).endVertex(); - builder.pos(x + mw, y, zLevel).tex(((float) mw / mh) / 64F, 0).endVertex(); - builder.pos(x, y, zLevel).tex(0, 0).endVertex(); + builder.vertex(x, y + mh, zLevel).uv(0, ((float) mh / mw) / 64F).endVertex(); + builder.vertex(x + mw, y + mh, zLevel).uv(((float) mw / mh) / 64F, ((float) mh / mw) / 64F).endVertex(); + builder.vertex(x + mw, y, zLevel).uv(((float) mw / mh) / 64F, 0).endVertex(); + builder.vertex(x, y, zLevel).uv(0, 0).endVertex(); if (getter instanceof IRenderTypeBuffer.Impl) { - ((IRenderTypeBuffer.Impl) getter).finish(); + ((IRenderTypeBuffer.Impl) getter).endBatch(); } } @@ -275,10 +275,10 @@ private void drawModule(IRenderTypeBuffer getter, int x, int y, Module module private void bufferSprite(IVertexBuilder builder, TextureAtlasSprite sprite, double x, double y, double width, double height) { //@formatter:off - builder.pos(x, y + height, zOffset).tex(sprite.getMinU(), sprite.getMaxV()).endVertex(); - builder.pos(x + width, y + height, zOffset).tex(sprite.getMaxU(), sprite.getMaxV()).endVertex(); - builder.pos(x + width, y, zOffset).tex(sprite.getMaxU(), sprite.getMinV()).endVertex(); - builder.pos(x, y, zOffset).tex(sprite.getMinU(), sprite.getMinV()).endVertex(); + builder.vertex(x, y + height, zOffset).uv(sprite.getU0(), sprite.getV1()).endVertex(); + builder.vertex(x + width, y + height, zOffset).uv(sprite.getU1(), sprite.getV1()).endVertex(); + builder.vertex(x + width, y, zOffset).uv(sprite.getU1(), sprite.getV0()).endVertex(); + builder.vertex(x, y, zOffset).uv(sprite.getU0(), sprite.getV0()).endVertex(); //@formatter:on } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/WhatsBrokenGui.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/WhatsBrokenGui.java index fcc70f09e..7201f0f35 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/WhatsBrokenGui.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/WhatsBrokenGui.java @@ -60,7 +60,7 @@ public void addElements(GuiElementManager manager) { label.setAlignment(GuiAlign.LEFT); label.setXSize(xSize() - 10); label.setWrap(true); - label.setYSize(font.getWordWrappedHeight(line, xSize() - 12)); + label.setYSize(font.wordWrapHeight(line, xSize() - 12)); label.setXPos(guiLeft() + 5); label.setYPos(last == null ? temp.title.maxYPos() + 5 : last.maxYPos() + 3); last = label; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/GuiModularItem.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/GuiModularItem.java index 7ff71aafa..bae45ce6e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/GuiModularItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/GuiModularItem.java @@ -72,19 +72,19 @@ public void addElements(GuiElementManager manager) { infoPanel = template.infoPanel; infoPanel.setExpandedHolder(infoExpanded); - gridRenderer = new ModuleGridRenderer(container.getGrid(), playerInventory); + gridRenderer = new ModuleGridRenderer(container.getGrid(), inventory); gridRenderer.setYPos(template.title.maxYPos() + 3); toolkit.centerX(gridRenderer, template.background, 0); template.background.addChild(gridRenderer); grid.setPosition(gridRenderer.xPos() - guiLeft(), gridRenderer.yPos() - guiTop()); grid.setOnGridChange(this::updateInfoPanel); - GuiElement equipModSlots = toolkit.createEquipModSlots(template.background, playerInventory.player, true, e -> e.getCapability(DECapabilities.MODULE_HOST_CAPABILITY).isPresent()); + GuiElement equipModSlots = toolkit.createEquipModSlots(template.background, inventory.player, true, e -> e.getCapability(DECapabilities.MODULE_HOST_CAPABILITY).isPresent()); equipModSlots.setPos(template.background.xPos() - 28, template.background.yPos()); GuiButton itemConfig = toolkit.createThemedIconButton(template.background, "item_config"); itemConfig.onReload(e -> e.setRelPos(template.background, 3, 3)); - itemConfig.setHoverText(I18n.format("gui.draconicevolution.modular_item.open_item_config.info")); + itemConfig.setHoverText(I18n.get("gui.draconicevolution.modular_item.open_item_config.info")); itemConfig.onPressed(() -> DraconicNetwork.sendOpenItemConfig(false)); updateInfoPanel(); @@ -97,9 +97,9 @@ private void updateInfoPanel() { StringBuilder gridName = new StringBuilder(); gridName.append(grid.getWidth()).append("x").append(grid.getHeight()); gridName.append(" "); - gridName.append(techLevel.getDisplayName().copyRaw().mergeStyle(techLevel.getTextColour()).getString()); + gridName.append(techLevel.getDisplayName().plainCopy().withStyle(techLevel.getTextColour()).getString()); gridName.append(" "); - gridName.append(I18n.format("gui.draconicevolution.modular_item.module_grid")); + gridName.append(I18n.get("gui.draconicevolution.modular_item.module_grid")); infoPanel.addDynamicLabel(gridName::toString, 12); Map nameStatMap = new LinkedHashMap<>(); @@ -112,25 +112,25 @@ private void updateInfoPanel() { } @Override - public void drawItemStack(ItemStack stack, int x, int y, String altText) { + public void renderFloatingItem(ItemStack stack, int x, int y, String altText) { if (gridRenderer.renderStackOverride(stack, x, y, altText)) { return; } - super.drawItemStack(stack, x, y, altText); + super.renderFloatingItem(stack, x, y, altText); } @Override protected void drawSlotOverlay(Slot slot, boolean occluded) { - if (slot.getHasStack() && slot.getStack().getCapability(DECapabilities.MODULE_HOST_CAPABILITY).isPresent()) { - int y = slot.yPos; - int x = slot.xPos; + if (slot.hasItem() && slot.getItem().getCapability(DECapabilities.MODULE_HOST_CAPABILITY).isPresent()) { + int y = slot.y; + int x = slot.x; int light = 0xFFfbe555; int dark = 0xFFf45905; - IRenderTypeBuffer.Impl getter = minecraft.getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = minecraft.renderBuffers().bufferSource(); GuiHelper.drawShadedRect(getter.getBuffer(GuiHelper.TRANS_TYPE), x - 1, y - 1, 18, 18, 1, 0, dark, light, GuiElement.midColour(light, dark), 0); - if (slot.getStack() == container.hostStack) { + if (slot.getItem() == container.hostStack) { // RenderSystem.colorMask(true, true, true, false); // GuiHelper.drawGradientRect(x, y, x + 16, y + 16, 0x80FF0000, 0x80FF0000, 1F, 300); // RenderSystem.colorMask(true, true, true, true); @@ -139,7 +139,7 @@ protected void drawSlotOverlay(Slot slot, boolean occluded) { GuiHelper.drawBorderedRect(getter.getBuffer(GuiHelper.TRANS_TYPE), x, y, 16, 16, 1, 0x50FF0000, 0xFFFF0000, 0); } - getter.finish(); + getter.endBatch(); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/GuiConfigurableItem.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/GuiConfigurableItem.java index 994311557..7c2a1780e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/GuiConfigurableItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/GuiConfigurableItem.java @@ -95,15 +95,15 @@ public GuiConfigurableItem(ContainerConfigurableItem container, PlayerInventory @Override protected void drawSlotOverlay(Slot slot, boolean occluded) { - ItemStack stack = slot.getStack(); + ItemStack stack = slot.getItem(); if (!stack.isEmpty()) { stack.getCapability(DECapabilities.PROPERTY_PROVIDER_CAPABILITY).ifPresent(provider -> { - int y = slot.yPos; - int x = slot.xPos; + int y = slot.y; + int x = slot.x; int light = 0xFFfbe555; int dark = 0xFFf45905; - IRenderTypeBuffer.Impl getter = minecraft.getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = minecraft.renderBuffers().bufferSource(); setZLevel(mainUI.displayZLevel); GuiHelper.drawShadedRect(getter.getBuffer(GuiHelper.TRANS_TYPE), x - 1, y - 1, 18, 18, 1, 0, dark, light, GuiElement.midColour(light, dark), mainUI.getRenderZLevel()); @@ -120,7 +120,7 @@ protected void drawSlotOverlay(Slot slot, boolean occluded) { .filter(e -> e.data.getPropIfApplicable(provider) != null) .forEach(e -> e.render(x, y)); } - getter.finish(); + getter.endBatch(); }); } } @@ -148,11 +148,11 @@ public void addElements(GuiElementManager manager) { title = toolkit.createHeading("", mainUI, false); title.setDisplaySupplier(() -> { - if (advancedUI || container.getLastStack().isEmpty()) return I18n.format("gui.draconicevolution.item_config.name"); + if (advancedUI || container.getLastStack().isEmpty()) return I18n.get("gui.draconicevolution.item_config.name"); else { - String name = container.getLastStack().getDisplayName().getString(); - String prefix = I18n.format("gui.draconicevolution.item_config.configure") + " "; - if (font.getStringWidth(prefix + name) > (themeButton.xPos() - toggleAdvanced.maxXPos()) - 22) { + String name = container.getLastStack().getHoverName().getString(); + String prefix = I18n.get("gui.draconicevolution.item_config.configure") + " "; + if (font.width(prefix + name) > (themeButton.xPos() - toggleAdvanced.maxXPos()) - 22) { return name; } return prefix + name; @@ -165,17 +165,17 @@ public void addElements(GuiElementManager manager) { GuiButton hideButton = toolkit.createResizeButton(mainUI); hideButton.setEnabledCallback(() -> advancedUI); hideButton.onPressed(() -> hideUI = !hideUI); - hideButton.setHoverText(I18n.format("gui.draconicevolution.item_config.toggle_hidden.info")); + hideButton.setHoverText(I18n.get("gui.draconicevolution.item_config.toggle_hidden.info")); hideButton.onReload(() -> hideButton.setPos(themeButton.xPos() - 12, mainUI.yPos() + 3)); toggleAdvanced = toolkit.createAdvancedButton(mainUI); toggleAdvanced.onPressed(this::toggleAdvanced); - toggleAdvanced.setHoverText(I18n.format("gui.draconicevolution.item_config.toggle_advanced.info")); + toggleAdvanced.setHoverText(I18n.get("gui.draconicevolution.item_config.toggle_advanced.info")); toggleAdvanced.onReload(() -> toggleAdvanced.setPos(mainUI.xPos() + 3, mainUI.yPos() + 3)); playerSlots = toolkit.createPlayerSlots(mainUI, false, true, true); - GuiElement equipModSlots = toolkit.createEquipModSlots(mainUI, playerInventory.player, true, e -> e.getCapability(PROPERTY_PROVIDER_CAPABILITY).isPresent()); + GuiElement equipModSlots = toolkit.createEquipModSlots(mainUI, inventory.player, true, e -> e.getCapability(PROPERTY_PROVIDER_CAPABILITY).isPresent()); equipModSlots.setPos(mainUI.xPos() - 28, mainUI.yPos()); simpleViewList = createPropertyList(); @@ -187,7 +187,7 @@ public void addElements(GuiElementManager manager) { simpleViewList.setInsetScrollBars(true); mainUI.addChild(simpleViewList); - GuiLabel getStarted = new GuiLabel(I18n.format("gui.draconicevolution.item_config.select_item_to_get_started")); + GuiLabel getStarted = new GuiLabel(I18n.get("gui.draconicevolution.item_config.select_item_to_get_started")); getStarted.onReload(e -> e.setPosAndSize(0, mainUI.yPos() - 20, width, 8)); getStarted.setEnabledCallback(() -> (advancedUI && propertyContainers.isEmpty()) || (!advancedUI && simpleViewList.getScrollingElements().isEmpty())); mainUI.addChild(getStarted); @@ -197,7 +197,7 @@ public void addElements(GuiElementManager manager) { GuiButton modulesSmall = toolkit.createThemedIconButton(mainUI, "grid_small"); modulesSmall.onReload(() -> modulesSmall.setPos(hideButton.isEnabled() ? hideButton.xPos() - 12 : themeButton.xPos() - 12, mainUI.yPos() + 3)); // modulesSmall.setEnabledCallback(() -> hideUI); - modulesSmall.setHoverText(I18n.format("gui.draconicevolution.item_config.open_modules.info")); + modulesSmall.setHoverText(I18n.get("gui.draconicevolution.item_config.open_modules.info")); modulesSmall.onPressed(this::openModulesGui); // I think the small one looks better regardless @@ -214,8 +214,8 @@ public void addElements(GuiElementManager manager) { } private void openModulesGui() { - minecraft.player.closeScreen(); - onClose(); + minecraft.player.closeContainer(); + removed(); DraconicNetwork.sendOpenModuleConfig(); } @@ -228,14 +228,14 @@ private void addAdvancedUIElements(GuiElementManager manager) { deleteZone = new GuiTexture(16, 16, () -> BCSprites.get("delete")); deleteZone.setEnabledCallback(() -> advancedUI && configUiEnableDeleteZone); deleteZone.setYPos(0).setXPosMod(() -> advancedContainer.maxXPos() - 16); - deleteZone.setHoverText(I18n.format("gui.draconicevolution.item_config.delete_zone.info")); + deleteZone.setHoverText(I18n.get("gui.draconicevolution.item_config.delete_zone.info")); GuiToolkit.addHoverHighlight(deleteZone, 0, 0, true); advancedContainer.addChild(deleteZone); GuiButton addGroup = toolkit.createIconButton(advancedContainer, 16, BCSprites.getter("new_group")); GuiToolkit.addHoverHighlight(addGroup, 0, 0, true); addGroup.setEnabledCallback(() -> advancedUI && configUiEnableAddGroupButton); - addGroup.setHoverText(I18n.format("gui.draconicevolution.item_config.add_group.info")); + addGroup.setHoverText(I18n.get("gui.draconicevolution.item_config.add_group.info")); addGroup.onReload(e -> e.setMaxXPos(width, false).setYPos(deleteZone.isEnabled() ? deleteZone.maxYPos() + 1 : 0)); addGroup.onPressed(() -> { PropertyContainer newGroup = new PropertyContainer(this, true); @@ -292,15 +292,15 @@ private void createOptionsButton() { GuiButton optionsButton = toolkit.createThemedIconButton(mainUI, "gear"); optionsButton.setPos(toggleAdvanced.maxXPos(), toggleAdvanced.yPos()); - optionsButton.setHoverText(I18n.format("gui.draconicevolution.item_config.options")); + optionsButton.setHoverText(I18n.get("gui.draconicevolution.item_config.options")); optionsButton.setEnabledCallback(() -> advancedUI); optionsButton.onPressed(() -> { StandardDialog, Supplier, Runnable>> dialog = new StandardDialog<>(advancedContainer); - dialog.setHeading(I18n.format("gui.draconicevolution.item_config.options")); - dialog.setDefaultRenderer(e -> I18n.format("gui.draconicevolution.item_config." + e.getA().get())); + dialog.setHeading(I18n.get("gui.draconicevolution.item_config.options")); + dialog.setDefaultRenderer(e -> I18n.get("gui.draconicevolution.item_config." + e.getA().get())); dialog.setToolTipHandler((key, element) -> { if (key.getB() != null) { - element.setHoverText(e -> I18n.format("gui.draconicevolution.item_config." + key.getB().get() + ".info")).setHoverTextDelay(20); + element.setHoverText(e -> I18n.get("gui.draconicevolution.item_config." + key.getB().get() + ".info")).setHoverTextDelay(20); } }); dialog.setSelectionListener(e -> e.getC().run()); @@ -353,7 +353,7 @@ private void onItemSelected(boolean initialLoad) { if (provider == null || provider.getProperties().isEmpty()) return; StandardDialog dialog = new StandardDialog<>(mainUI); - dialog.setHeading(I18n.format("gui.draconicevolution.item_config.click_and_drag_to_place")); + dialog.setHeading(I18n.get("gui.draconicevolution.item_config.click_and_drag_to_place")); dialog.setDefaultRenderer(e -> e.getDisplayName().getString()); dialog.addItems(provider.getProperties()); int x = (int) mainUI.getMouseX(); @@ -427,22 +427,22 @@ public void tick() { hoveredData = null; hoveredProvider = null; if (configUiEnableVisualization) { - Slot hovered = container.inventorySlots.stream() - .filter(slot -> isSlotSelected(slot, getMouseX(), getMouseY())) + Slot hovered = container.slots.stream() + .filter(slot -> isHovering(slot, getMouseX(), getMouseY())) .findAny() .orElse(null); if (hovered != null) { - LazyOptional optionalCap = hovered.getStack().getCapability(PROPERTY_PROVIDER_CAPABILITY); + LazyOptional optionalCap = hovered.getItem().getCapability(PROPERTY_PROVIDER_CAPABILITY); optionalCap.ifPresent(e -> hoveredProvider = e); } } if (!bindReleased) { InputMappings.Input bind = KeyBindings.toolConfig.getKey(); - if (!InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), bind.getKeyCode())) { + if (!InputMappings.isKeyDown(Minecraft.getInstance().getWindow().getWindow(), bind.getValue())) { if (closeOnRelease) { - minecraft.player.closeScreen(); - onClose(); + minecraft.player.closeContainer(); + removed(); } else { bindReleased = true; } @@ -456,9 +456,9 @@ public void tick() { } @Override - public void onClose() { + public void removed() { savePropertyConfig(); - super.onClose(); + super.removed(); } @Override @@ -479,7 +479,7 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { return true; } - InputMappings.Input input = InputMappings.getInputByCode(keyCode, scanCode); + InputMappings.Input input = InputMappings.getKey(keyCode, scanCode); List targets = propertyContainers.stream() .filter(e -> e.isPreset) .filter(e -> !e.boundKey.isEmpty()) @@ -495,8 +495,8 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } if (KeyBindings.toolConfig.getKey().equals(input)) { - minecraft.player.closeScreen(); - onClose(); + minecraft.player.closeContainer(); + removed(); return true; } @@ -505,10 +505,10 @@ public boolean keyPressed(int keyCode, int scanCode, int modifiers) { } public static void checkKeybinding(int keyCode, int scanCode) { - if (Minecraft.getInstance().currentScreen instanceof GuiConfigurableItem) { + if (Minecraft.getInstance().screen instanceof GuiConfigurableItem) { return; } - InputMappings.Input input = InputMappings.getInputByCode(keyCode, scanCode); + InputMappings.Input input = InputMappings.getKey(keyCode, scanCode); if (keyBindCache == null) { keyBindCache = new ArrayList<>(); CompoundNBT nbt = ItemConfigDataHandler.retrieveData(); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/ItemConfigDataHandler.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/ItemConfigDataHandler.java index e5e6d7b40..04fee2be0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/ItemConfigDataHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/ItemConfigDataHandler.java @@ -26,9 +26,9 @@ public class ItemConfigDataHandler { public static CompoundNBT retrieveData() { Minecraft mc = Minecraft.getInstance(); - if (mc.isSingleplayer()) { - ServerWorld world = mc.getIntegratedServer().getWorld(World.OVERWORLD); - SinglePlayerWorldData data = world.getSavedData().getOrCreate(SinglePlayerWorldData::new, "draconic_item_config"); + if (mc.hasSingleplayerServer()) { + ServerWorld world = mc.getSingleplayerServer().getLevel(World.OVERWORLD); + SinglePlayerWorldData data = world.getDataStorage().computeIfAbsent(SinglePlayerWorldData::new, "draconic_item_config"); return data.data; } else { Path file = Paths.get("./config/brandon3055/servers/" + DEConfig.serverID + ".dat"); @@ -46,11 +46,11 @@ public static CompoundNBT retrieveData() { public static void saveData(CompoundNBT nbt) { Minecraft mc = Minecraft.getInstance(); - if (mc.isSingleplayer()) { - ServerWorld world = mc.getIntegratedServer().getWorld(World.OVERWORLD); - SinglePlayerWorldData data = world.getSavedData().getOrCreate(SinglePlayerWorldData::new, "draconic_item_config"); + if (mc.hasSingleplayerServer()) { + ServerWorld world = mc.getSingleplayerServer().getLevel(World.OVERWORLD); + SinglePlayerWorldData data = world.getDataStorage().computeIfAbsent(SinglePlayerWorldData::new, "draconic_item_config"); data.data = nbt; - data.markDirty(); + data.setDirty(); } else { Path file = Paths.get("./config/brandon3055/servers/" + DEConfig.serverID + ".dat"); if (Files.notExists(file)) { @@ -77,12 +77,12 @@ public SinglePlayerWorldData() { } @Override - public void read(CompoundNBT nbt) { + public void load(CompoundNBT nbt) { data = nbt; } @Override - public CompoundNBT write(CompoundNBT compound) { + public CompoundNBT save(CompoundNBT compound) { return data; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyContainer.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyContainer.java index 4556c5e59..fb5a7faa9 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyContainer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyContainer.java @@ -100,15 +100,15 @@ public void addChildElements() { toggleHidden.setPos(xPos() + 2, yPos() + 2); toggleHidden.onPressed(this::toggleCollapsed); toggleHidden.setHoverText(e -> { - if (isPreset) return I18n.format("gui.draconicevolution.item_config.edit_preset.info"); - else return I18n.format("gui.draconicevolution.item_config." + (collapsed ? "expand_group" : "collapse_group") + ".info"); + if (isPreset) return I18n.get("gui.draconicevolution.item_config.edit_preset.info"); + else return I18n.get("gui.draconicevolution.item_config." + (collapsed ? "expand_group" : "collapse_group") + ".info"); }); GuiElement dragZone = gui.toolkit.createHighlightIcon(this, 8, 8, 2, 2, () -> { return Screen.hasShiftDown() ? BCSprites.getThemed("copy") : Screen.hasControlDown() ? BCSprites.get("delete") : BCSprites.getThemed("reposition"); }, e -> e.getHoverTime() > 0 || dragPos); dragZone.setHoverText(e -> { - return dragPos ? Collections.emptyList() : I18n.format(Screen.hasShiftDown() ? "gui.draconicevolution.item_config.copy_group.info" : Screen.hasControlDown() ? "gui.draconicevolution.item_config.delete_group.info" : "gui.draconicevolution.item_config.move_group.info"); + return dragPos ? Collections.emptyList() : I18n.get(Screen.hasShiftDown() ? "gui.draconicevolution.item_config.copy_group.info" : Screen.hasControlDown() ? "gui.draconicevolution.item_config.delete_group.info" : "gui.draconicevolution.item_config.move_group.info"); }); dragZone.setHoverTextDelay(10); dragZone.onReload(e -> e.setMaxXPos(maxXPos() - 2, false).setYPos(yPos() + 2)); @@ -116,14 +116,14 @@ public void addChildElements() { GuiButton togglePreset = gui.toolkit.createIconButton(this, 8, BCSprites.themedGetter("preset_icon")); GuiElement hoverRect = GuiToolkit.addHoverHighlight(togglePreset, 2, 2); - togglePreset.setHoverText(I18n.format("gui.draconicevolution.item_config.toggle_preset.info")); + togglePreset.setHoverText(I18n.get("gui.draconicevolution.item_config.toggle_preset.info")); togglePreset.onReload(e -> e.setMaxXPos(dragZone.xPos() - 2, false).setYPos(yPos() + 2)); togglePreset.onPressed(this::togglePreset); togglePreset.addChild(new ThemedElements.ShadedRect(true, false).setPosAndSize(hoverRect).setEnabledCallback(() -> isPreset)); GuiButton globalBinding = gui.toolkit.createIconButton(this, 8, BCSprites.themedGetter("global_key_icon")); hoverRect = GuiToolkit.addHoverHighlight(globalBinding, 2, 2); - globalBinding.setHoverText(I18n.format("gui.draconicevolution.item_config.toggle_global_binding.info")); + globalBinding.setHoverText(I18n.get("gui.draconicevolution.item_config.toggle_global_binding.info")); globalBinding.onReload(e -> e.setMaxXPos(togglePreset.xPos() - 2, false).setYPos(yPos() + 2)); globalBinding.onPressed(() -> { globalKeyBind = !globalKeyBind; @@ -146,12 +146,12 @@ public void addChildElements() { addChild(groupName); GuiButton bindButton = gui.toolkit.createBorderlessButton(this, ""); - bindButton.setHoverText(I18n.format("gui.draconicevolution.item_config.set_key_bind.info")); + bindButton.setHoverText(I18n.get("gui.draconicevolution.item_config.set_key_bind.info")); bindButton.setHoverTextDelay(10); bindButton.setYSize(12).setYPos(yPos() + 11); bindButton.onReload(e -> e .setText(getBindingName()) - .setXSize(Math.min((xSize() - 3) / 2, fontRenderer.getStringWidth(bindButton.getDisplayString()) + 6)) + .setXSize(Math.min((xSize() - 3) / 2, fontRenderer.width(bindButton.getDisplayString()) + 6)) .setMaxXPos(maxXPos() - 2, false) ); @@ -198,7 +198,7 @@ protected boolean keyPressed(int keyCode, int scanCode, int modifiers) { } KeyModifier activeMod = KeyModifier.getActiveModifier(); - InputMappings.Input input = InputMappings.getInputByCode(keyCode, scanCode); + InputMappings.Input input = InputMappings.getKey(keyCode, scanCode); boundKey = input.toString(); if (activeMod.matches(input)) { reloadElement(); @@ -216,10 +216,10 @@ protected boolean keyPressed(int keyCode, int scanCode, int modifiers) { } private String getBindingName() { - if (binding) return ">" + (boundKey.isEmpty() ? " " : I18n.format(InputMappings.getInputByName(boundKey).getTranslationKey())) + "<"; - else if (boundKey.isEmpty()) return I18n.format("gui.draconicevolution.item_config.not_bound"); - InputMappings.Input keyCode = InputMappings.getInputByName(boundKey); - return modifier.getCombinedName(keyCode, keyCode::func_237520_d_).getString(); + if (binding) return ">" + (boundKey.isEmpty() ? " " : I18n.get(InputMappings.getKey(boundKey).getName())) + "<"; + else if (boundKey.isEmpty()) return I18n.get("gui.draconicevolution.item_config.not_bound"); + InputMappings.Input keyCode = InputMappings.getKey(boundKey); + return modifier.getCombinedName(keyCode, keyCode::getDisplayName).getString(); } @Override @@ -298,7 +298,7 @@ private PropertyElement createElementFor(PropertyData data) { GuiButton dragZone = gui.toolkit.createIconButton(element, 8, 8, () -> Screen.hasShiftDown() ? BCSprites.get("dark/copy") : Screen.hasControlDown() ? BCSprites.get("delete") : BCSprites.get("reposition_gray")); element.dragZone = dragZone; - dragZone.setHoverText(e -> dragPos ? Collections.emptyList() : I18n.format(Screen.hasShiftDown() ? "gui.draconicevolution.item_config.copy_group.info" : Screen.hasControlDown() ? "gui.draconicevolution.item_config.delete_group.info" : "gui.draconicevolution.item_config.move_group.info")); + dragZone.setHoverText(e -> dragPos ? Collections.emptyList() : I18n.get(Screen.hasShiftDown() ? "gui.draconicevolution.item_config.copy_group.info" : Screen.hasControlDown() ? "gui.draconicevolution.item_config.delete_group.info" : "gui.draconicevolution.item_config.move_group.info")); dragZone.onReload(e -> e.setMaxXPos(element.maxXPos() - 1, false).setYPos(element.yPos() + 1)); if (!isGroup) { @@ -343,7 +343,7 @@ private void applyData(PropertyData data) { } public void inventoryUpdate() { - dataElementMap.keySet().forEach(e -> e.pullData(gui.getContainer(), !isPreset && !e.isGlobal)); + dataElementMap.keySet().forEach(e -> e.pullData(gui.getMenu(), !isPreset && !e.isGlobal)); } boolean isCopy = false; @@ -534,14 +534,14 @@ private int getTargetHeight() { public boolean renderOverlayLayer(Minecraft minecraft, int mouseX, int mouseY, float partialTicks) { if (dropTarget != null && timeSinceMove > 10) { if (!dropTarget.isGroup) { - drawHoveringTextString(Collections.singletonList(I18n.format("gui.draconicevolution.item_config.drop_create_group.info")), mouseX, mouseY, fontRenderer); + drawHoveringTextString(Collections.singletonList(I18n.get("gui.draconicevolution.item_config.drop_create_group.info")), mouseX, mouseY, fontRenderer); } else { - drawHoveringTextString(Collections.singletonList(I18n.format("gui.draconicevolution.item_config.add_to_group.info")), mouseX, mouseY, fontRenderer); + drawHoveringTextString(Collections.singletonList(I18n.get("gui.draconicevolution.item_config.add_to_group.info")), mouseX, mouseY, fontRenderer); } return true; } if (dragPos && gui.deleteZone.isMouseOver(mouseX, mouseY)) { - drawHoveringTextString(Collections.singletonList(I18n.format("gui.draconicevolution.item_config.drop_to_delete.info")), mouseX, mouseY, fontRenderer); + drawHoveringTextString(Collections.singletonList(I18n.get("gui.draconicevolution.item_config.drop_to_delete.info")), mouseX, mouseY, fontRenderer); } return super.renderOverlayLayer(minecraft, mouseX, mouseY, partialTicks); @@ -573,7 +573,7 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par animDistance = 0; } - IRenderTypeBuffer.Impl getter = minecraft.getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = minecraft.renderBuffers().bufferSource(); if (dropTarget != null) { double zLevel = getRenderZLevel() - 10; @@ -594,7 +594,7 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par int alpha = semiTrans ? 0x60000000 : 0xFF000000; RenderMaterial mat = BCSprites.getThemed("borderless_bg_dynamic_small"); - drawDynamicSprite(mat.getBuffer(getter, e -> BCSprites.GUI_TEX_TYPE), mat.getSprite(), xPos(), yPos(), xSize(), ySize(), 2, 2, 2, 2, 0xFFFFFF | alpha); + drawDynamicSprite(mat.buffer(getter, e -> BCSprites.GUI_TEX_TYPE), mat.sprite(), xPos(), yPos(), xSize(), ySize(), 2, 2, 2, 2, 0xFFFFFF | alpha); int contentPos = yPos() + 2 + 9; int contentHeight = ySize() - 4 - 9; @@ -608,16 +608,16 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par drawShadedRect(getter, xPos() + 2, contentPos, xSize() - 4, contentHeight, 1, 0, dark, light, midColour(light, dark)); // } if (dataList.isEmpty()) { - drawCustomString(fontRenderer, I18n.format("gui.draconicevolution.item_config.drop_prop_here"), xPos() + 3, yPos() + 13, xSize() - 6, GuiToolkit.Palette.BG.text(), CENTER, NORMAL, false, true, darkMode); + drawCustomString(fontRenderer, I18n.get("gui.draconicevolution.item_config.drop_prop_here"), xPos() + 3, yPos() + 13, xSize() - 6, GuiToolkit.Palette.BG.text(), CENTER, NORMAL, false, true, darkMode); } } - getter.finish(); + getter.endBatch(); super.renderElement(minecraft, mouseX, mouseY, partialTicks); if (dragPos && gui.deleteZone.isMouseOver(mouseX, mouseY)) { drawColouredRect(getter, xPos() + 1, yPos() + 1, xSize() - 2, ySize() - 3, 0x80FF8080); - getter.finish(); + getter.endBatch(); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyData.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyData.java index 4bf5311b9..20656ade7 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyData.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyData.java @@ -310,10 +310,10 @@ public PropertyData copy() { public CompoundNBT serialize() { CompoundNBT nbt = new CompoundNBT(); nbt.putByte("type", (byte) type.ordinal()); - nbt.putUniqueId("prov_id", providerID); + nbt.putUUID("prov_id", providerID); nbt.putString("prov_name", providerName); if (propUniqueName != null) { - nbt.putUniqueId("prop_name", propUniqueName); + nbt.putUUID("prop_name", propUniqueName); } else { nbt.putString("prop_name", propName); } @@ -356,17 +356,17 @@ public CompoundNBT serialize() { @Nullable public static PropertyData deserialize(CompoundNBT nbt) { - if (!nbt.hasUniqueId("prov_id") || !nbt.contains("prov_name") || (!nbt.contains("prop_name") && !nbt.hasUniqueId("prop_name")) || !nbt.contains("type")) { + if (!nbt.hasUUID("prov_id") || !nbt.contains("prov_name") || (!nbt.contains("prop_name") && !nbt.hasUUID("prop_name")) || !nbt.contains("type")) { return null; } PropertyData data = new PropertyData( - nbt.getUniqueId("prov_id"), + nbt.getUUID("prov_id"), nbt.getString("prov_name"), Type.getSafe(nbt.getByte("type"))); - if (nbt.hasUniqueId("prop_name")) { - data.propUniqueName = nbt.getUniqueId("prop_name"); + if (nbt.hasUUID("prop_name")) { + data.propUniqueName = nbt.getUUID("prop_name"); } else { data.propName = nbt.getString("prop_name"); } @@ -396,11 +396,11 @@ public static PropertyData deserialize(CompoundNBT nbt) { case ENUM: data.enumValueIndex = nbt.getInt("value"); if (nbt.contains("names")) { - data.enumValueOptions = nbt.getList("names", 3).stream().map(inbt -> ((IntNBT) inbt).getInt()).collect(Collectors.toList()); + data.enumValueOptions = nbt.getList("names", 3).stream().map(inbt -> ((IntNBT) inbt).getAsInt()).collect(Collectors.toList()); } if (nbt.contains("name_values")) { CompoundNBT nameValues = nbt.getCompound("name_values"); - data.enumDisplayValues = nameValues.keySet().stream().collect(Collectors.toMap(Utils::parseInt, nameValues::getString)); + data.enumDisplayValues = nameValues.getAllKeys().stream().collect(Collectors.toMap(Utils::parseInt, nameValues::getString)); } break; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyElement.java b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyElement.java index c7d231675..ad38493c4 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyElement.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/gui/modular/itemconfig/PropertyElement.java @@ -104,7 +104,7 @@ public void addChildElements() { if (advanced && data.propUniqueName == null) { globalButton = gui.toolkit.createIconButton(this, 8, 8, () -> BCSprites.get(data.isGlobal ? "dark/global_icon" : "dark/global_icon_inactive")); - globalButton.setHoverText(I18n.format("gui.draconicevolution.item_config.global.info")); + globalButton.setHoverText(I18n.get("gui.draconicevolution.item_config.global.info")); globalButton.addChild(new GuiBorderedRect().setShadeColours(0, 0xFF409040, 0xFFBBFFBB).setRelPos(globalButton, -1, -1).setSize(10, 10).setEnabledCallback(() -> data.isGlobal)); globalButton.onReload(e -> e.setPos(xPos() + 1, yPos() + 1)); globalButton.onPressed(() -> data.toggleGlobal()); @@ -165,7 +165,7 @@ private void valueClicked() { @Override public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float partialTicks) { - IRenderTypeBuffer.Impl getter = minecraft.getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = minecraft.renderBuffers().bufferSource(); drawColouredRect(getter, xPos(), yPos(), xSize(), ySize(), (index % 2 == 0 ? 0x202020 : 0x101010) | opacitySupplier.get()); if (advanced && gui.hoveredProvider != null && gui.hoveredProvider.getProviderName().equals(data.providerName)) { @@ -176,20 +176,20 @@ public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float par } } - getter.finish(); + getter.endBatch(); super.renderElement(minecraft, mouseX, mouseY, partialTicks); if (!data.isPropertyAvailable() && !data.isGlobal) { zOffset += 10; drawColouredRect(getter, xPos(), yPos(), xSize(), ySize(), 0x80FF8080); zOffset -= 10; - getter.finish(); + getter.endBatch(); } } @Override public boolean renderOverlayLayer(Minecraft minecraft, int mouseX, int mouseY, float partialTicks) { if (isMouseOver(mouseX, mouseY) && !data.isProviderAvailable && !data.isGlobal) { - drawHoveringText(Collections.singletonList(I18n.format("gui.draconicevolution.item_config.provider_unavailable")), mouseX, mouseY, fontRenderer, screenWidth, screenHeight); + drawHoveringText(Collections.singletonList(I18n.get("gui.draconicevolution.item_config.provider_unavailable")), mouseX, mouseY, fontRenderer, screenWidth, screenHeight); return true; } return super.renderOverlayLayer(minecraft, mouseX, mouseY, partialTicks); @@ -228,14 +228,14 @@ public boolean onUpdate() { private class SliderBackground extends GuiElement { @Override public void renderElement(Minecraft minecraft, int mouseX, int mouseY, float partialTicks) { - IRenderTypeBuffer.Impl getter = minecraft.getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = minecraft.renderBuffers().bufferSource(); if (isMouseOver(mouseX, mouseY) || slider.isDragging()) { drawColouredRect(getter, xPos(), yPos(), xSize(), ySize(), 0x60475b6a); } drawColouredRect(getter, xPos(), yPos() + (ySize() / 2F) - 1, xSize(), 2, 0xFF808080); drawColouredRect(getter, xPos(), yPos(), 1, ySize(), 0xFF808080); drawColouredRect(getter, xPos() + xSize() - 1, yPos(), 1, ySize(), 0xFF808080); - getter.finish(); + getter.endBatch(); super.renderElement(minecraft, mouseX, mouseY, partialTicks); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/handler/ClientEventHandler.java b/src/main/java/com/brandon3055/draconicevolution/client/handler/ClientEventHandler.java index 02e5e5e0e..c006485e0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/handler/ClientEventHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/handler/ClientEventHandler.java @@ -70,7 +70,7 @@ public class ClientEventHandler { public static Map> playerShieldStatus = new HashMap>(); public static ObfMapping splashTextMapping = new ObfMapping("net/minecraft/client/gui/GuiMainMenu", "field_110353_x"); - public static FloatBuffer winPos = GLAllocation.createDirectFloatBuffer(3); + public static FloatBuffer winPos = GLAllocation.createFloatBuffer(3); public static volatile int elapsedTicks; public static boolean playerHoldingWrench = false; public static Minecraft mc; @@ -97,7 +97,7 @@ public void renderGameOverlay(RenderGameOverlayEvent.Post event) { if (explosionPos != null && event.getType() == RenderGameOverlayEvent.ElementType.ALL) { mc = Minecraft.getInstance(); - updateExplosionAnimation(mc, mc.world, event.getWindow(), mc.getRenderPartialTicks()); + updateExplosionAnimation(mc, mc.level, event.getWindow(), mc.getFrameTime()); } } @@ -118,7 +118,7 @@ public void tickEnd(TickEvent.ClientTickEvent event) { PlayerEntity player = Minecraft.getInstance().player; if (player != null) { - playerHoldingWrench = (!player.getHeldItemMainhand().isEmpty() && player.getHeldItemMainhand().getItem() instanceof ICrystalBinder) || (!player.getHeldItemOffhand().isEmpty() && player.getHeldItemOffhand().getItem() instanceof ICrystalBinder); + playerHoldingWrench = (!player.getMainHandItem().isEmpty() && player.getMainHandItem().getItem() instanceof ICrystalBinder) || (!player.getOffhandItem().isEmpty() && player.getOffhandItem().getItem() instanceof ICrystalBinder); } } @@ -151,13 +151,13 @@ public void renderPlayerEvent(RenderPlayerEvent.Post event) { //RenderSystem.color(1F - p, 0F, p, i / 5F); if (viewingPlayer != event.getPlayer()) { - double translationXLT = event.getPlayer().prevPosX - viewingPlayer.prevPosX; - double translationYLT = event.getPlayer().prevPosY - viewingPlayer.prevPosY; - double translationZLT = event.getPlayer().prevPosZ - viewingPlayer.prevPosZ; + double translationXLT = event.getPlayer().xo - viewingPlayer.xo; + double translationYLT = event.getPlayer().yo - viewingPlayer.yo; + double translationZLT = event.getPlayer().zo - viewingPlayer.zo; - double translationX = translationXLT + (((event.getPlayer().getPosX() - viewingPlayer.getPosX()) - translationXLT) * event.getPartialRenderTick()); - double translationY = translationYLT + (((event.getPlayer().getPosY() - viewingPlayer.getPosY()) - translationYLT) * event.getPartialRenderTick()); - double translationZ = translationZLT + (((event.getPlayer().getPosZ() - viewingPlayer.getPosZ()) - translationZLT) * event.getPartialRenderTick()); + double translationX = translationXLT + (((event.getPlayer().getX() - viewingPlayer.getX()) - translationXLT) * event.getPartialRenderTick()); + double translationY = translationYLT + (((event.getPlayer().getY() - viewingPlayer.getY()) - translationYLT) * event.getPartialRenderTick()); + double translationZ = translationZLT + (((event.getPlayer().getZ() - viewingPlayer.getZ()) - translationZLT) * event.getPartialRenderTick()); RenderSystem.translated(translationX, translationY + 1.1, translationZ); } else { @@ -200,13 +200,13 @@ public void renderWorldEvent(RenderWorldLastEvent event) { return; } - MODELVIEW.set(event.getMatrixStack().getLast().getMatrix()); + MODELVIEW.set(event.getMatrixStack().last().pose()); PROJECTION.set(event.getProjectionMatrix()); ClientPlayerEntity player = Minecraft.getInstance().player; - World world = player.getEntityWorld(); - ItemStack stack = player.getHeldItemMainhand(); - ItemStack offStack = player.getHeldItemOffhand(); + World world = player.getCommandSenderWorld(); + ItemStack stack = player.getMainHandItem(); + ItemStack offStack = player.getOffhandItem(); Minecraft mc = Minecraft.getInstance(); float partialTicks = event.getPartialTicks(); @@ -224,20 +224,20 @@ public void renderWorldEvent(RenderWorldLastEvent event) { } - if (!(mc.objectMouseOver instanceof BlockRayTraceResult)) { + if (!(mc.hitResult instanceof BlockRayTraceResult)) { return; } if (!stack.isEmpty() && stack.getItem() == DEContent.creative_exchanger) { - List blocks = CreativeExchanger.getBlocksToReplace(stack, ((BlockRayTraceResult) mc.objectMouseOver).getPos(), world, ((BlockRayTraceResult) mc.objectMouseOver).getFace()); + List blocks = CreativeExchanger.getBlocksToReplace(stack, ((BlockRayTraceResult) mc.hitResult).getBlockPos(), world, ((BlockRayTraceResult) mc.hitResult).getDirection()); Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuilder(); - double offsetX = player.prevPosX + (player.getPosX() - player.prevPosX) * (double) partialTicks; - double offsetY = player.prevPosY + (player.getPosY() - player.prevPosY) * (double) partialTicks; - double offsetZ = player.prevPosZ + (player.getPosZ() - player.prevPosZ) * (double) partialTicks; + double offsetX = player.xo + (player.getX() - player.xo) * (double) partialTicks; + double offsetY = player.yo + (player.getY() - player.yo) * (double) partialTicks; + double offsetZ = player.zo + (player.getZ() - player.zo) * (double) partialTicks; RenderSystem.enableBlend(); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); @@ -246,7 +246,7 @@ public void renderWorldEvent(RenderWorldLastEvent event) { RenderSystem.disableTexture(); for (BlockPos block : blocks) { - if (world.isAirBlock(block)) { + if (world.isEmptyBlock(block)) { continue; } @@ -256,7 +256,7 @@ public void renderWorldEvent(RenderWorldLastEvent event) { Cuboid6 box = new Cuboid6(renderX, renderY, renderZ, renderX + 1, renderY + 1, renderZ + 1).expand(0.001, 0.001, 0.001); float colour = 1F; - if (!world.getBlockState(block.offset(((BlockRayTraceResult) mc.objectMouseOver).getFace())).getMaterial().isReplaceable()) { + if (!world.getBlockState(block.relative(((BlockRayTraceResult) mc.hitResult).getDirection())).getMaterial().isReplaceable()) { RenderSystem.disableDepthTest(); colour = 0.2F; } @@ -264,7 +264,7 @@ public void renderWorldEvent(RenderWorldLastEvent event) { // RenderUtils.drawCuboidOutline(box); - if (!world.getBlockState(block.offset(((BlockRayTraceResult) mc.objectMouseOver).getFace())).getMaterial().isReplaceable()) { + if (!world.getBlockState(block.relative(((BlockRayTraceResult) mc.hitResult).getDirection())).getMaterial().isReplaceable()) { RenderSystem.enableDepthTest(); } } @@ -277,7 +277,7 @@ public void renderWorldEvent(RenderWorldLastEvent event) { return; } - BlockPos pos = ((BlockRayTraceResult) mc.objectMouseOver).getPos(); + BlockPos pos = ((BlockRayTraceResult) mc.hitResult).getBlockPos(); BlockState state = world.getBlockState(pos); MiningToolBase tool = (MiningToolBase) stack.getItem(); @@ -291,13 +291,13 @@ public void renderWorldEvent(RenderWorldLastEvent event) { private void renderMiningAOE(World world, ItemStack stack, BlockPos pos, ClientPlayerEntity player, float partialTicks) { MiningToolBase tool = (MiningToolBase) stack.getItem(); Pair aoe = tool.getMiningArea(pos, player, tool.getDigAOE(stack), tool.getDigDepth(stack)); - List blocks = Lists.newArrayList(BlockPos.getAllInBoxMutable(aoe.key(), aoe.value())); + List blocks = Lists.newArrayList(BlockPos.betweenClosed(aoe.key(), aoe.value())); Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuilder(); - double offsetX = player.prevPosX + (player.getPosX() - player.prevPosX) * (double) partialTicks; - double offsetY = player.prevPosY + (player.getPosY() - player.prevPosY) * (double) partialTicks; - double offsetZ = player.prevPosZ + (player.getPosZ() - player.prevPosZ) * (double) partialTicks; + double offsetX = player.xo + (player.getX() - player.xo) * (double) partialTicks; + double offsetY = player.yo + (player.getY() - player.yo) * (double) partialTicks; + double offsetZ = player.zo + (player.getZ() - player.zo) * (double) partialTicks; RenderSystem.enableBlend(); RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO); @@ -320,7 +320,7 @@ private void renderMiningAOE(World world, ItemStack stack, BlockPos pos, ClientP double renderY = block.getY() - offsetY; double renderZ = block.getZ() - offsetZ; - AxisAlignedBB box = new AxisAlignedBB(renderX, renderY, renderZ, renderX + 1, renderY + 1, renderZ + 1).shrink(0.49D); + AxisAlignedBB box = new AxisAlignedBB(renderX, renderY, renderZ, renderX + 1, renderY + 1, renderZ + 1).deflate(0.49D); double rDist = Utils.getDistanceSq(pos.getX(), pos.getY(), pos.getZ(), block.getX(), block.getY(), block.getZ()); @@ -339,21 +339,21 @@ private void renderMiningAOE(World world, ItemStack stack, BlockPos pos, ClientP float b = 1F; - buffer.pos(box.minX, box.minY, box.minZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); - buffer.pos(box.maxX, box.maxY, box.maxZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); + buffer.vertex(box.minX, box.minY, box.minZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); + buffer.vertex(box.maxX, box.maxY, box.maxZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); - buffer.pos(box.maxX, box.minY, box.minZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); - buffer.pos(box.minX, box.maxY, box.maxZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); + buffer.vertex(box.maxX, box.minY, box.minZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); + buffer.vertex(box.minX, box.maxY, box.maxZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); - buffer.pos(box.minX, box.minY, box.maxZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); - buffer.pos(box.maxX, box.maxY, box.minZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); + buffer.vertex(box.minX, box.minY, box.maxZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); + buffer.vertex(box.maxX, box.maxY, box.minZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); - buffer.pos(box.maxX, box.minY, box.maxZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); - buffer.pos(box.minX, box.maxY, box.minZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); + buffer.vertex(box.maxX, box.minY, box.maxZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); + buffer.vertex(box.minX, box.maxY, box.minZ).color(r * colour, g * colour, b * colour, alpha).endVertex(); } - tessellator.draw(); + tessellator.end(); RenderSystem.enableDepthTest(); RenderSystem.enableTexture(); @@ -369,13 +369,13 @@ public static void triggerExplosionEffect(BlockPos pos) { ProcessHandlerClient.addProcess(new DelayedExecutor(5) { @Override public void execute(Object[] args) { - Minecraft.getInstance().worldRenderer.loadRenderers(); + Minecraft.getInstance().levelRenderer.allChanged(); } }); } private void updateExplosion() { - if (Minecraft.getInstance().isGamePaused()) { + if (Minecraft.getInstance().isPaused()) { return; } explosionTime++; @@ -397,23 +397,23 @@ private void updateExplosion() { // explosionAnimation = explosionTime * 0.01; } - public static final IntBuffer VIEWPORT = GLAllocation.createDirectByteBuffer(16 << 2).asIntBuffer(); + public static final IntBuffer VIEWPORT = GLAllocation.createByteBuffer(16 << 2).asIntBuffer(); private void updateExplosionAnimation(Minecraft mc, World world, MainWindow resolution, float partialTick) { //region TargetPoint Calculation GL11.glGetIntegerv(GL11.GL_VIEWPORT, VIEWPORT); - Entity entity = mc.getRenderViewEntity(); - float x = (float) (entity.prevPosX + (entity.getPosX() - entity.prevPosX) * (double) partialTick); - float y = (float) (entity.prevPosY + (entity.getPosY() - entity.prevPosY) * (double) partialTick); - float z = (float) (entity.prevPosZ + (entity.getPosZ() - entity.prevPosZ) * (double) partialTick); + Entity entity = mc.getCameraEntity(); + float x = (float) (entity.xo + (entity.getX() - entity.xo) * (double) partialTick); + float y = (float) (entity.yo + (entity.getY() - entity.yo) * (double) partialTick); + float z = (float) (entity.zo + (entity.getZ() - entity.zo) * (double) partialTick); Vector3 targetPos = Vector3.fromBlockPosCenter(explosionPos); targetPos.subtract(x, y, z); Vector3 winPos = gluProject(targetPos, MODELVIEW, PROJECTION, VIEWPORT); boolean behind = winPos.z > 1; - float screenX = behind ? -1 : (float) winPos.x / resolution.getWidth(); - float screenY = behind ? -1 : (float) winPos.y / resolution.getHeight(); + float screenX = behind ? -1 : (float) winPos.x / resolution.getScreenWidth(); + float screenY = behind ? -1 : (float) winPos.y / resolution.getScreenHeight(); //endregion @@ -426,17 +426,17 @@ private void updateExplosionAnimation(Minecraft mc, World world, MainWindow reso } else { alpha = (float) explosionAnimation + (partialTick * 0.2F); } - GuiHelper.drawColouredRect(0, 0, resolution.getScaledWidth(), resolution.getScaledHeight(), 0x00FFFFFF | (int) (alpha * 255F) << 24); + GuiHelper.drawColouredRect(0, 0, resolution.getGuiScaledWidth(), resolution.getGuiScaledHeight(), 0x00FFFFFF | (int) (alpha * 255F) << 24); } else { UniformCache uniforms = explosionShader.pushCache(); uniforms.glUniform2f("screenPos", screenX, screenY); uniforms.glUniform1f("intensity", (float) explosionAnimation); - uniforms.glUniform2f("screenSize", resolution.getWidth(), resolution.getHeight()); + uniforms.glUniform2f("screenSize", resolution.getScreenWidth(), resolution.getScreenHeight()); explosionShader.use(); explosionShader.popCache(uniforms); - GuiHelper.drawColouredRect(0, 0, resolution.getScaledWidth(), resolution.getScaledHeight(), 0xFFFFFFFF); + GuiHelper.drawColouredRect(0, 0, resolution.getGuiScaledWidth(), resolution.getGuiScaledHeight(), 0xFFFFFFFF); explosionShader.release(); } } @@ -447,28 +447,28 @@ private static Vector3 gluProject(Vector3 obj, Matrix4 modelMatrix, Matrix4 proj multMatrix(modelMatrix, o); multMatrix(projMatrix, o); - if (o.getW() == 0) { + if (o.w() == 0) { return Vector3.ZERO.copy(); } - o.setW((1.0F / o.getW()) * 0.5F); + o.setW((1.0F / o.w()) * 0.5F); - o.setX(o.getX() * o.getW() + 0.5F); - o.setY(o.getY() * o.getW() + 0.5F); - o.setZ(o.getZ() * o.getW() + 0.5F); + o.setX(o.x() * o.w() + 0.5F); + o.setY(o.y() * o.w() + 0.5F); + o.setZ(o.z() * o.w() + 0.5F); Vector3 winPos = new Vector3(); - winPos.z = o.getZ(); + winPos.z = o.z(); - winPos.x = o.getX() * viewport.get(viewport.position() + 2) + viewport.get(viewport.position() + 0); - winPos.y = o.getY() * viewport.get(viewport.position() + 3) + viewport.get(viewport.position() + 1); + winPos.x = o.x() * viewport.get(viewport.position() + 2) + viewport.get(viewport.position() + 0); + winPos.y = o.y() * viewport.get(viewport.position() + 3) + viewport.get(viewport.position() + 1); return winPos; } private static void multMatrix(Matrix4 mat, Vector4f vec) { - double x = mat.m00 * vec.getX() + mat.m01 * vec.getY() + mat.m02 * vec.getZ() + mat.m03 * vec.getW(); - double y = mat.m10 * vec.getX() + mat.m11 * vec.getY() + mat.m12 * vec.getZ() + mat.m13 * vec.getW(); - double z = mat.m20 * vec.getX() + mat.m21 * vec.getY() + mat.m22 * vec.getZ() + mat.m23 * vec.getW(); - double w = mat.m30 * vec.getX() + mat.m31 * vec.getY() + mat.m32 * vec.getZ() + mat.m33 * vec.getW(); + double x = mat.m00 * vec.x() + mat.m01 * vec.y() + mat.m02 * vec.z() + mat.m03 * vec.w(); + double y = mat.m10 * vec.x() + mat.m11 * vec.y() + mat.m12 * vec.z() + mat.m13 * vec.w(); + double z = mat.m20 * vec.x() + mat.m21 * vec.y() + mat.m22 * vec.z() + mat.m23 * vec.w(); + double w = mat.m30 * vec.x() + mat.m31 * vec.y() + mat.m32 * vec.z() + mat.m33 * vec.w(); vec.set((float) x, (float) y, (float) z, (float) w); } } \ No newline at end of file diff --git a/src/main/java/com/brandon3055/draconicevolution/client/handler/HudHandler.java b/src/main/java/com/brandon3055/draconicevolution/client/handler/HudHandler.java index 0da9f4f82..03292d7ac 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/handler/HudHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/handler/HudHandler.java @@ -54,15 +54,15 @@ public class HudHandler { public static void drawHUD(RenderGameOverlayEvent.Post event) { //LogHelper.info(event.getType()); Minecraft mc = Minecraft.getInstance(); - if (event.getType() != RenderGameOverlayEvent.ElementType.ALL || mc.gameSettings.showDebugInfo || mc.currentScreen instanceof ChatScreen) { + if (event.getType() != RenderGameOverlayEvent.ElementType.ALL || mc.options.renderDebug || mc.screen instanceof ChatScreen) { return; } // GlStateTracker.pushState(); RenderSystem.pushMatrix(); - width = mc.getMainWindow().getScaledWidth(); - height = mc.getMainWindow().getScaledHeight(); - FontRenderer fontRenderer = mc.fontRenderer; + width = mc.getWindow().getGuiScaledWidth(); + height = mc.getWindow().getGuiScaledHeight(); + FontRenderer fontRenderer = mc.font; if (DEOldConfig.hudSettings[10] == 1 && hudList != null && toolTipFadeOut > 0) { int x = (int) (((float) DEOldConfig.hudSettings[0] / 1000F) * (float) width); @@ -108,7 +108,7 @@ public static void clientTick() { hudList = new ArrayList(); - if (mc.currentScreen != null) { + if (mc.screen != null) { // if (mc.currentScreen instanceof GuiHudConfig) {//TODO Gui Stuff // hudList.add(I18n.format("info.de.hudDisplayConfigTxt1.txt")); // hudList.add(""); @@ -125,20 +125,20 @@ public static void clientTick() { if (traceResult instanceof BlockRayTraceResult) { if (traceResult != null) { - state = mc.world.getBlockState(((BlockRayTraceResult) traceResult).getPos()); + state = mc.level.getBlockState(((BlockRayTraceResult) traceResult).getBlockPos()); } if (state != null && state.getBlock() instanceof IHudDisplay) { - ((IHudDisplay) state.getBlock()).addDisplayData(null, mc.world, ((BlockRayTraceResult) traceResult).getPos(), hudList); + ((IHudDisplay) state.getBlock()).addDisplayData(null, mc.level, ((BlockRayTraceResult) traceResult).getBlockPos(), hudList); } else { - ItemStack stack = mc.player.getHeldItemMainhand(); + ItemStack stack = mc.player.getMainHandItem(); if (stack.isEmpty() || !(stack.getItem() instanceof IHudDisplay)) { - stack = mc.player.getHeldItemOffhand(); + stack = mc.player.getOffhandItem(); } if (!stack.isEmpty() && stack.getItem() instanceof IHudDisplay) { - ((IHudDisplay) stack.getItem()).addDisplayData(stack, mc.world, null, hudList); + ((IHudDisplay) stack.getItem()).addDisplayData(stack, mc.level, null, hudList); } } } @@ -205,7 +205,7 @@ private static void drawArmorHUD(MatrixStack mStack, int x, int y, boolean rotat if (DEOldConfig.hudSettings[9] == 1) { - FontRenderer fontRenderer = Minecraft.getInstance().fontRenderer; + FontRenderer fontRenderer = Minecraft.getInstance().font; RenderSystem.translated(x, y, 0); if (rotated) RenderSystem.rotatef(90, 0, 0, -1); RenderSystem.translated(-x, -y, 0); @@ -214,13 +214,13 @@ private static void drawArmorHUD(MatrixStack mStack, int x, int y, boolean rotat String energy = "OP: " + formatNumber(rfTotal); float fade = Math.min(armorStatsFadeOut, 1F); if (!rotated) { - fontRenderer.drawStringWithShadow(mStack, shield, x + 18, y + 74, ((int) (fade * 240F) + 0x10 << 24) | 0x00FFFFFF); - fontRenderer.drawStringWithShadow(mStack, energy, x + 18, y + 84, ((int) (fade * 240F) + 0x10 << 24) | 0x00FFFFFF); + fontRenderer.drawShadow(mStack, shield, x + 18, y + 74, ((int) (fade * 240F) + 0x10 << 24) | 0x00FFFFFF); + fontRenderer.drawShadow(mStack, energy, x + 18, y + 84, ((int) (fade * 240F) + 0x10 << 24) | 0x00FFFFFF); // fontRenderer.drawStringWithShadow(entropy, x + 18, y + 94, ((int) (fade * 240F) + 0x10 << 24) | 0x00FFFFFF); } else { - fontRenderer.drawString(mStack, shield, x - 52 - fontRenderer.getStringWidth(shield) / 2, y + 2, ((int) (fade * 240F) + 0x10 << 24) | 0x000000FF); + fontRenderer.draw(mStack, shield, x - 52 - fontRenderer.width(shield) / 2, y + 2, ((int) (fade * 240F) + 0x10 << 24) | 0x000000FF); // fontRenderer.drawStringWithShadow(entropy, x - fontRenderer.getStringWidth(entropy), y + 18, ((int) (fade * 240F) + 0x10 << 24) | 0x00FFFFFF); - fontRenderer.drawStringWithShadow(mStack, energy, x - 102, y + 18, ((int) (fade * 240F) + 0x10 << 24) | 0x00FFFFFF); + fontRenderer.drawShadow(mStack, energy, x - 102, y + 18, ((int) (fade * 240F) + 0x10 << 24) | 0x00FFFFFF); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/handler/StaffRenderEventHandler.java b/src/main/java/com/brandon3055/draconicevolution/client/handler/StaffRenderEventHandler.java index c51a89b0d..d40c5ac17 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/handler/StaffRenderEventHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/handler/StaffRenderEventHandler.java @@ -28,13 +28,13 @@ private static void renderHandEvent(RenderHandEvent event) { if (event.getHand() == Hand.MAIN_HAND && stack.getItem() instanceof ModularStaff) { event.setCanceled(true); Minecraft mc = Minecraft.getInstance(); - HandSide handside = mc.player.getPrimaryHand(); + HandSide handside = mc.player.getMainArm(); boolean rightHand = handside == HandSide.RIGHT; float swingProgress = event.getSwingProgress(); //Going to need something custom when float equippedProgress = 0 /* event.getEquipProgress() GET FUCKED RECHARGE ANIMATION!!!!*/; MatrixStack mStack = event.getMatrixStack(); - mStack.push(); + mStack.pushPose(); // float f5 = -0.4F * MathHelper.sin(MathHelper.sqrt(swingProgress) * (float)Math.PI); float f5 = -0.3F * MathHelper.sin(MathHelper.sqrt(swingProgress) * (float)Math.PI); //Shift Left @@ -47,8 +47,8 @@ private static void renderHandEvent(RenderHandEvent event) { mStack.translate((float)l * f5, f6, f10); transformSideFirstPerson(mStack, handside, equippedProgress); - mc.getFirstPersonRenderer().renderItemSide(mc.player, stack, rightHand ? ItemCameraTransforms.TransformType.FIRST_PERSON_RIGHT_HAND : ItemCameraTransforms.TransformType.FIRST_PERSON_LEFT_HAND, !rightHand, mStack, event.getBuffers(), event.getLight()); - mStack.pop(); + mc.getItemInHandRenderer().renderItem(mc.player, stack, rightHand ? ItemCameraTransforms.TransformType.FIRST_PERSON_RIGHT_HAND : ItemCameraTransforms.TransformType.FIRST_PERSON_LEFT_HAND, !rightHand, mStack, event.getBuffers(), event.getLight()); + mStack.popPose(); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/keybinding/KeyBindings.java b/src/main/java/com/brandon3055/draconicevolution/client/keybinding/KeyBindings.java index ac81eb0a1..d72149d06 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/keybinding/KeyBindings.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/keybinding/KeyBindings.java @@ -98,7 +98,7 @@ public boolean conflicts(IKeyConflictContext other) { } KeyBinding otherBind = ((CustomContext) other).binding.get(); - return otherBind.getKey().getKeyCode() == binding.get().getKey().getKeyCode() && otherBind.getKeyModifier() == binding.get().getKeyModifier(); + return otherBind.getKey().getValue() == binding.get().getKey().getValue() && otherBind.getKeyModifier() == binding.get().getKeyModifier(); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/keybinding/KeyInputHandler.java b/src/main/java/com/brandon3055/draconicevolution/client/keybinding/KeyInputHandler.java index cfd062978..c6c35f4b7 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/keybinding/KeyInputHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/keybinding/KeyInputHandler.java @@ -33,7 +33,7 @@ public void onKeyInput(InputEvent.KeyInputEvent event) { private void handlePlaceItemKey() { - RayTraceResult mop = Minecraft.getInstance().objectMouseOver; + RayTraceResult mop = Minecraft.getInstance().hitResult; if (mop != null && mop instanceof BlockRayTraceResult) { //TODO Packet stuff // DraconicEvolution.network.sendToServer(new PacketPlaceItem()); @@ -64,53 +64,53 @@ private void onInput(PlayerEntity player) { // if (KeyBindings.placeItem.isPressed()) { // handlePlaceItemKey(); // } - if (KeyBindings.toolConfig.isPressed()) { + if (KeyBindings.toolConfig.consumeClick()) { DraconicNetwork.sendOpenItemConfig(false); } // else if (KeyBindings.hudConfig.isPressed()) { //// Minecraft.getInstance().displayGuiScreen(new GuiHudConfig()); // // } - else if (KeyBindings.toolModules.isPressed()) { + else if (KeyBindings.toolModules.consumeClick()) { DraconicNetwork.sendOpenItemConfig(true); } // else if (KeyBindings.toolProfileChange.isPressed() && HandHelper.getMainFirst(player) != null) { //// PacketDispatcher.dispatchToolProfileChange(false); // } - else if (KeyBindings.toggleFlight.isPressed()) { - if (player.abilities.allowFlying) { - if (player.abilities.isFlying) { - player.abilities.isFlying = false; - player.sendPlayerAbilities(); + else if (KeyBindings.toggleFlight.consumeClick()) { + if (player.abilities.mayfly) { + if (player.abilities.flying) { + player.abilities.flying = false; + player.onUpdateAbilities(); } else { - player.abilities.isFlying = true; + player.abilities.flying = true; if (player.isOnGround()) { - player.setPosition(player.getPosX(), player.getPosY() + 0.05D, player.getPosZ()); - player.setMotion(player.getMotion().x, 0, player.getMotion().z); + player.setPos(player.getX(), player.getY() + 0.05D, player.getZ()); + player.setDeltaMovement(player.getDeltaMovement().x, 0, player.getDeltaMovement().z); } - player.sendPlayerAbilities(); + player.onUpdateAbilities(); } } } - else if (KeyBindings.toggleMagnet.isPressed()) { + else if (KeyBindings.toggleMagnet.consumeClick()) { DraconicNetwork.sendToggleMagnets(); } - else if (KeyBindings.dislocatorTeleport.isPressed()) { + else if (KeyBindings.dislocatorTeleport.consumeClick()) { DraconicNetwork.sendDislocatorMessage(11, output -> {}); } - else if (KeyBindings.dislocatorBlink.isPressed()) { + else if (KeyBindings.dislocatorBlink.consumeClick()) { DraconicNetwork.sendDislocatorMessage(12, output -> {}); } - else if (KeyBindings.dislocatorUp.isPressed()) { + else if (KeyBindings.dislocatorUp.consumeClick()) { DraconicNetwork.sendDislocatorMessage(13, output -> output.writeBoolean(false)); } - else if (KeyBindings.dislocatorDown.isPressed()) { + else if (KeyBindings.dislocatorDown.consumeClick()) { DraconicNetwork.sendDislocatorMessage(13, output -> output.writeBoolean(true)); } - else if (KeyBindings.dislocatorGui.isPressed()) { + else if (KeyBindings.dislocatorGui.consumeClick()) { ItemStack stack = DislocatorAdvanced.findDislocator(player); if (!stack.isEmpty()) { - Minecraft.getInstance().displayGuiScreen(new GuiDislocator(stack.getDisplayName(), player)); + Minecraft.getInstance().setScreen(new GuiDislocator(stack.getHoverName(), player)); } } // else if (KeyBindings.armorProfileChange.isPressed()) { diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelContributorWings.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelContributorWings.java index 550e68c9b..830f65905 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelContributorWings.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelContributorWings.java @@ -27,40 +27,40 @@ public class ModelContributorWings extends Model { public ModelContributorWings(Function renderTypeIn) { super(renderTypeIn); - this.textureWidth = 32; - this.textureHeight = 32; + this.texWidth = 32; + this.texHeight = 32; this.leftWingOuter = new ModelRenderer(this, 0, 18); this.leftWingOuter.mirror = true; - this.leftWingOuter.setRotationPoint(0.5F, 0.0F, 0.0F); + this.leftWingOuter.setPos(0.5F, 0.0F, 0.0F); // this.leftWingOuter.addBox(-0.5F, 0.5F, 0.0F, 15, 14, 0, 0.0F); // this.leftWingOuter.cubeList.add(new ModelBoxFace(leftWingOuter, leftWingOuter.textureOffsetX, leftWingOuter.textureOffsetY, -0.5F, 0.5F, 0.0F, 15, 14, 0, 5)); this.rightOuterStem = new ModelRenderer(this, 0, 2); - this.rightOuterStem.setRotationPoint(-12.5F, 0.0F, 0.0F); + this.rightOuterStem.setPos(-12.5F, 0.0F, 0.0F); this.rightOuterStem.addBox(-15.0F, -0.5F, -0.5F, 15, 1, 1, 0.0F); this.setRotateAngle(rightOuterStem, 0.0F, -0.6108652381980153F, 0.0F); this.leftWingInner = new ModelRenderer(this, 0, 4); - this.leftWingInner.setRotationPoint(0.0F, 0.0F, 0.0F); + this.leftWingInner.setPos(0.0F, 0.0F, 0.0F); // this.leftWingInner.addBox(-0.5F, 0.5F, 0.0F, 13, 14, 0, 0.0F); // this.leftWingInner.cubeList.add(new ModelBoxFace(leftWingInner, leftWingInner.textureOffsetX, leftWingInner.textureOffsetY, -0.5F, 0.5F, 0.0F, 13, 14, 0, 4)); this.rightWingInner = new ModelRenderer(this, 0, 4); this.rightWingInner.mirror = true; - this.rightWingInner.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rightWingInner.setPos(0.0F, 0.0F, 0.0F); // this.rightWingInner.addBox(-12.5F, 0.5F, 0.0F, 13, 14, 0, 0.0F); // this.rightWingInner.cubeList.add(new ModelBoxFace(rightWingInner, rightWingInner.textureOffsetX, rightWingInner.textureOffsetY, -12.5F, 0.5F, 0.0F, 13, 14, 0, 4)); this.rightWingOuter = new ModelRenderer(this, 0, 18); - this.rightWingOuter.setRotationPoint(-0.5F, 0.0F, 0.0F); + this.rightWingOuter.setPos(-0.5F, 0.0F, 0.0F); // this.rightWingOuter.addBox(-14.5F, 0.5F, 0.0F, 15, 14, 0, 0.0F); // this.rightWingOuter.cubeList.add(new ModelBoxFace(rightWingOuter, rightWingOuter.textureOffsetX, rightWingOuter.textureOffsetY, -14.5F, 0.5F, 0.0F, 15, 14, 0, 5)); this.leftBaseStem = new ModelRenderer(this, 0, 0); - this.leftBaseStem.setRotationPoint(0.5F, 1.0F, 2.0F); + this.leftBaseStem.setPos(0.5F, 1.0F, 2.0F); this.leftBaseStem.addBox(-0.5F, -0.5F, -0.5F, 13, 1, 1, 0.0F); this.setRotateAngle(leftBaseStem, 0.0F, -0.3490658503988659F, 0.0F); this.leftOuterStem = new ModelRenderer(this, 0, 2); - this.leftOuterStem.setRotationPoint(12.5F, 0.0F, 0.0F); + this.leftOuterStem.setPos(12.5F, 0.0F, 0.0F); this.leftOuterStem.addBox(0.0F, -0.5F, -0.5F, 15, 1, 1, 0.0F); this.setRotateAngle(leftOuterStem, 0.0F, 0.6108652381980153F, 0.0F); this.rightBaseStem = new ModelRenderer(this, 0, 0); - this.rightBaseStem.setRotationPoint(-0.5F, 1.0F, 2.0F); + this.rightBaseStem.setPos(-0.5F, 1.0F, 2.0F); this.rightBaseStem.addBox(-12.5F, -0.5F, -0.5F, 13, 1, 1, 0.0F); this.setRotateAngle(rightBaseStem, 0.0F, 0.3490658503988659F, 0.0F); this.leftOuterStem.addChild(this.leftWingOuter); @@ -113,7 +113,7 @@ public ModelContributorWings(Function renderTypeIn // } @Override - public void render(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { + public void renderToBuffer(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { } @@ -121,9 +121,9 @@ public void render(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packe * This is a helper function from Tabula to set the rotation of model parts */ public void setRotateAngle(ModelRenderer ModelRenderer, float x, float y, float z) { - ModelRenderer.rotateAngleX = x; - ModelRenderer.rotateAngleY = y; - ModelRenderer.rotateAngleZ = z; + ModelRenderer.xRot = x; + ModelRenderer.yRot = y; + ModelRenderer.zRot = z; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelGuardianCrystal.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelGuardianCrystal.java index 927780420..26b77a6a1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelGuardianCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelGuardianCrystal.java @@ -32,51 +32,51 @@ public class ModelGuardianCrystal extends Model { public ModelGuardianCrystal(Function renderTypeIn) { super(renderTypeIn); - this.textureWidth = 64; - this.textureHeight = 64; + this.texWidth = 64; + this.texHeight = 64; this.RingSegment3_1 = new ModelRenderer(this, 12, 38); - this.RingSegment3_1.setRotationPoint(0.0F, 0.0F, -10.0F); + this.RingSegment3_1.setPos(0.0F, 0.0F, -10.0F); this.RingSegment3_1.addBox(-1.0F, -1.0F, -2.0F, 2, 2, 4, 0.0F); this.setRotateAngle(RingSegment3_1, 0.0F, 1.5707963267948966F, 0.0F); this.RingSegment3 = new ModelRenderer(this, 12, 32); - this.RingSegment3.setRotationPoint(0.0F, 0.0F, -10.0F); + this.RingSegment3.setPos(0.0F, 0.0F, -10.0F); this.RingSegment3.addBox(-1.0F, -1.0F, -2.0F, 2, 2, 4, 0.0F); this.setRotateAngle(RingSegment3, 0.0F, 1.5707963267948966F, 0.0F); this.cube = new ModelRenderer(this, 32, 0); - this.cube.setRotationPoint(0.0F, 0.0F, 0.0F); + this.cube.setPos(0.0F, 0.0F, 0.0F); this.cube.addBox(-4.0F, -4.0F, -4.0F, 8, 8, 8, 0.0F); this.RingSegment2_1 = new ModelRenderer(this, 24, 38); - this.RingSegment2_1.setRotationPoint(-10.0F, 0.0F, 0.0F); + this.RingSegment2_1.setPos(-10.0F, 0.0F, 0.0F); this.RingSegment2_1.addBox(-1.0F, -1.0F, -2.0F, 2, 2, 4, 0.0F); this.ringBase2 = new ModelRenderer(this, 0, 0); - this.ringBase2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ringBase2.setPos(0.0F, 0.0F, 0.0F); this.ringBase2.addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, 0.0F); this.setRotateAngle(ringBase2, 0.0F, 0.7853981633974483F, 0.0F); this.base = new ModelRenderer(this, 0, 16); - this.base.setRotationPoint(0.0F, 0.0F, 0.0F); + this.base.setPos(0.0F, 0.0F, 0.0F); this.base.addBox(-6.0F, 0.0F, -6.0F, 12, 4, 12, 0.0F); this.ringBase1 = new ModelRenderer(this, 0, 0); - this.ringBase1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.ringBase1.setPos(0.0F, 0.0F, 0.0F); this.ringBase1.addBox(-0.5F, -0.5F, -0.5F, 1, 1, 1, 0.0F); this.RingSegment1 = new ModelRenderer(this, 0, 32); - this.RingSegment1.setRotationPoint(10.0F, 0.0F, 0.0F); + this.RingSegment1.setPos(10.0F, 0.0F, 0.0F); this.RingSegment1.addBox(-1.0F, -1.0F, -2.0F, 2, 2, 4, 0.0F); this.glass = new ModelRenderer(this, 0, 0); - this.glass.setRotationPoint(0.0F, 0.0F, 0.0F); + this.glass.setPos(0.0F, 0.0F, 0.0F); this.glass.addBox(-4.0F, -4.0F, -4.0F, 8, 8, 8, 0.0F); this.RingSegment4_1 = new ModelRenderer(this, 36, 38); - this.RingSegment4_1.setRotationPoint(0.0F, 0.0F, 10.0F); + this.RingSegment4_1.setPos(0.0F, 0.0F, 10.0F); this.RingSegment4_1.addBox(-1.0F, -1.0F, -2.0F, 2, 2, 4, 0.0F); this.setRotateAngle(RingSegment4_1, 0.0F, 1.5707963267948966F, 0.0F); this.RingSegment4 = new ModelRenderer(this, 36, 32); - this.RingSegment4.setRotationPoint(0.0F, 0.0F, 10.0F); + this.RingSegment4.setPos(0.0F, 0.0F, 10.0F); this.RingSegment4.addBox(-1.0F, -1.0F, -2.0F, 2, 2, 4, 0.0F); this.setRotateAngle(RingSegment4, 0.0F, 1.5707963267948966F, 0.0F); this.RingSegment2 = new ModelRenderer(this, 24, 32); - this.RingSegment2.setRotationPoint(-10.0F, 0.0F, 0.0F); + this.RingSegment2.setPos(-10.0F, 0.0F, 0.0F); this.RingSegment2.addBox(-1.0F, -1.0F, -2.0F, 2, 2, 4, 0.0F); this.RingSegment1_1 = new ModelRenderer(this, 0, 38); - this.RingSegment1_1.setRotationPoint(10.0F, 0.0F, 0.0F); + this.RingSegment1_1.setPos(10.0F, 0.0F, 0.0F); this.RingSegment1_1.addBox(-1.0F, -1.0F, -2.0F, 2, 2, 4, 0.0F); this.ringBase2.addChild(this.RingSegment3_1); this.ringBase1.addChild(this.RingSegment3); @@ -126,13 +126,13 @@ public ModelGuardianCrystal(Function renderTypeIn) * This is a helper function from Tabula to set the ROTATION of model parts */ public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; + modelRenderer.xRot = x; + modelRenderer.yRot = y; + modelRenderer.zRot = z; } @Override - public void render(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { + public void renderToBuffer(MatrixStack matrixStackIn, IVertexBuilder bufferIn, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelLargeECStabilizer.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelLargeECStabilizer.java index 3bd6a4780..3158ae0c9 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelLargeECStabilizer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelLargeECStabilizer.java @@ -78,244 +78,244 @@ public class ModelLargeECStabilizer extends Model { public ModelLargeECStabilizer() { super(null); - this.textureWidth = 32; - this.textureHeight = 16; + this.texWidth = 32; + this.texHeight = 16; this.linkBar_11 = new ModelRenderer(this, 0, 0); - this.linkBar_11.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_11.setPos(0.0F, 0.0F, 0.0F); this.linkBar_11.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_11, 0.0F, -1.5707963267948966F, 0.0F); this.barCubeCountB_1 = new ModelRenderer(this, 0, 8); - this.barCubeCountB_1.setRotationPoint(11.5F, 0.0F, 0.0F); + this.barCubeCountB_1.setPos(11.5F, 0.0F, 0.0F); this.barCubeCountB_1.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeCountB_1, 0.0F, 0.0F, -0.2617993877991494F); this.bar_1 = new ModelRenderer(this, 0, 0); - this.bar_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar_1.setPos(0.0F, 0.0F, 0.0F); this.bar_1.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar_1, 0.0F, 0.0F, -0.2617993877991494F); this.bar_2 = new ModelRenderer(this, 0, 0); - this.bar_2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar_2.setPos(0.0F, 0.0F, 0.0F); this.bar_2.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar_2, 0.0F, 0.0F, -0.2617993877991494F); this.linkBar_7 = new ModelRenderer(this, 0, 0); - this.linkBar_7.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_7.setPos(0.0F, 0.0F, 0.0F); this.linkBar_7.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_7, 0.0F, -1.5707963267948966F, 0.0F); this.connectBar_6 = new ModelRenderer(this, 0, 0); - this.connectBar_6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connectBar_6.setPos(0.0F, 0.0F, 0.0F); this.connectBar_6.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(connectBar_6, 0.0F, 0.0F, 0.2617993877991494F); this.barCubeCountF_3 = new ModelRenderer(this, 0, 8); - this.barCubeCountF_3.setRotationPoint(11.5F, 0.0F, 0.0F); + this.barCubeCountF_3.setPos(11.5F, 0.0F, 0.0F); this.barCubeCountF_3.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeCountF_3, 0.0F, 0.0F, -0.2617993877991494F); this.cubeRightF = new ModelRenderer(this, 0, 8); - this.cubeRightF.setRotationPoint(22.0F, 0.0F, -6.0F); + this.cubeRightF.setPos(22.0F, 0.0F, -6.0F); this.cubeRightF.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(cubeRightF, 0.0F, 0.0F, -1.5707963267948966F); this.cubeBottomF = new ModelRenderer(this, 0, 8); - this.cubeBottomF.setRotationPoint(0.0F, 22.0F, -6.0F); + this.cubeBottomF.setPos(0.0F, 22.0F, -6.0F); this.cubeBottomF.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.cubeLeftB = new ModelRenderer(this, 0, 8); - this.cubeLeftB.setRotationPoint(-22.0F, 0.0F, 6.0F); + this.cubeLeftB.setPos(-22.0F, 0.0F, 6.0F); this.cubeLeftB.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(cubeLeftB, 0.0F, 0.0F, 1.5707963267948966F); this.linkBar_1 = new ModelRenderer(this, 0, 0); - this.linkBar_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_1.setPos(0.0F, 0.0F, 0.0F); this.linkBar_1.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_1, 0.0F, -1.5707963267948966F, 0.0F); this.barCubeCountF = new ModelRenderer(this, 0, 8); - this.barCubeCountF.setRotationPoint(11.5F, 0.0F, 0.0F); + this.barCubeCountF.setPos(11.5F, 0.0F, 0.0F); this.barCubeCountF.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeCountF, 0.0F, 0.0F, -0.2617993877991494F); this.barCubeClockF_3 = new ModelRenderer(this, 0, 8); - this.barCubeClockF_3.setRotationPoint(-11.5F, 0.0F, 0.0F); + this.barCubeClockF_3.setPos(-11.5F, 0.0F, 0.0F); this.barCubeClockF_3.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeClockF_3, 0.0F, 0.0F, 0.2617993877991494F); this.cubeRightB = new ModelRenderer(this, 0, 8); - this.cubeRightB.setRotationPoint(22.0F, 0.0F, 6.0F); + this.cubeRightB.setPos(22.0F, 0.0F, 6.0F); this.cubeRightB.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(cubeRightB, 0.0F, 0.0F, -1.5707963267948966F); this.bar_5 = new ModelRenderer(this, 0, 0); - this.bar_5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar_5.setPos(0.0F, 0.0F, 0.0F); this.bar_5.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar_5, 0.0F, 0.0F, -0.2617993877991494F); this.connectBar_1 = new ModelRenderer(this, 0, 0); - this.connectBar_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connectBar_1.setPos(0.0F, 0.0F, 0.0F); this.connectBar_1.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(connectBar_1, 0.0F, 0.0F, 0.2617993877991494F); this.bar_7 = new ModelRenderer(this, 0, 0); - this.bar_7.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar_7.setPos(0.0F, 0.0F, 0.0F); this.bar_7.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar_7, 0.0F, 0.0F, -0.2617993877991494F); this.connectBar_5 = new ModelRenderer(this, 0, 0); - this.connectBar_5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connectBar_5.setPos(0.0F, 0.0F, 0.0F); this.connectBar_5.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(connectBar_5, 0.0F, 0.0F, 0.2617993877991494F); this.linkBar_3 = new ModelRenderer(this, 0, 0); - this.linkBar_3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_3.setPos(0.0F, 0.0F, 0.0F); this.linkBar_3.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_3, 0.0F, -1.5707963267948966F, 0.0F); this.barCubeCountF_1 = new ModelRenderer(this, 0, 8); - this.barCubeCountF_1.setRotationPoint(11.5F, 0.0F, 0.0F); + this.barCubeCountF_1.setPos(11.5F, 0.0F, 0.0F); this.barCubeCountF_1.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeCountF_1, 0.0F, 0.0F, -0.2617993877991494F); this.connectBar_7 = new ModelRenderer(this, 0, 0); - this.connectBar_7.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connectBar_7.setPos(0.0F, 0.0F, 0.0F); this.connectBar_7.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(connectBar_7, 0.0F, 0.0F, 0.2617993877991494F); this.connectBar_2 = new ModelRenderer(this, 0, 0); - this.connectBar_2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connectBar_2.setPos(0.0F, 0.0F, 0.0F); this.connectBar_2.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(connectBar_2, 0.0F, 0.0F, 0.2617993877991494F); this.linkBar_5 = new ModelRenderer(this, 0, 0); - this.linkBar_5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_5.setPos(0.0F, 0.0F, 0.0F); this.linkBar_5.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_5, 0.0F, -1.5707963267948966F, 0.0F); this.cubeTopB = new ModelRenderer(this, 0, 8); - this.cubeTopB.setRotationPoint(0.0F, -22.0F, 6.0F); + this.cubeTopB.setPos(0.0F, -22.0F, 6.0F); this.cubeTopB.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(cubeTopB, 0.0F, 0.0F, 3.141592653589793F); this.barCubeCountB_2 = new ModelRenderer(this, 0, 8); - this.barCubeCountB_2.setRotationPoint(11.5F, 0.0F, 0.0F); + this.barCubeCountB_2.setPos(11.5F, 0.0F, 0.0F); this.barCubeCountB_2.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeCountB_2, 0.0F, 0.0F, -0.2617993877991494F); this.barCubeClockF_1 = new ModelRenderer(this, 0, 8); - this.barCubeClockF_1.setRotationPoint(-11.5F, 0.0F, 0.0F); + this.barCubeClockF_1.setPos(-11.5F, 0.0F, 0.0F); this.barCubeClockF_1.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeClockF_1, 0.0F, 0.0F, 0.2617993877991494F); this.bar2_5 = new ModelRenderer(this, 0, 0); - this.bar2_5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar2_5.setPos(0.0F, 0.0F, 0.0F); this.bar2_5.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar2_5, 0.0F, 0.0F, 0.2617993877991494F); this.bar_4 = new ModelRenderer(this, 0, 0); - this.bar_4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar_4.setPos(0.0F, 0.0F, 0.0F); this.bar_4.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar_4, 0.0F, 0.0F, -0.2617993877991494F); this.bar2_2 = new ModelRenderer(this, 0, 0); - this.bar2_2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar2_2.setPos(0.0F, 0.0F, 0.0F); this.bar2_2.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar2_2, 0.0F, 0.0F, 0.2617993877991494F); this.barCubeClockB_2 = new ModelRenderer(this, 0, 8); - this.barCubeClockB_2.setRotationPoint(-11.5F, 0.0F, 0.0F); + this.barCubeClockB_2.setPos(-11.5F, 0.0F, 0.0F); this.barCubeClockB_2.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeClockB_2, 0.0F, 0.0F, 0.2617993877991494F); this.bar2_4 = new ModelRenderer(this, 0, 0); - this.bar2_4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar2_4.setPos(0.0F, 0.0F, 0.0F); this.bar2_4.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar2_4, 0.0F, 0.0F, 0.2617993877991494F); this.bar2 = new ModelRenderer(this, 0, 0); - this.bar2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar2.setPos(0.0F, 0.0F, 0.0F); this.bar2.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar2, 0.0F, 0.0F, 0.2617993877991494F); this.barCubeClockF_2 = new ModelRenderer(this, 0, 8); - this.barCubeClockF_2.setRotationPoint(-11.5F, 0.0F, 0.0F); + this.barCubeClockF_2.setPos(-11.5F, 0.0F, 0.0F); this.barCubeClockF_2.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeClockF_2, 0.0F, 0.0F, 0.2617993877991494F); this.linkBar_10 = new ModelRenderer(this, 0, 0); - this.linkBar_10.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_10.setPos(0.0F, 0.0F, 0.0F); this.linkBar_10.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_10, 0.0F, -1.5707963267948966F, 0.0F); this.barCubeClockB_1 = new ModelRenderer(this, 0, 8); - this.barCubeClockB_1.setRotationPoint(-11.5F, 0.0F, 0.0F); + this.barCubeClockB_1.setPos(-11.5F, 0.0F, 0.0F); this.barCubeClockB_1.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeClockB_1, 0.0F, 0.0F, 0.2617993877991494F); this.barCubeClockF = new ModelRenderer(this, 0, 8); - this.barCubeClockF.setRotationPoint(-11.5F, 0.0F, 0.0F); + this.barCubeClockF.setPos(-11.5F, 0.0F, 0.0F); this.barCubeClockF.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeClockF, 0.0F, 0.0F, 0.2617993877991494F); this.linkBar = new ModelRenderer(this, 0, 0); - this.linkBar.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar.setPos(0.0F, 0.0F, 0.0F); this.linkBar.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar, 0.0F, -1.5707963267948966F, 0.0F); this.connectBar_3 = new ModelRenderer(this, 0, 0); - this.connectBar_3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connectBar_3.setPos(0.0F, 0.0F, 0.0F); this.connectBar_3.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(connectBar_3, 0.0F, 0.0F, 0.2617993877991494F); this.connectBar_4 = new ModelRenderer(this, 0, 0); - this.connectBar_4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connectBar_4.setPos(0.0F, 0.0F, 0.0F); this.connectBar_4.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(connectBar_4, 0.0F, 0.0F, 0.2617993877991494F); this.connectBar = new ModelRenderer(this, 0, 0); - this.connectBar.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connectBar.setPos(0.0F, 0.0F, 0.0F); this.connectBar.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(connectBar, 0.0F, 0.0F, 0.2617993877991494F); this.linkBar_8 = new ModelRenderer(this, 0, 0); - this.linkBar_8.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_8.setPos(0.0F, 0.0F, 0.0F); this.linkBar_8.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_8, 0.0F, -1.5707963267948966F, 0.0F); this.cubeLeftF = new ModelRenderer(this, 0, 8); - this.cubeLeftF.setRotationPoint(-22.0F, 0.0F, -6.0F); + this.cubeLeftF.setPos(-22.0F, 0.0F, -6.0F); this.cubeLeftF.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(cubeLeftF, 0.0F, 0.0F, 1.5707963267948966F); this.bar_6 = new ModelRenderer(this, 0, 0); - this.bar_6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar_6.setPos(0.0F, 0.0F, 0.0F); this.bar_6.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar_6, 0.0F, 0.0F, -0.2617993877991494F); this.bar2_7 = new ModelRenderer(this, 0, 0); - this.bar2_7.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar2_7.setPos(0.0F, 0.0F, 0.0F); this.bar2_7.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar2_7, 0.0F, 0.0F, 0.2617993877991494F); this.cubeTopF = new ModelRenderer(this, 0, 8); - this.cubeTopF.setRotationPoint(0.0F, -22.0F, -6.0F); + this.cubeTopF.setPos(0.0F, -22.0F, -6.0F); this.cubeTopF.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(cubeTopF, 0.0F, 0.0F, 3.141592653589793F); this.cubeBottomB = new ModelRenderer(this, 0, 8); - this.cubeBottomB.setRotationPoint(0.0F, 22.0F, 6.0F); + this.cubeBottomB.setPos(0.0F, 22.0F, 6.0F); this.cubeBottomB.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.barCubeClockB_3 = new ModelRenderer(this, 0, 8); - this.barCubeClockB_3.setRotationPoint(-11.5F, 0.0F, 0.0F); + this.barCubeClockB_3.setPos(-11.5F, 0.0F, 0.0F); this.barCubeClockB_3.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeClockB_3, 0.0F, 0.0F, 0.2617993877991494F); this.barCubeCountB = new ModelRenderer(this, 0, 8); - this.barCubeCountB.setRotationPoint(11.5F, 0.0F, 0.0F); + this.barCubeCountB.setPos(11.5F, 0.0F, 0.0F); this.barCubeCountB.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeCountB, 0.0F, 0.0F, -0.2617993877991494F); this.bar2_3 = new ModelRenderer(this, 0, 0); - this.bar2_3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar2_3.setPos(0.0F, 0.0F, 0.0F); this.bar2_3.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar2_3, 0.0F, 0.0F, 0.2617993877991494F); this.bar2_6 = new ModelRenderer(this, 0, 0); - this.bar2_6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar2_6.setPos(0.0F, 0.0F, 0.0F); this.bar2_6.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar2_6, 0.0F, 0.0F, 0.2617993877991494F); this.barCubeCountB_3 = new ModelRenderer(this, 0, 8); - this.barCubeCountB_3.setRotationPoint(11.5F, 0.0F, 0.0F); + this.barCubeCountB_3.setPos(11.5F, 0.0F, 0.0F); this.barCubeCountB_3.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeCountB_3, 0.0F, 0.0F, -0.2617993877991494F); this.bar2_1 = new ModelRenderer(this, 0, 0); - this.bar2_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar2_1.setPos(0.0F, 0.0F, 0.0F); this.bar2_1.addBox(-12.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar2_1, 0.0F, 0.0F, 0.2617993877991494F); this.barCubeClockB = new ModelRenderer(this, 0, 8); - this.barCubeClockB.setRotationPoint(-11.5F, 0.0F, 0.0F); + this.barCubeClockB.setPos(-11.5F, 0.0F, 0.0F); this.barCubeClockB.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeClockB, 0.0F, 0.0F, 0.2617993877991494F); this.linkBar_6 = new ModelRenderer(this, 0, 0); - this.linkBar_6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_6.setPos(0.0F, 0.0F, 0.0F); this.linkBar_6.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_6, 0.0F, -1.5707963267948966F, 0.0F); this.linkBar_4 = new ModelRenderer(this, 0, 0); - this.linkBar_4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_4.setPos(0.0F, 0.0F, 0.0F); this.linkBar_4.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_4, 0.0F, -1.5707963267948966F, 0.0F); this.linkBar_9 = new ModelRenderer(this, 0, 0); - this.linkBar_9.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_9.setPos(0.0F, 0.0F, 0.0F); this.linkBar_9.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_9, 0.0F, -1.5707963267948966F, 0.0F); this.linkBar_2 = new ModelRenderer(this, 0, 0); - this.linkBar_2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.linkBar_2.setPos(0.0F, 0.0F, 0.0F); this.linkBar_2.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(linkBar_2, 0.0F, -1.5707963267948966F, 0.0F); this.bar = new ModelRenderer(this, 0, 0); - this.bar.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar.setPos(0.0F, 0.0F, 0.0F); this.bar.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar, 0.0F, 0.0F, -0.2617993877991494F); this.bar_3 = new ModelRenderer(this, 0, 0); - this.bar_3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.bar_3.setPos(0.0F, 0.0F, 0.0F); this.bar_3.addBox(0.0F, -1.0F, -1.0F, 12, 2, 2, 0.0F); this.setRotateAngle(bar_3, 0.0F, 0.0F, -0.2617993877991494F); this.barCubeCountF_2 = new ModelRenderer(this, 0, 8); - this.barCubeCountF_2.setRotationPoint(11.5F, 0.0F, 0.0F); + this.barCubeCountF_2.setPos(11.5F, 0.0F, 0.0F); this.barCubeCountF_2.addBox(-2.0F, -2.0F, -2.0F, 4, 4, 4, 0.0F); this.setRotateAngle(barCubeCountF_2, 0.0F, 0.0F, -0.2617993877991494F); this.barCubeClockF_3.addChild(this.linkBar_11); @@ -373,7 +373,7 @@ public ModelLargeECStabilizer() { } @Override - public void render(MatrixStack matrixStack, IVertexBuilder builder, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { + public void renderToBuffer(MatrixStack matrixStack, IVertexBuilder builder, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { this.cubeRightF.render(matrixStack, builder, packedLightIn, packedOverlayIn, red, green, blue, alpha); this.cubeBottomF.render(matrixStack, builder, packedLightIn, packedOverlayIn, red, green, blue, alpha); this.cubeLeftB.render(matrixStack, builder, packedLightIn, packedOverlayIn, red, green, blue, alpha); @@ -388,8 +388,8 @@ public void render(MatrixStack matrixStack, IVertexBuilder builder, int packedLi * This is a helper function from Tabula to set the ROTATION of model parts */ public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; + modelRenderer.xRot = x; + modelRenderer.yRot = y; + modelRenderer.zRot = z; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorEnergyInjector.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorEnergyInjector.java index ab088cdff..a7cb42c0e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorEnergyInjector.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorEnergyInjector.java @@ -47,94 +47,94 @@ public class ModelReactorEnergyInjector extends Model { public ModelReactorEnergyInjector(Function renderTypeIn) { super(renderTypeIn); - this.textureWidth = 64; - this.textureHeight = 32; + this.texWidth = 64; + this.texHeight = 32; this.connector5 = new ModelRenderer(this, 4, 19); - this.connector5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connector5.setPos(0.0F, 0.0F, 0.0F); this.connector5.addBox(-3.5F, 3.5F, -0.5F, 1, 1, 1, 0.0F); this.support4 = new ModelRenderer(this, 6, 21); - this.support4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.support4.setPos(0.0F, 0.0F, 0.0F); this.support4.addBox(3.5F, 0.0F, -1.5F, 1, 7, 3, 0.0F); this.support6 = new ModelRenderer(this, 2, 26); - this.support6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.support6.setPos(0.0F, 0.0F, 0.0F); this.support6.addBox(4.5F, 3.0F, -0.5F, 1, 4, 1, 0.0F); this.element2 = new ModelRenderer(this, 0, 12); - this.element2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.element2.setPos(0.0F, 0.0F, 0.0F); this.element2.addBox(-1.0F, 2.5F, 2.0F, 2, 3, 1, 0.0F); this.setRotateAngle(element2, 0.0F, 1.5707963267948966F, 0.0F); this.element4 = new ModelRenderer(this, 0, 12); - this.element4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.element4.setPos(0.0F, 0.0F, 0.0F); this.element4.addBox(-1.0F, 2.5F, 2.0F, 2, 3, 1, 0.0F); this.setRotateAngle(element4, 0.0F, 3.141592653589793F, 0.0F); this.element6 = new ModelRenderer(this, 0, 1); - this.element6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.element6.setPos(0.0F, 0.0F, 0.0F); this.element6.addBox(-1.0F, -3.0F, 1.9F, 2, 5, 1, 0.0F); this.setRotateAngle(element6, 0.0F, -1.5707963267948966F, 0.0F); this.connector2 = new ModelRenderer(this, 8, 19); - this.connector2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connector2.setPos(0.0F, 0.0F, 0.0F); this.connector2.addBox(-4.5F, -1.0F, -0.5F, 2, 1, 1, 0.0F); this.element5 = new ModelRenderer(this, 0, 1); - this.element5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.element5.setPos(0.0F, 0.0F, 0.0F); this.element5.addBox(-1.0F, -3.0F, 1.9F, 2, 5, 1, 0.0F); this.setRotateAngle(element5, 0.0F, 1.5707963267948966F, 0.0F); this.support7 = new ModelRenderer(this, 2, 26); - this.support7.setRotationPoint(0.0F, 0.0F, 0.0F); + this.support7.setPos(0.0F, 0.0F, 0.0F); this.support7.addBox(-0.5F, 3.0F, -5.5F, 1, 4, 1, 0.0F); this.connector8 = new ModelRenderer(this, 4, 19); - this.connector8.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connector8.setPos(0.0F, 0.0F, 0.0F); this.connector8.addBox(-0.5F, 3.5F, 2.5F, 1, 1, 1, 0.0F); this.element7 = new ModelRenderer(this, 0, 1); - this.element7.setRotationPoint(0.0F, 0.0F, 0.0F); + this.element7.setPos(0.0F, 0.0F, 0.0F); this.element7.addBox(-1.0F, -3.0F, 1.9F, 2, 5, 1, 0.0F); this.support1 = new ModelRenderer(this, 42, 23); - this.support1.setRotationPoint(0.0F, -1.0F, 0.0F); + this.support1.setPos(0.0F, -1.0F, 0.0F); this.support1.addBox(-1.5F, 0.0F, 3.5F, 3, 7, 1, 0.0F); this.connector7 = new ModelRenderer(this, 4, 19); - this.connector7.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connector7.setPos(0.0F, 0.0F, 0.0F); this.connector7.addBox(-0.5F, 3.5F, -3.5F, 1, 1, 1, 0.0F); this.support5 = new ModelRenderer(this, 2, 26); - this.support5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.support5.setPos(0.0F, 0.0F, 0.0F); this.support5.addBox(-5.5F, 3.0F, -0.5F, 1, 4, 1, 0.0F); this.support8 = new ModelRenderer(this, 2, 26); - this.support8.setRotationPoint(0.0F, 0.0F, 0.0F); + this.support8.setPos(0.0F, 0.0F, 0.0F); this.support8.addBox(-0.5F, 3.0F, 4.5F, 1, 4, 1, 0.0F); this.shape14 = new ModelRenderer(this, 0, 17); - this.shape14.setRotationPoint(0.0F, 0.0F, 0.0F); + this.shape14.setPos(0.0F, 0.0F, 0.0F); this.shape14.addBox(-7.0F, 6.0F, -7.0F, 14, 1, 14, 0.0F); this.BasePlate = new ModelRenderer(this, 0, 0); - this.BasePlate.setRotationPoint(0.0F, 0.0F, 0.0F); + this.BasePlate.setPos(0.0F, 0.0F, 0.0F); this.BasePlate.addBox(-8.0F, 7.0F, -8.0F, 16, 1, 16, 0.0F); this.element8 = new ModelRenderer(this, 0, 1); - this.element8.setRotationPoint(0.0F, 0.0F, 0.0F); + this.element8.setPos(0.0F, 0.0F, 0.0F); this.element8.addBox(-1.0F, -3.0F, 1.9F, 2, 5, 1, 0.0F); this.setRotateAngle(element8, 0.0F, 3.141592653589793F, 0.0F); this.element1 = new ModelRenderer(this, 0, 12); - this.element1.setRotationPoint(0.0F, -1.0F, 0.0F); + this.element1.setPos(0.0F, -1.0F, 0.0F); this.element1.addBox(-1.0F, 2.5F, 2.0F, 2, 3, 1, 0.0F); this.connector4 = new ModelRenderer(this, 3, 21); - this.connector4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connector4.setPos(0.0F, 0.0F, 0.0F); this.connector4.addBox(-0.5F, -1.0F, -4.5F, 1, 1, 2, 0.0F); this.connector6 = new ModelRenderer(this, 4, 19); - this.connector6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connector6.setPos(0.0F, 0.0F, 0.0F); this.connector6.addBox(2.5F, 3.5F, -0.5F, 1, 1, 1, 0.0F); this.support2 = new ModelRenderer(this, 42, 23); - this.support2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.support2.setPos(0.0F, 0.0F, 0.0F); this.support2.addBox(-1.5F, 0.0F, -4.5F, 3, 7, 1, 0.0F); this.support3 = new ModelRenderer(this, 6, 21); - this.support3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.support3.setPos(0.0F, 0.0F, 0.0F); this.support3.addBox(-4.5F, 0.0F, -1.5F, 1, 7, 3, 0.0F); this.connector3 = new ModelRenderer(this, 3, 21); - this.connector3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connector3.setPos(0.0F, 0.0F, 0.0F); this.connector3.addBox(-0.5F, -1.0F, 2.5F, 1, 1, 2, 0.0F); this.element3 = new ModelRenderer(this, 0, 12); - this.element3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.element3.setPos(0.0F, 0.0F, 0.0F); this.element3.addBox(-1.0F, 2.5F, 2.0F, 2, 3, 1, 0.0F); this.setRotateAngle(element3, 0.0F, -1.5707963267948966F, 0.0F); this.connector1 = new ModelRenderer(this, 8, 19); - this.connector1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.connector1.setPos(0.0F, 0.0F, 0.0F); this.connector1.addBox(2.5F, -1.0F, -0.5F, 2, 1, 1, 0.0F); this.coreSupports = new ModelRenderer(this, 42, 17); - this.coreSupports.setRotationPoint(0.0F, -1.0F, 0.0F); + this.coreSupports.setPos(0.0F, -1.0F, 0.0F); this.coreSupports.addBox(-2.5F, 6.0F, -2.5F, 5, 1, 5, 0.0F); this.support1.addChild(this.connector5); this.support1.addChild(this.support4); @@ -162,9 +162,9 @@ public ModelReactorEnergyInjector(Function renderT } @Override - public void render(MatrixStack matrix, IVertexBuilder buffer, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { + public void renderToBuffer(MatrixStack matrix, IVertexBuilder buffer, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { int light = Math.max((int)(brightness * 240), packedLightIn % 240); - matrix.rotate(new Quaternion(90, 0, 0, true)); + matrix.mulPose(new Quaternion(90, 0, 0, true)); this.support1.render(matrix, buffer, packedLightIn, packedOverlayIn); this.BasePlate.render(matrix, buffer, packedLightIn, packedOverlayIn); this.element1.render(matrix, buffer, light, packedOverlayIn); @@ -174,8 +174,8 @@ public void render(MatrixStack matrix, IVertexBuilder buffer, int packedLightIn, * This is a helper function from Tabula to set the rotation of model parts */ public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; + modelRenderer.xRot = x; + modelRenderer.yRot = y; + modelRenderer.zRot = z; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorStabilizerCore.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorStabilizerCore.java index d358a5e20..00ebd615c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorStabilizerCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorStabilizerCore.java @@ -63,159 +63,159 @@ public class ModelReactorStabilizerCore extends Model { public ModelReactorStabilizerCore(Function renderTypeIn) { super(renderTypeIn); - this.textureWidth = 64; - this.textureHeight = 32; + this.texWidth = 64; + this.texHeight = 32; this.coreElement2 = new ModelRenderer(this, 32, 20); - this.coreElement2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.coreElement2.setPos(0.0F, 0.0F, 0.0F); this.coreElement2.addBox(-0.5F, -0.5F, -2.0F, 1, 1, 4, 0.0F); this.rotor2L_1 = new ModelRenderer(this, 0, 4); - this.rotor2L_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2L_1.setPos(0.0F, 0.0F, 0.0F); this.rotor2L_1.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2L_1, 0.0F, 0.0F, -3.3213615665452094F); this.rotor2L_5 = new ModelRenderer(this, 0, 4); - this.rotor2L_5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2L_5.setPos(0.0F, 0.0F, 0.0F); this.rotor2L_5.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2L_5, 0.0F, 0.0F, 2.602285914723545F); this.rotor1L_3 = new ModelRenderer(this, 28, 2); - this.rotor1L_3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor1L_3.setPos(0.0F, 0.0F, 0.0F); this.rotor1L_3.addBox(3.0F, -0.5F, -6.0F, 1, 1, 11, 0.0F); this.setRotateAngle(rotor1L_3, 0.0F, 0.0F, 3.637266161156183F); this.rotor2L_6 = new ModelRenderer(this, 0, 4); - this.rotor2L_6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2L_6.setPos(0.0F, 0.0F, 0.0F); this.rotor2L_6.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2L_6, 0.0F, 0.0F, 3.6808993924560407F); this.frame12 = new ModelRenderer(this, 0, 4); - this.frame12.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame12.setPos(0.0F, 0.0F, 0.0F); this.frame12.addBox(7.0F, -6.0F, 7.0F, 1, 12, 1, 0.0F); this.frame10 = new ModelRenderer(this, 0, 4); - this.frame10.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame10.setPos(0.0F, 0.0F, 0.0F); this.frame10.addBox(-8.0F, -6.0F, -8.0F, 1, 12, 1, 0.0F); this.rotor2L_3 = new ModelRenderer(this, 0, 4); - this.rotor2L_3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2L_3.setPos(0.0F, 0.0F, 0.0F); this.rotor2L_3.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2L_3, 0.0F, 0.0F, -3.501130479500625F); this.rotor2R_6 = new ModelRenderer(this, 0, 4); - this.rotor2R_6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2R_6.setPos(0.0F, 0.0F, 0.0F); this.rotor2R_6.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2R_6, 0.0F, 0.0F, 0.5393067388662478F); this.coreElement1 = new ModelRenderer(this, 32, 14); - this.coreElement1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.coreElement1.setPos(0.0F, 0.0F, 0.0F); this.coreElement1.addBox(-1.0F, -1.0F, 2.0F, 2, 2, 4, 0.0F); this.rotor1L_4 = new ModelRenderer(this, 28, 2); - this.rotor1L_4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor1L_4.setPos(0.0F, 0.0F, 0.0F); this.rotor1L_4.addBox(3.0F, -0.5F, -6.0F, 1, 1, 11, 0.0F); this.setRotateAngle(rotor1L_4, 0.0F, 0.0F, 2.6459191460234033F); this.basePlate = new ModelRenderer(this, 0, 18); - this.basePlate.setRotationPoint(0.0F, 0.0F, 0.0F); + this.basePlate.setPos(0.0F, 0.0F, 0.0F); this.basePlate.addBox(-4.0F, -4.0F, 6.0F, 8, 8, 2, 0.0F); this.rotor1L_2 = new ModelRenderer(this, 28, 2); - this.rotor1L_2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor1L_2.setPos(0.0F, 0.0F, 0.0F); this.rotor1L_2.addBox(3.0F, -0.5F, -6.0F, 1, 1, 11, 0.0F); this.setRotateAngle(rotor1L_2, 0.0F, 0.0F, 2.8937558998065986F); this.frame1 = new ModelRenderer(this, 12, 14); - this.frame1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame1.setPos(0.0F, 0.0F, 0.0F); this.frame1.addBox(6.0F, 6.0F, -8.0F, 2, 2, 16, 0.0F); this.rotor1L_1 = new ModelRenderer(this, 28, 2); - this.rotor1L_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor1L_1.setPos(0.0F, 0.0F, 0.0F); this.rotor1L_1.addBox(3.0F, -0.5F, -6.0F, 1, 1, 11, 0.0F); this.setRotateAngle(rotor1L_1, 0.0F, 0.0F, -2.8937558998065986F); this.frame5 = new ModelRenderer(this, 14, 0); - this.frame5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame5.setPos(0.0F, 0.0F, 0.0F); this.frame5.addBox(-6.0F, -8.0F, -8.0F, 12, 1, 1, 0.0F); this.frame11 = new ModelRenderer(this, 0, 4); - this.frame11.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame11.setPos(0.0F, 0.0F, 0.0F); this.frame11.addBox(7.0F, -6.0F, -8.0F, 1, 12, 1, 0.0F); this.rotor1R_3 = new ModelRenderer(this, 28, 2); - this.rotor1R_3.setRotationPoint(0.0F, 0.0F, 1.0F); + this.rotor1R_3.setPos(0.0F, 0.0F, 1.0F); this.rotor1R_3.addBox(3.0F, -0.5F, -7.0F, 1, 1, 11, 0.0F); this.setRotateAngle(rotor1R_3, 0.0F, 0.0F, -0.49567350756638956F); this.rotor2R_3 = new ModelRenderer(this, 0, 4); - this.rotor2R_3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2R_3.setPos(0.0F, 0.0F, 0.0F); this.rotor2R_3.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2R_3, 0.0F, 0.0F, 0.3595378259108319F); this.frame3 = new ModelRenderer(this, 12, 14); - this.frame3.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame3.setPos(0.0F, 0.0F, 0.0F); this.frame3.addBox(6.0F, -8.0F, -8.0F, 2, 2, 16, 0.0F); this.rotor2R_5 = new ModelRenderer(this, 0, 4); - this.rotor2R_5.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2R_5.setPos(0.0F, 0.0F, 0.0F); this.rotor2R_5.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2R_5, 0.0F, 0.0F, -0.5393067388662478F); this.rotor2R_2 = new ModelRenderer(this, 0, 4); - this.rotor2R_2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2R_2.setPos(0.0F, 0.0F, 0.0F); this.rotor2R_2.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2R_2, 0.0F, 0.0F, 0.17976891295541594F); this.backSpoke2 = new ModelRenderer(this, 52, 0); - this.backSpoke2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.backSpoke2.setPos(0.0F, 0.0F, 0.0F); this.backSpoke2.addBox(-0.5F, -9.5F, 6.95F, 1, 19, 1, 0.0F); this.setRotateAngle(backSpoke2, 0.0F, 0.0F, 0.7853981633974483F); this.frame6 = new ModelRenderer(this, 14, 0); - this.frame6.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame6.setPos(0.0F, 0.0F, 0.0F); this.frame6.addBox(-6.0F, 7.0F, -8.0F, 12, 1, 1, 0.0F); this.rotor1R_2 = new ModelRenderer(this, 28, 2); - this.rotor1R_2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor1R_2.setPos(0.0F, 0.0F, 0.0F); this.rotor1R_2.addBox(3.0F, -0.5F, -6.0F, 1, 1, 11, 0.0F); this.setRotateAngle(rotor1R_2, 0.0F, 0.0F, 0.24783675378319478F); this.hub1 = new ModelRenderer(this, 0, 0); - this.hub1.setRotationPoint(0.0F, 0.0F, -0.02F); + this.hub1.setPos(0.0F, 0.0F, -0.02F); this.hub1.addBox(-3.0F, -0.5F, 4.0F, 6, 1, 1, 0.0F); this.rotor2R_1 = new ModelRenderer(this, 0, 4); - this.rotor2R_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2R_1.setPos(0.0F, 0.0F, 0.0F); this.rotor2R_1.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2R_1, 0.0F, 0.0F, -0.17976891295541594F); this.hub2 = new ModelRenderer(this, 0, 2); - this.hub2.setRotationPoint(0.0F, 0.0F, -0.01F); + this.hub2.setPos(0.0F, 0.0F, -0.01F); this.hub2.addBox(-4.5F, -0.5F, 5.0F, 9, 1, 1, 0.0F); this.backSpoke1 = new ModelRenderer(this, 52, 0); - this.backSpoke1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.backSpoke1.setPos(0.0F, 0.0F, 0.0F); this.backSpoke1.addBox(-0.5F, -9.5F, 6.95F, 1, 19, 1, 0.0F); this.setRotateAngle(backSpoke1, 0.0F, 0.0F, -0.7853981633974483F); this.rotor1R_4 = new ModelRenderer(this, 28, 2); - this.rotor1R_4.setRotationPoint(0.0F, 0.0F, 1.0F); + this.rotor1R_4.setPos(0.0F, 0.0F, 1.0F); this.rotor1R_4.addBox(3.0F, -0.5F, -7.0F, 1, 1, 11, 0.0F); this.setRotateAngle(rotor1R_4, 0.0F, 0.0F, 0.49567350756638956F); this.rotor1R = new ModelRenderer(this, 28, 2); - this.rotor1R.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor1R.setPos(0.0F, 0.0F, 0.0F); this.rotor1R.addBox(3.0F, -0.5F, -6.0F, 1, 1, 11, 0.0F); this.rotor2L_4 = new ModelRenderer(this, 0, 4); - this.rotor2L_4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2L_4.setPos(0.0F, 0.0F, 0.0F); this.rotor2L_4.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2L_4, 0.0F, 0.0F, -2.7820548276789614F); this.frame4 = new ModelRenderer(this, 12, 14); - this.frame4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame4.setPos(0.0F, 0.0F, 0.0F); this.frame4.addBox(-8.0F, -8.0F, -8.0F, 2, 2, 16, 0.0F); this.rotor2R = new ModelRenderer(this, 0, 4); - this.rotor2R.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2R.setPos(0.0F, 0.0F, 0.0F); this.rotor2R.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.rotor2R_4 = new ModelRenderer(this, 0, 4); - this.rotor2R_4.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2R_4.setPos(0.0F, 0.0F, 0.0F); this.rotor2R_4.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2R_4, 0.0F, 0.0F, -0.3595378259108319F); this.rotor2L_2 = new ModelRenderer(this, 0, 4); - this.rotor2L_2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2L_2.setPos(0.0F, 0.0F, 0.0F); this.rotor2L_2.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2L_2, 0.0F, 0.0F, -2.961823740634377F); this.frame9 = new ModelRenderer(this, 0, 4); - this.frame9.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame9.setPos(0.0F, 0.0F, 0.0F); this.frame9.addBox(-8.0F, -6.0F, 7.0F, 1, 12, 1, 0.0F); this.rotor2L = new ModelRenderer(this, 0, 4); - this.rotor2L.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor2L.setPos(0.0F, 0.0F, 0.0F); this.rotor2L.addBox(4.5F, -0.5F, -7.0F, 1, 1, 13, 0.0F); this.setRotateAngle(rotor2L, 0.0F, 0.0F, -3.141592653589793F); this.rotor1L = new ModelRenderer(this, 28, 2); - this.rotor1L.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor1L.setPos(0.0F, 0.0F, 0.0F); this.rotor1L.addBox(3.0F, -0.5F, -6.0F, 1, 1, 11, 0.0F); this.setRotateAngle(rotor1L, 0.0F, 0.0F, -3.141592653589793F); this.frame8 = new ModelRenderer(this, 14, 0); - this.frame8.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame8.setPos(0.0F, 0.0F, 0.0F); this.frame8.addBox(-6.0F, 7.0F, 7.0F, 12, 1, 1, 0.0F); this.frame2 = new ModelRenderer(this, 12, 14); - this.frame2.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame2.setPos(0.0F, 0.0F, 0.0F); this.frame2.addBox(-8.0F, 6.0F, -8.0F, 2, 2, 16, 0.0F); this.frame7 = new ModelRenderer(this, 14, 0); - this.frame7.setRotationPoint(0.0F, 0.0F, 0.0F); + this.frame7.setPos(0.0F, 0.0F, 0.0F); this.frame7.addBox(-6.0F, -8.0F, 7.0F, 12, 1, 1, 0.0F); this.rotor1R_1 = new ModelRenderer(this, 28, 2); - this.rotor1R_1.setRotationPoint(0.0F, 0.0F, 0.0F); + this.rotor1R_1.setPos(0.0F, 0.0F, 0.0F); this.rotor1R_1.addBox(3.0F, -0.5F, -6.0F, 1, 1, 11, 0.0F); this.setRotateAngle(rotor1R_1, 0.0F, 0.0F, -0.24783675378319478F); this.basePlate.addChild(this.coreElement2); @@ -259,30 +259,30 @@ public ModelReactorStabilizerCore(Function renderT } @Override - public void render(MatrixStack matrix, IVertexBuilder buffer, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { - matrix.push(); + public void renderToBuffer(MatrixStack matrix, IVertexBuilder buffer, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { + matrix.pushPose(); int light = Math.max((int)(brightness * 240), packedLightIn % 240); this.basePlate.render(matrix, buffer, packedLightIn, packedOverlayIn); - matrix.rotate(new Quaternion(0, 0, rotation, true)); + matrix.mulPose(new Quaternion(0, 0, rotation, true)); this.hub1.render(matrix, buffer, packedLightIn, packedOverlayIn); - matrix.rotate(new Quaternion(0, 0, rotation * -2, true)); + matrix.mulPose(new Quaternion(0, 0, rotation * -2, true)); this.hub2.render(matrix, buffer, packedLightIn, packedOverlayIn); this.rotor2R.render(matrix, buffer, light, packedOverlayIn); - matrix.rotate(new Quaternion(0, 0, rotation * 2, true)); + matrix.mulPose(new Quaternion(0, 0, rotation * 2, true)); this.rotor1R.render(matrix, buffer, light, packedOverlayIn); - matrix.pop(); + matrix.popPose(); } /** * This is a helper function from Tabula to set the rotation of model parts */ public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; + modelRenderer.xRot = x; + modelRenderer.yRot = y; + modelRenderer.zRot = z; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorStabilizerRing.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorStabilizerRing.java index 8fd7e8312..11cd8df17 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorStabilizerRing.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModelReactorStabilizerRing.java @@ -35,67 +35,67 @@ public class ModelReactorStabilizerRing extends Model { public ModelReactorStabilizerRing(Function renderTypeIn) { super(renderTypeIn); - this.textureWidth = 32; - this.textureHeight = 16; + this.texWidth = 32; + this.texHeight = 16; this.ringElement9 = new ModelRenderer(this, 0, 0); - this.ringElement9.setRotationPoint(6.7F, 0.01F, -1.55F); + this.ringElement9.setPos(6.7F, 0.01F, -1.55F); this.ringElement9.addBox(0.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement9, 0.0F, 2.0943951023931953F, 0.0F); this.ringElement10 = new ModelRenderer(this, 0, 0); - this.ringElement10.setRotationPoint(1.55F, 0.02F, -6.7F); + this.ringElement10.setPos(1.55F, 0.02F, -6.7F); this.ringElement10.addBox(-4.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement10, 0.0F, 2.6179938779914944F, 0.0F); this.ringElement1 = new ModelRenderer(this, 0, 0); - this.ringElement1.setRotationPoint(-2.0F, 0.01F, 6.6F); + this.ringElement1.setPos(-2.0F, 0.01F, 6.6F); this.ringElement1.addBox(0.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.ringElement7 = new ModelRenderer(this, 0, 0); - this.ringElement7.setRotationPoint(-1.55F, 0.02F, -6.7F); + this.ringElement7.setPos(-1.55F, 0.02F, -6.7F); this.ringElement7.addBox(0.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement7, 0.0F, -2.6179938779914944F, 0.0F); this.ringElement8 = new ModelRenderer(this, 0, 0); - this.ringElement8.setRotationPoint(-6.7F, 0.01F, -1.55F); + this.ringElement8.setPos(-6.7F, 0.01F, -1.55F); this.ringElement8.addBox(-4.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement8, 0.0F, -2.0943951023931953F, 0.0F); this.emitter = new ModelRenderer(this, 0, 2); - this.emitter.setRotationPoint(-7.1F, -0.3F, 2.25F); + this.emitter.setPos(-7.1F, -0.3F, 2.25F); this.emitter.addBox(-0.5F, -0.8F, 0.0F, 3, 1, 9, 0.0F); this.setRotateAngle(emitter, 0.0F, 3.141592653589793F, 0.0F); this.ringElement2 = new ModelRenderer(this, 0, 0); - this.ringElement2.setRotationPoint(2.0F, 0.01F, -6.6F); + this.ringElement2.setPos(2.0F, 0.01F, -6.6F); this.ringElement2.addBox(0.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement2, 0.0F, 3.141592653589793F, 0.0F); this.ringElement5 = new ModelRenderer(this, 0, 0); - this.ringElement5.setRotationPoint(-6.7F, 0.01F, 1.55F); + this.ringElement5.setPos(-6.7F, 0.01F, 1.55F); this.ringElement5.addBox(0.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement5, 0.0F, -1.0471975511965976F, 0.0F); this.ringElement12 = new ModelRenderer(this, 0, 0); - this.ringElement12.setRotationPoint(1.55F, 0.02F, 6.7F); + this.ringElement12.setPos(1.55F, 0.02F, 6.7F); this.ringElement12.addBox(0.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement12, 0.0F, 0.5235987755982988F, 0.0F); this.hing = new ModelRenderer(this, 15, 0); - this.hing.setRotationPoint(-7.45F, -0.5F, -1.75F); + this.hing.setPos(-7.45F, -0.5F, -1.75F); this.hing.addBox(0.0F, 0.0F, 0.0F, 1, 1, 7, 0.0F); this.ringElement6 = new ModelRenderer(this, 0, 0); - this.ringElement6.setRotationPoint(-1.55F, 0.02F, 6.7F); + this.ringElement6.setPos(-1.55F, 0.02F, 6.7F); this.ringElement6.addBox(-4.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement6, 0.0F, -0.5235987755982988F, 0.0F); this.ringElement11 = new ModelRenderer(this, 0, 0); - this.ringElement11.setRotationPoint(6.7F, 0.01F, 1.55F); + this.ringElement11.setPos(6.7F, 0.01F, 1.55F); this.ringElement11.addBox(-4.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement11, 0.0F, 1.0471975511965976F, 0.0F); this.ringElement4 = new ModelRenderer(this, 0, 0); - this.ringElement4.setRotationPoint(-6.6F, 0.0F, -2.0F); + this.ringElement4.setPos(-6.6F, 0.0F, -2.0F); this.ringElement4.addBox(0.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement4, 0.0F, -1.5707963267948966F, 0.0F); this.ringElement3 = new ModelRenderer(this, 0, 0); - this.ringElement3.setRotationPoint(6.6F, 0.0F, 2.0F); + this.ringElement3.setPos(6.6F, 0.0F, 2.0F); this.ringElement3.addBox(0.0F, 0.0F, 0.0F, 4, 1, 1, 0.0F); this.setRotateAngle(ringElement3, 0.0F, 1.5707963267948966F, 0.0F); } @Override - public void render(MatrixStack matrix, IVertexBuilder buffer, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { + public void renderToBuffer(MatrixStack matrix, IVertexBuilder buffer, int packedLightIn, int packedOverlayIn, float red, float green, float blue, float alpha) { int light = Math.max((int)(brightness * 240), packedLightIn % 240); this.ringElement1.render(matrix, buffer, light, packedOverlayIn); @@ -112,23 +112,23 @@ public void render(MatrixStack matrix, IVertexBuilder buffer, int packedLightIn, this.ringElement12.render(matrix, buffer,light, packedOverlayIn); for (int i = 0; i < 4; i++) { - matrix.push(); - matrix.translate((this.hing.rotationPointX) * 0.0625, (this.hing.rotateAngleY - 0.25) * 0.0625, (this.hing.rotateAngleZ - 0.875) * 0.0625); + matrix.pushPose(); + matrix.translate((this.hing.x) * 0.0625, (this.hing.yRot - 0.25) * 0.0625, (this.hing.zRot - 0.875) * 0.0625); matrix.scale(0.5F, 0.5F, 0.5F); - matrix.translate(-this.hing.rotationPointX * 0.0625, -this.hing.rotateAngleY * 0.0625, -this.hing.rotateAngleZ * 0.0625); + matrix.translate(-this.hing.x * 0.0625, -this.hing.yRot * 0.0625, -this.hing.zRot * 0.0625); this.hing.render(matrix, buffer, 240, packedOverlayIn); - matrix.pop(); + matrix.popPose(); - matrix.push(); + matrix.pushPose(); matrix.translate(0.0625 * .5, -0.0625 * 0.125, 0.0625 * 1.125); - matrix.translate((this.emitter.rotationPointX - .5) * 0.0625, (this.emitter.rotateAngleY - 3.5) * 0.0625, (this.emitter.rotateAngleZ) * 0.0625); - matrix.rotate(new Quaternion(0, 0, embitterRotation, true)); + matrix.translate((this.emitter.x - .5) * 0.0625, (this.emitter.yRot - 3.5) * 0.0625, (this.emitter.zRot) * 0.0625); + matrix.mulPose(new Quaternion(0, 0, embitterRotation, true)); matrix.scale(0.5F, 0.5F, 0.5F); - matrix.translate(-(this.emitter.rotationPointX - .5) * 0.0625, -(this.emitter.rotateAngleY - 3.5) * 0.0625, -(this.emitter.rotateAngleZ) * 0.0625); + matrix.translate(-(this.emitter.x - .5) * 0.0625, -(this.emitter.yRot - 3.5) * 0.0625, -(this.emitter.zRot) * 0.0625); this.emitter.render(matrix, buffer, light, packedOverlayIn); - matrix.pop(); + matrix.popPose(); - matrix.rotate(new Quaternion(0, 90, 0, true)); + matrix.mulPose(new Quaternion(0, 90, 0, true)); } } @@ -136,8 +136,8 @@ public void render(MatrixStack matrix, IVertexBuilder buffer, int packedLightIn, * This is a helper function from Tabula to set the rotation of model parts */ public void setRotateAngle(ModelRenderer modelRenderer, float x, float y, float z) { - modelRenderer.rotateAngleX = x; - modelRenderer.rotateAngleY = y; - modelRenderer.rotateAngleZ = z; + modelRenderer.xRot = x; + modelRenderer.yRot = y; + modelRenderer.zRot = z; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/ModularArmorModel.java b/src/main/java/com/brandon3055/draconicevolution/client/model/ModularArmorModel.java index 487dad70b..3dbd69299 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/ModularArmorModel.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/ModularArmorModel.java @@ -66,7 +66,7 @@ public class ModularArmorModel extends VBOBipedModel { .uniform("baseColour", UniformType.VEC4) .uniform("tier", UniformType.INT) ) - .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 20)) + .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 20)) .build(); private CCModel baseModel; @@ -107,29 +107,29 @@ public ModularArmorModel(float size, TechLevel techLevel, boolean onArmor) { } String levelName = techLevel.name().toLowerCase(); - modelType = RenderType.makeType("modelType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, true, false, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/" + levelName + "_chestpeice.png"), false, false)) - .diffuseLighting(DIFFUSE_LIGHTING_ENABLED) - .lightmap(LIGHTMAP_ENABLED) - .build(true)); - chaosType = RenderType.makeType("chaosShaderType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/chaos_shader.png"), true, false)) - .lightmap(LIGHTMAP_ENABLED) - .overlay(OVERLAY_ENABLED) - .build(false)); - shaderParentType = RenderType.makeType("shaderGemType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.getBuilder() - .diffuseLighting(DIFFUSE_LIGHTING_ENABLED) - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/shader_fallback_" + levelName + ".png"), false, false)) - .lightmap(LIGHTMAP_ENABLED) - .overlay(OVERLAY_ENABLED) - .build(false)); - shieldType = RenderType.makeType("shieldType", DefaultVertexFormats.POSITION_COLOR_LIGHTMAP, GL11.GL_TRIANGLES, 256, RenderType.State.getBuilder() - .diffuseLighting(DIFFUSE_LIGHTING_ENABLED) - .transparency(TRANSLUCENT_TRANSPARENCY) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .lightmap(LIGHTMAP_ENABLED) - .cull(CULL_DISABLED) - .build(false)); + modelType = RenderType.create("modelType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, true, false, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/" + levelName + "_chestpeice.png"), false, false)) + .setDiffuseLightingState(DIFFUSE_LIGHTING) + .setLightmapState(LIGHTMAP) + .createCompositeState(true)); + chaosType = RenderType.create("chaosShaderType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/chaos_shader.png"), true, false)) + .setLightmapState(LIGHTMAP) + .setOverlayState(OVERLAY) + .createCompositeState(false)); + shaderParentType = RenderType.create("shaderGemType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.builder() + .setDiffuseLightingState(DIFFUSE_LIGHTING) + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/shader_fallback_" + levelName + ".png"), false, false)) + .setLightmapState(LIGHTMAP) + .setOverlayState(OVERLAY) + .createCompositeState(false)); + shieldType = RenderType.create("shieldType", DefaultVertexFormats.POSITION_COLOR_LIGHTMAP, GL11.GL_TRIANGLES, 256, RenderType.State.builder() + .setDiffuseLightingState(DIFFUSE_LIGHTING) + .setTransparencyState(TRANSLUCENT_TRANSPARENCY) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .setLightmapState(LIGHTMAP) + .setCullState(NO_CULL) + .createCompositeState(false)); baseVBOType = new VBORenderType(modelType, DefaultVertexFormats.POSITION_TEX_COLOR_NORMAL, (format, builder) -> { if (!onArmor) { @@ -214,7 +214,7 @@ public ModularArmorModel(float size, TechLevel techLevel, boolean onArmor) { }); bipedBody = new VBOModelRender(this, baseVBOType); - bipedBody.setRotationPoint(0.0F, 0.0F + yOffsetIn, 0.0F); + bipedBody.setPos(0.0F, 0.0F + yOffsetIn, 0.0F); VBOModelRender matRender = new VBOModelRender(this, techLevel == TechLevel.CHAOTIC ? materialChaosVBOType : materialVBOType); if (techLevel == TechLevel.CHAOTIC) { matRender.setShader(() -> RenderModularChestpeice.getShaderType(chaosType, RenderModularChestpeice.chaosShader)); @@ -225,21 +225,21 @@ public ModularArmorModel(float size, TechLevel techLevel, boolean onArmor) { bipedBody.addChild(new VBOModelRender(this, shieldBodyVBO, () -> shieldState > 0).setShader(() -> getShaderType(shieldType, techLevel, shieldState, shieldColour, shieldShader))); this.bipedHead = new VBOModelRender(this, shieldHeadVBO, () -> shieldState > 0).setShader(() -> getShaderType(shieldType, techLevel, shieldState, shieldColour, shieldShader)); - this.bipedHead.setRotationPoint(0.0F, 0.0F + yOffsetIn, 0.0F); + this.bipedHead.setPos(0.0F, 0.0F + yOffsetIn, 0.0F); this.bipedRightArm = new VBOModelRender(this, shieldRightArmVBO, () -> shieldState > 0).setShader(() -> getShaderType(shieldType, techLevel, shieldState, shieldColour, shieldShader)); - this.bipedRightArm.setRotationPoint(-5.0F, 2.0F + yOffsetIn, 0.0F); + this.bipedRightArm.setPos(-5.0F, 2.0F + yOffsetIn, 0.0F); this.bipedLeftArm = new VBOModelRender(this, shieldLeftArmVBO, () -> shieldState > 0).setShader(() -> getShaderType(shieldType, techLevel, shieldState, shieldColour, shieldShader)); this.bipedLeftArm.mirror = true; - this.bipedLeftArm.setRotationPoint(5.0F, 2.0F + yOffsetIn, 0.0F); + this.bipedLeftArm.setPos(5.0F, 2.0F + yOffsetIn, 0.0F); this.bipedRightLeg = new VBOModelRender(this, shieldRightLegVBO, () -> shieldState > 0).setShader(() -> getShaderType(shieldType, techLevel, shieldState, shieldColour, shieldShader)); - this.bipedRightLeg.setRotationPoint(-1.9F, 12.0F + yOffsetIn, 0.0F); + this.bipedRightLeg.setPos(-1.9F, 12.0F + yOffsetIn, 0.0F); this.bipedLeftLeg = new VBOModelRender(this, shieldLeftLegVBO, () -> shieldState > 0).setShader(() -> getShaderType(shieldType, techLevel, shieldState, shieldColour, shieldShader)); this.bipedLeftLeg.mirror = true; - this.bipedLeftLeg.setRotationPoint(1.9F, 12.0F + yOffsetIn, 0.0F); + this.bipedLeftLeg.setPos(1.9F, 12.0F + yOffsetIn, 0.0F); } @Override @@ -262,25 +262,25 @@ public void render(MatrixStack mStack, IRenderTypeBuffer getter, LivingEntity pl } - if (this.isChild) { - mStack.push(); - if (this.isChildHeadScaled) { - float f = 1.5F / this.childHeadScale; + if (this.young) { + mStack.pushPose(); + if (this.scaleHead) { + float f = 1.5F / this.babyHeadScale; mStack.scale(f, f, f); } - mStack.translate(0.0D, this.childHeadOffsetY / 16.0F, this.childHeadOffsetZ / 16.0F); + mStack.translate(0.0D, this.yHeadOffset / 16.0F, this.zHeadOffset / 16.0F); bipedHead.render(mStack, getter, packedLightIn, packedOverlayIn, red, green, blue, alpha); - mStack.pop(); - mStack.push(); - float f1 = 1.0F / this.childBodyScale; + mStack.popPose(); + mStack.pushPose(); + float f1 = 1.0F / this.babyBodyScale; mStack.scale(f1, f1, f1); - mStack.translate(0.0D, this.childBodyOffsetY / 16.0F, 0.0D); + mStack.translate(0.0D, this.bodyYOffset / 16.0F, 0.0D); bipedBody.render(mStack, getter, packedLightIn, packedOverlayIn, red, green, blue, alpha); bipedLeftArm.render(mStack, getter, packedLightIn, packedOverlayIn, red, green, blue, alpha); bipedRightArm.render(mStack, getter, packedLightIn, packedOverlayIn, red, green, blue, alpha); bipedLeftLeg.render(mStack, getter, packedLightIn, packedOverlayIn, red, green, blue, alpha); bipedRightLeg.render(mStack, getter, packedLightIn, packedOverlayIn, red, green, blue, alpha); - mStack.pop(); + mStack.popPose(); } else { bipedBody.render(mStack, getter, packedLightIn, packedOverlayIn, red, green, blue, alpha); bipedHead.render(mStack, getter, packedLightIn, packedOverlayIn, red, green, blue, alpha); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/VBOArmorLayer.java b/src/main/java/com/brandon3055/draconicevolution/client/model/VBOArmorLayer.java index 1fa65ee8c..7aeba0f16 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/VBOArmorLayer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/VBOArmorLayer.java @@ -25,35 +25,35 @@ public class VBOArmorLayer, A extends BipedModel> extends BipedArmorLayer { public VBOArmorLayer(IEntityRenderer renderer, @Nullable BipedArmorLayer parent) { - super(renderer, parent == null ? SneakyUtils.unsafeCast(new BipedModel(0.5F)) : parent.modelLeggings, parent == null ? SneakyUtils.unsafeCast(new BipedModel(1.0F)) : parent.modelArmor); + super(renderer, parent == null ? SneakyUtils.unsafeCast(new BipedModel(0.5F)) : parent.innerModel, parent == null ? SneakyUtils.unsafeCast(new BipedModel(1.0F)) : parent.outerModel); } - protected void setModelSlotVisible(A model, EquipmentSlotType slot) { + protected void setPartVisibility(A model, EquipmentSlotType slot) { this.setModelVisible(model); switch (slot) { case HEAD: - model.bipedHead.showModel = true; - model.bipedHeadwear.showModel = true; + model.head.visible = true; + model.hat.visible = true; break; case CHEST: - model.bipedBody.showModel = true; - model.bipedRightArm.showModel = true; - model.bipedLeftArm.showModel = true; + model.body.visible = true; + model.rightArm.visible = true; + model.leftArm.visible = true; break; case LEGS: - model.bipedBody.showModel = true; - model.bipedRightLeg.showModel = true; - model.bipedLeftLeg.showModel = true; + model.body.visible = true; + model.rightLeg.visible = true; + model.leftLeg.visible = true; break; case FEET: - model.bipedRightLeg.showModel = true; - model.bipedLeftLeg.showModel = true; + model.rightLeg.visible = true; + model.leftLeg.visible = true; } } protected void setModelVisible(A model) { - model.setVisible(false); + model.setAllVisible(false); } @Override @@ -71,20 +71,20 @@ public void render(MatrixStack mStack, IRenderTypeBuffer getter, int packedLight ItemStack stack = EquipmentManager.findItem(e -> e.getItem() instanceof ModularChestpiece, livingEntity); if (!stack.isEmpty()) { - renderArmorPart(mStack, getter, livingEntity, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, EquipmentSlotType.CHEST, stack, packedLightIn, !livingEntity.getItemStackFromSlot(EquipmentSlotType.CHEST).isEmpty()); + renderArmorPart(mStack, getter, livingEntity, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, EquipmentSlotType.CHEST, stack, packedLightIn, !livingEntity.getItemBySlot(EquipmentSlotType.CHEST).isEmpty()); } } private void renderArmorPart(MatrixStack mStack, IRenderTypeBuffer getter, T livingEntity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, EquipmentSlotType slot, int packedLight) { - ItemStack itemstack = livingEntity.getItemStackFromSlot(slot); + ItemStack itemstack = livingEntity.getItemBySlot(slot); renderArmorPart(mStack, getter, livingEntity, limbSwing, limbSwingAmount, partialTicks, ageInTicks, netHeadYaw, headPitch, slot, itemstack, packedLight, false); } private void renderArmorPart(MatrixStack mStack, IRenderTypeBuffer getter, T livingEntity, float limbSwing, float limbSwingAmount, float partialTicks, float ageInTicks, float netHeadYaw, float headPitch, EquipmentSlotType slot, ItemStack itemstack, int packedLight, boolean onArmor) { if (itemstack.getItem() instanceof ArmorItem) { ArmorItem armoritem = (ArmorItem) itemstack.getItem(); - if (armoritem.getEquipmentSlot() == slot) { - A baseModel = this.func_241736_a_(slot); + if (armoritem.getSlot() == slot) { + A baseModel = this.getArmorModel(slot); A model = baseModel; if (armoritem instanceof ModularChestpiece) { @@ -95,17 +95,17 @@ private void renderArmorPart(MatrixStack mStack, IRenderTypeBuffer getter, T liv if (model instanceof VBOBipedModel) { @SuppressWarnings("unchecked") VBOBipedModel bpModel = (VBOBipedModel) model; - BipedModel entityModel = this.getEntityModel(); - entityModel.copyModelAttributesTo(bpModel); + BipedModel entityModel = this.getParentModel(); + entityModel.copyPropertiesTo(bpModel); bpModel.leftArmPose = entityModel.leftArmPose; bpModel.rightArmPose = entityModel.rightArmPose; - bpModel.isSneak = entityModel.isSneak; - bpModel.bipedHead.copyModelAngles(entityModel.bipedHead); - bpModel.bipedBody.copyModelAngles(entityModel.bipedBody); - bpModel.bipedRightArm.copyModelAngles(entityModel.bipedRightArm); - bpModel.bipedLeftArm.copyModelAngles(entityModel.bipedLeftArm); - bpModel.bipedRightLeg.copyModelAngles(entityModel.bipedRightLeg); - bpModel.bipedLeftLeg.copyModelAngles(entityModel.bipedLeftLeg); + bpModel.crouching = entityModel.crouching; + bpModel.bipedHead.copyFrom(entityModel.head); + bpModel.bipedBody.copyFrom(entityModel.body); + bpModel.bipedRightArm.copyFrom(entityModel.rightArm); + bpModel.bipedLeftArm.copyFrom(entityModel.leftArm); + bpModel.bipedRightLeg.copyFrom(entityModel.rightLeg); + bpModel.bipedLeftLeg.copyFrom(entityModel.leftLeg); bpModel.render(mStack, getter, livingEntity, itemstack, packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/VBOBipedModel.java b/src/main/java/com/brandon3055/draconicevolution/client/model/VBOBipedModel.java index ca12e43ef..6d64a2722 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/VBOBipedModel.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/VBOBipedModel.java @@ -55,35 +55,35 @@ public VBOBipedModel(Function renderType, float mo } @Override - public void render(MatrixStack mStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {} + public void renderToBuffer(MatrixStack mStack, IVertexBuilder buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) {} public abstract void render(MatrixStack mStack, IRenderTypeBuffer getter, T entity, ItemStack itemstack, int packedLight, int packedOverlay, float red, float green, float blue, float alpha); @Override - public void setRotationAngles(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - boolean flag = entity.getTicksElytraFlying() > 4; - boolean flag1 = entity.isActualySwimming(); - this.bipedHead.rotateAngleY = netHeadYaw * ((float)Math.PI / 180F); + public void setupAnim(T entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { + boolean flag = entity.getFallFlyingTicks() > 4; + boolean flag1 = entity.isVisuallySwimming(); + this.bipedHead.yRot = netHeadYaw * ((float)Math.PI / 180F); if (flag) { - this.bipedHead.rotateAngleX = (-(float)Math.PI / 4F); - } else if (this.swimAnimation > 0.0F) { + this.bipedHead.xRot = (-(float)Math.PI / 4F); + } else if (this.swimAmount > 0.0F) { if (flag1) { - this.bipedHead.rotateAngleX = this.rotLerpRad(this.bipedHead.rotateAngleX, (-(float)Math.PI / 4F), this.swimAnimation); + this.bipedHead.xRot = this.rotlerpRad(this.bipedHead.xRot, (-(float)Math.PI / 4F), this.swimAmount); } else { - this.bipedHead.rotateAngleX = this.rotLerpRad(this.bipedHead.rotateAngleX, headPitch * ((float)Math.PI / 180F), this.swimAnimation); + this.bipedHead.xRot = this.rotlerpRad(this.bipedHead.xRot, headPitch * ((float)Math.PI / 180F), this.swimAmount); } } else { - this.bipedHead.rotateAngleX = headPitch * ((float)Math.PI / 180F); + this.bipedHead.xRot = headPitch * ((float)Math.PI / 180F); } - this.bipedBody.rotateAngleY = 0.0F; - this.bipedRightArm.rotationPointZ = 0.0F; - this.bipedRightArm.rotationPointX = -5.0F; - this.bipedLeftArm.rotationPointZ = 0.0F; - this.bipedLeftArm.rotationPointX = 5.0F; + this.bipedBody.yRot = 0.0F; + this.bipedRightArm.z = 0.0F; + this.bipedRightArm.x = -5.0F; + this.bipedLeftArm.z = 0.0F; + this.bipedLeftArm.x = 5.0F; float f = 1.0F; if (flag) { - f = (float)entity.getMotion().lengthSquared(); + f = (float)entity.getDeltaMovement().lengthSqr(); f = f / 0.2F; f = f * f * f; } @@ -92,195 +92,195 @@ public void setRotationAngles(T entity, float limbSwing, float limbSwingAmount, f = 1.0F; } - this.bipedRightArm.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 2.0F * limbSwingAmount * 0.5F / f; - this.bipedLeftArm.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 2.0F * limbSwingAmount * 0.5F / f; - this.bipedRightArm.rotateAngleZ = 0.0F; - this.bipedLeftArm.rotateAngleZ = 0.0F; - this.bipedRightLeg.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount / f; - this.bipedLeftLeg.rotateAngleX = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount / f; - this.bipedRightLeg.rotateAngleY = 0.0F; - this.bipedLeftLeg.rotateAngleY = 0.0F; - this.bipedRightLeg.rotateAngleZ = 0.0F; - this.bipedLeftLeg.rotateAngleZ = 0.0F; - if (this.isSitting) { - this.bipedRightArm.rotateAngleX += (-(float)Math.PI / 5F); - this.bipedLeftArm.rotateAngleX += (-(float)Math.PI / 5F); - this.bipedRightLeg.rotateAngleX = -1.4137167F; - this.bipedRightLeg.rotateAngleY = ((float)Math.PI / 10F); - this.bipedRightLeg.rotateAngleZ = 0.07853982F; - this.bipedLeftLeg.rotateAngleX = -1.4137167F; - this.bipedLeftLeg.rotateAngleY = (-(float)Math.PI / 10F); - this.bipedLeftLeg.rotateAngleZ = -0.07853982F; + this.bipedRightArm.xRot = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 2.0F * limbSwingAmount * 0.5F / f; + this.bipedLeftArm.xRot = MathHelper.cos(limbSwing * 0.6662F) * 2.0F * limbSwingAmount * 0.5F / f; + this.bipedRightArm.zRot = 0.0F; + this.bipedLeftArm.zRot = 0.0F; + this.bipedRightLeg.xRot = MathHelper.cos(limbSwing * 0.6662F) * 1.4F * limbSwingAmount / f; + this.bipedLeftLeg.xRot = MathHelper.cos(limbSwing * 0.6662F + (float)Math.PI) * 1.4F * limbSwingAmount / f; + this.bipedRightLeg.yRot = 0.0F; + this.bipedLeftLeg.yRot = 0.0F; + this.bipedRightLeg.zRot = 0.0F; + this.bipedLeftLeg.zRot = 0.0F; + if (this.riding) { + this.bipedRightArm.xRot += (-(float)Math.PI / 5F); + this.bipedLeftArm.xRot += (-(float)Math.PI / 5F); + this.bipedRightLeg.xRot = -1.4137167F; + this.bipedRightLeg.yRot = ((float)Math.PI / 10F); + this.bipedRightLeg.zRot = 0.07853982F; + this.bipedLeftLeg.xRot = -1.4137167F; + this.bipedLeftLeg.yRot = (-(float)Math.PI / 10F); + this.bipedLeftLeg.zRot = -0.07853982F; } - this.bipedRightArm.rotateAngleY = 0.0F; - this.bipedRightArm.rotateAngleZ = 0.0F; + this.bipedRightArm.yRot = 0.0F; + this.bipedRightArm.zRot = 0.0F; switch(this.leftArmPose) { case EMPTY: - this.bipedLeftArm.rotateAngleY = 0.0F; + this.bipedLeftArm.yRot = 0.0F; break; case BLOCK: - this.bipedLeftArm.rotateAngleX = this.bipedLeftArm.rotateAngleX * 0.5F - 0.9424779F; - this.bipedLeftArm.rotateAngleY = ((float)Math.PI / 6F); + this.bipedLeftArm.xRot = this.bipedLeftArm.xRot * 0.5F - 0.9424779F; + this.bipedLeftArm.yRot = ((float)Math.PI / 6F); break; case ITEM: - this.bipedLeftArm.rotateAngleX = this.bipedLeftArm.rotateAngleX * 0.5F - ((float)Math.PI / 10F); - this.bipedLeftArm.rotateAngleY = 0.0F; + this.bipedLeftArm.xRot = this.bipedLeftArm.xRot * 0.5F - ((float)Math.PI / 10F); + this.bipedLeftArm.yRot = 0.0F; } switch(this.rightArmPose) { case EMPTY: - this.bipedRightArm.rotateAngleY = 0.0F; + this.bipedRightArm.yRot = 0.0F; break; case BLOCK: - this.bipedRightArm.rotateAngleX = this.bipedRightArm.rotateAngleX * 0.5F - 0.9424779F; - this.bipedRightArm.rotateAngleY = (-(float)Math.PI / 6F); + this.bipedRightArm.xRot = this.bipedRightArm.xRot * 0.5F - 0.9424779F; + this.bipedRightArm.yRot = (-(float)Math.PI / 6F); break; case ITEM: - this.bipedRightArm.rotateAngleX = this.bipedRightArm.rotateAngleX * 0.5F - ((float)Math.PI / 10F); - this.bipedRightArm.rotateAngleY = 0.0F; + this.bipedRightArm.xRot = this.bipedRightArm.xRot * 0.5F - ((float)Math.PI / 10F); + this.bipedRightArm.yRot = 0.0F; break; case THROW_SPEAR: - this.bipedRightArm.rotateAngleX = this.bipedRightArm.rotateAngleX * 0.5F - (float)Math.PI; - this.bipedRightArm.rotateAngleY = 0.0F; + this.bipedRightArm.xRot = this.bipedRightArm.xRot * 0.5F - (float)Math.PI; + this.bipedRightArm.yRot = 0.0F; } if (this.leftArmPose == BipedModel.ArmPose.THROW_SPEAR && this.rightArmPose != BipedModel.ArmPose.BLOCK && this.rightArmPose != BipedModel.ArmPose.THROW_SPEAR && this.rightArmPose != BipedModel.ArmPose.BOW_AND_ARROW) { - this.bipedLeftArm.rotateAngleX = this.bipedLeftArm.rotateAngleX * 0.5F - (float)Math.PI; - this.bipedLeftArm.rotateAngleY = 0.0F; + this.bipedLeftArm.xRot = this.bipedLeftArm.xRot * 0.5F - (float)Math.PI; + this.bipedLeftArm.yRot = 0.0F; } - if (this.swingProgress > 0.0F) { - HandSide handside = this.getMainHand(entity); - ModelRenderer modelrenderer = this.getArmForSide(handside); - float f1 = this.swingProgress; - this.bipedBody.rotateAngleY = MathHelper.sin(MathHelper.sqrt(f1) * ((float)Math.PI * 2F)) * 0.2F; + if (this.attackTime > 0.0F) { + HandSide handside = this.getAttackArm(entity); + ModelRenderer modelrenderer = this.getArm(handside); + float f1 = this.attackTime; + this.bipedBody.yRot = MathHelper.sin(MathHelper.sqrt(f1) * ((float)Math.PI * 2F)) * 0.2F; if (handside == HandSide.LEFT) { - this.bipedBody.rotateAngleY *= -1.0F; + this.bipedBody.yRot *= -1.0F; } - this.bipedRightArm.rotationPointZ = MathHelper.sin(this.bipedBody.rotateAngleY) * 5.0F; - this.bipedRightArm.rotationPointX = -MathHelper.cos(this.bipedBody.rotateAngleY) * 5.0F; - this.bipedLeftArm.rotationPointZ = -MathHelper.sin(this.bipedBody.rotateAngleY) * 5.0F; - this.bipedLeftArm.rotationPointX = MathHelper.cos(this.bipedBody.rotateAngleY) * 5.0F; - this.bipedRightArm.rotateAngleY += this.bipedBody.rotateAngleY; - this.bipedLeftArm.rotateAngleY += this.bipedBody.rotateAngleY; - this.bipedLeftArm.rotateAngleX += this.bipedBody.rotateAngleY; - f1 = 1.0F - this.swingProgress; + this.bipedRightArm.z = MathHelper.sin(this.bipedBody.yRot) * 5.0F; + this.bipedRightArm.x = -MathHelper.cos(this.bipedBody.yRot) * 5.0F; + this.bipedLeftArm.z = -MathHelper.sin(this.bipedBody.yRot) * 5.0F; + this.bipedLeftArm.x = MathHelper.cos(this.bipedBody.yRot) * 5.0F; + this.bipedRightArm.yRot += this.bipedBody.yRot; + this.bipedLeftArm.yRot += this.bipedBody.yRot; + this.bipedLeftArm.xRot += this.bipedBody.yRot; + f1 = 1.0F - this.attackTime; f1 = f1 * f1; f1 = f1 * f1; f1 = 1.0F - f1; float f2 = MathHelper.sin(f1 * (float)Math.PI); - float f3 = MathHelper.sin(this.swingProgress * (float)Math.PI) * -(this.bipedHead.rotateAngleX - 0.7F) * 0.75F; - modelrenderer.rotateAngleX = (float)((double)modelrenderer.rotateAngleX - ((double)f2 * 1.2D + (double)f3)); - modelrenderer.rotateAngleY += this.bipedBody.rotateAngleY * 2.0F; - modelrenderer.rotateAngleZ += MathHelper.sin(this.swingProgress * (float)Math.PI) * -0.4F; + float f3 = MathHelper.sin(this.attackTime * (float)Math.PI) * -(this.bipedHead.xRot - 0.7F) * 0.75F; + modelrenderer.xRot = (float)((double)modelrenderer.xRot - ((double)f2 * 1.2D + (double)f3)); + modelrenderer.yRot += this.bipedBody.yRot * 2.0F; + modelrenderer.zRot += MathHelper.sin(this.attackTime * (float)Math.PI) * -0.4F; } - if (this.isSneak) { - this.bipedBody.rotateAngleX = 0.5F; - this.bipedRightArm.rotateAngleX += 0.4F; - this.bipedLeftArm.rotateAngleX += 0.4F; - this.bipedRightLeg.rotationPointZ = 4.0F; - this.bipedLeftLeg.rotationPointZ = 4.0F; - this.bipedRightLeg.rotationPointY = 12.2F; - this.bipedLeftLeg.rotationPointY = 12.2F; - this.bipedHead.rotationPointY = 4.2F; - this.bipedBody.rotationPointY = 3.2F; - this.bipedLeftArm.rotationPointY = 5.2F; - this.bipedRightArm.rotationPointY = 5.2F; + if (this.crouching) { + this.bipedBody.xRot = 0.5F; + this.bipedRightArm.xRot += 0.4F; + this.bipedLeftArm.xRot += 0.4F; + this.bipedRightLeg.z = 4.0F; + this.bipedLeftLeg.z = 4.0F; + this.bipedRightLeg.y = 12.2F; + this.bipedLeftLeg.y = 12.2F; + this.bipedHead.y = 4.2F; + this.bipedBody.y = 3.2F; + this.bipedLeftArm.y = 5.2F; + this.bipedRightArm.y = 5.2F; } else { - this.bipedBody.rotateAngleX = 0.0F; - this.bipedRightLeg.rotationPointZ = 0.1F; - this.bipedLeftLeg.rotationPointZ = 0.1F; - this.bipedRightLeg.rotationPointY = 12.0F; - this.bipedLeftLeg.rotationPointY = 12.0F; - this.bipedHead.rotationPointY = 0.0F; - this.bipedBody.rotationPointY = 0.0F; - this.bipedLeftArm.rotationPointY = 2.0F; - this.bipedRightArm.rotationPointY = 2.0F; + this.bipedBody.xRot = 0.0F; + this.bipedRightLeg.z = 0.1F; + this.bipedLeftLeg.z = 0.1F; + this.bipedRightLeg.y = 12.0F; + this.bipedLeftLeg.y = 12.0F; + this.bipedHead.y = 0.0F; + this.bipedBody.y = 0.0F; + this.bipedLeftArm.y = 2.0F; + this.bipedRightArm.y = 2.0F; } - this.bipedRightArm.rotateAngleZ += MathHelper.cos(ageInTicks * 0.09F) * 0.05F + 0.05F; - this.bipedLeftArm.rotateAngleZ -= MathHelper.cos(ageInTicks * 0.09F) * 0.05F + 0.05F; - this.bipedRightArm.rotateAngleX += MathHelper.sin(ageInTicks * 0.067F) * 0.05F; - this.bipedLeftArm.rotateAngleX -= MathHelper.sin(ageInTicks * 0.067F) * 0.05F; + this.bipedRightArm.zRot += MathHelper.cos(ageInTicks * 0.09F) * 0.05F + 0.05F; + this.bipedLeftArm.zRot -= MathHelper.cos(ageInTicks * 0.09F) * 0.05F + 0.05F; + this.bipedRightArm.xRot += MathHelper.sin(ageInTicks * 0.067F) * 0.05F; + this.bipedLeftArm.xRot -= MathHelper.sin(ageInTicks * 0.067F) * 0.05F; if (this.rightArmPose == BipedModel.ArmPose.BOW_AND_ARROW) { - this.bipedRightArm.rotateAngleY = -0.1F + this.bipedHead.rotateAngleY; - this.bipedLeftArm.rotateAngleY = 0.1F + this.bipedHead.rotateAngleY + 0.4F; - this.bipedRightArm.rotateAngleX = (-(float)Math.PI / 2F) + this.bipedHead.rotateAngleX; - this.bipedLeftArm.rotateAngleX = (-(float)Math.PI / 2F) + this.bipedHead.rotateAngleX; + this.bipedRightArm.yRot = -0.1F + this.bipedHead.yRot; + this.bipedLeftArm.yRot = 0.1F + this.bipedHead.yRot + 0.4F; + this.bipedRightArm.xRot = (-(float)Math.PI / 2F) + this.bipedHead.xRot; + this.bipedLeftArm.xRot = (-(float)Math.PI / 2F) + this.bipedHead.xRot; } else if (this.leftArmPose == BipedModel.ArmPose.BOW_AND_ARROW && this.rightArmPose != BipedModel.ArmPose.THROW_SPEAR && this.rightArmPose != BipedModel.ArmPose.BLOCK) { - this.bipedRightArm.rotateAngleY = -0.1F + this.bipedHead.rotateAngleY - 0.4F; - this.bipedLeftArm.rotateAngleY = 0.1F + this.bipedHead.rotateAngleY; - this.bipedRightArm.rotateAngleX = (-(float)Math.PI / 2F) + this.bipedHead.rotateAngleX; - this.bipedLeftArm.rotateAngleX = (-(float)Math.PI / 2F) + this.bipedHead.rotateAngleX; + this.bipedRightArm.yRot = -0.1F + this.bipedHead.yRot - 0.4F; + this.bipedLeftArm.yRot = 0.1F + this.bipedHead.yRot; + this.bipedRightArm.xRot = (-(float)Math.PI / 2F) + this.bipedHead.xRot; + this.bipedLeftArm.xRot = (-(float)Math.PI / 2F) + this.bipedHead.xRot; } - float f4 = (float) CrossbowItem.getChargeTime(entity.getActiveItemStack()); + float f4 = (float) CrossbowItem.getChargeDuration(entity.getUseItem()); if (this.rightArmPose == BipedModel.ArmPose.CROSSBOW_CHARGE) { - this.bipedRightArm.rotateAngleY = -0.8F; - this.bipedRightArm.rotateAngleX = -0.97079635F; - this.bipedLeftArm.rotateAngleX = -0.97079635F; + this.bipedRightArm.yRot = -0.8F; + this.bipedRightArm.xRot = -0.97079635F; + this.bipedLeftArm.xRot = -0.97079635F; float f5 = 0;//TODOMathHelper.clamp(this.remainingItemUseTime, 0.0F, f4); - this.bipedLeftArm.rotateAngleY = MathHelper.lerp(f5 / f4, 0.4F, 0.85F); - this.bipedLeftArm.rotateAngleX = MathHelper.lerp(f5 / f4, this.bipedLeftArm.rotateAngleX, (-(float)Math.PI / 2F)); + this.bipedLeftArm.yRot = MathHelper.lerp(f5 / f4, 0.4F, 0.85F); + this.bipedLeftArm.xRot = MathHelper.lerp(f5 / f4, this.bipedLeftArm.xRot, (-(float)Math.PI / 2F)); } else if (this.leftArmPose == BipedModel.ArmPose.CROSSBOW_CHARGE) { - this.bipedLeftArm.rotateAngleY = 0.8F; - this.bipedRightArm.rotateAngleX = -0.97079635F; - this.bipedLeftArm.rotateAngleX = -0.97079635F; + this.bipedLeftArm.yRot = 0.8F; + this.bipedRightArm.xRot = -0.97079635F; + this.bipedLeftArm.xRot = -0.97079635F; float f6 = 0;//TODOMathHelper.clamp(this.remainingItemUseTime, 0.0F, f4); - this.bipedRightArm.rotateAngleY = MathHelper.lerp(f6 / f4, -0.4F, -0.85F); - this.bipedRightArm.rotateAngleX = MathHelper.lerp(f6 / f4, this.bipedRightArm.rotateAngleX, (-(float)Math.PI / 2F)); + this.bipedRightArm.yRot = MathHelper.lerp(f6 / f4, -0.4F, -0.85F); + this.bipedRightArm.xRot = MathHelper.lerp(f6 / f4, this.bipedRightArm.xRot, (-(float)Math.PI / 2F)); } - if (this.rightArmPose == BipedModel.ArmPose.CROSSBOW_HOLD && this.swingProgress <= 0.0F) { - this.bipedRightArm.rotateAngleY = -0.3F + this.bipedHead.rotateAngleY; - this.bipedLeftArm.rotateAngleY = 0.6F + this.bipedHead.rotateAngleY; - this.bipedRightArm.rotateAngleX = (-(float)Math.PI / 2F) + this.bipedHead.rotateAngleX + 0.1F; - this.bipedLeftArm.rotateAngleX = -1.5F + this.bipedHead.rotateAngleX; + if (this.rightArmPose == BipedModel.ArmPose.CROSSBOW_HOLD && this.attackTime <= 0.0F) { + this.bipedRightArm.yRot = -0.3F + this.bipedHead.yRot; + this.bipedLeftArm.yRot = 0.6F + this.bipedHead.yRot; + this.bipedRightArm.xRot = (-(float)Math.PI / 2F) + this.bipedHead.xRot + 0.1F; + this.bipedLeftArm.xRot = -1.5F + this.bipedHead.xRot; } else if (this.leftArmPose == BipedModel.ArmPose.CROSSBOW_HOLD) { - this.bipedRightArm.rotateAngleY = -0.6F + this.bipedHead.rotateAngleY; - this.bipedLeftArm.rotateAngleY = 0.3F + this.bipedHead.rotateAngleY; - this.bipedRightArm.rotateAngleX = -1.5F + this.bipedHead.rotateAngleX; - this.bipedLeftArm.rotateAngleX = (-(float)Math.PI / 2F) + this.bipedHead.rotateAngleX + 0.1F; + this.bipedRightArm.yRot = -0.6F + this.bipedHead.yRot; + this.bipedLeftArm.yRot = 0.3F + this.bipedHead.yRot; + this.bipedRightArm.xRot = -1.5F + this.bipedHead.xRot; + this.bipedLeftArm.xRot = (-(float)Math.PI / 2F) + this.bipedHead.xRot + 0.1F; } - if (this.swimAnimation > 0.0F) { + if (this.swimAmount > 0.0F) { float f7 = limbSwing % 26.0F; - float f8 = this.swingProgress > 0.0F ? 0.0F : this.swimAnimation; + float f8 = this.attackTime > 0.0F ? 0.0F : this.swimAmount; if (f7 < 14.0F) { - this.bipedLeftArm.rotateAngleX = this.rotLerpRad(this.bipedLeftArm.rotateAngleX, 0.0F, this.swimAnimation); - this.bipedRightArm.rotateAngleX = MathHelper.lerp(f8, this.bipedRightArm.rotateAngleX, 0.0F); - this.bipedLeftArm.rotateAngleY = this.rotLerpRad(this.bipedLeftArm.rotateAngleY, (float)Math.PI, this.swimAnimation); - this.bipedRightArm.rotateAngleY = MathHelper.lerp(f8, this.bipedRightArm.rotateAngleY, (float)Math.PI); - this.bipedLeftArm.rotateAngleZ = this.rotLerpRad(this.bipedLeftArm.rotateAngleZ, (float)Math.PI + 1.8707964F * this.getArmAngleSq(f7) / this.getArmAngleSq(14.0F), this.swimAnimation); - this.bipedRightArm.rotateAngleZ = MathHelper.lerp(f8, this.bipedRightArm.rotateAngleZ, (float)Math.PI - 1.8707964F * this.getArmAngleSq(f7) / this.getArmAngleSq(14.0F)); + this.bipedLeftArm.xRot = this.rotlerpRad(this.bipedLeftArm.xRot, 0.0F, this.swimAmount); + this.bipedRightArm.xRot = MathHelper.lerp(f8, this.bipedRightArm.xRot, 0.0F); + this.bipedLeftArm.yRot = this.rotlerpRad(this.bipedLeftArm.yRot, (float)Math.PI, this.swimAmount); + this.bipedRightArm.yRot = MathHelper.lerp(f8, this.bipedRightArm.yRot, (float)Math.PI); + this.bipedLeftArm.zRot = this.rotlerpRad(this.bipedLeftArm.zRot, (float)Math.PI + 1.8707964F * this.getArmAngleSq(f7) / this.getArmAngleSq(14.0F), this.swimAmount); + this.bipedRightArm.zRot = MathHelper.lerp(f8, this.bipedRightArm.zRot, (float)Math.PI - 1.8707964F * this.getArmAngleSq(f7) / this.getArmAngleSq(14.0F)); } else if (f7 >= 14.0F && f7 < 22.0F) { float f10 = (f7 - 14.0F) / 8.0F; - this.bipedLeftArm.rotateAngleX = this.rotLerpRad(this.bipedLeftArm.rotateAngleX, ((float)Math.PI / 2F) * f10, this.swimAnimation); - this.bipedRightArm.rotateAngleX = MathHelper.lerp(f8, this.bipedRightArm.rotateAngleX, ((float)Math.PI / 2F) * f10); - this.bipedLeftArm.rotateAngleY = this.rotLerpRad(this.bipedLeftArm.rotateAngleY, (float)Math.PI, this.swimAnimation); - this.bipedRightArm.rotateAngleY = MathHelper.lerp(f8, this.bipedRightArm.rotateAngleY, (float)Math.PI); - this.bipedLeftArm.rotateAngleZ = this.rotLerpRad(this.bipedLeftArm.rotateAngleZ, 5.012389F - 1.8707964F * f10, this.swimAnimation); - this.bipedRightArm.rotateAngleZ = MathHelper.lerp(f8, this.bipedRightArm.rotateAngleZ, 1.2707963F + 1.8707964F * f10); + this.bipedLeftArm.xRot = this.rotlerpRad(this.bipedLeftArm.xRot, ((float)Math.PI / 2F) * f10, this.swimAmount); + this.bipedRightArm.xRot = MathHelper.lerp(f8, this.bipedRightArm.xRot, ((float)Math.PI / 2F) * f10); + this.bipedLeftArm.yRot = this.rotlerpRad(this.bipedLeftArm.yRot, (float)Math.PI, this.swimAmount); + this.bipedRightArm.yRot = MathHelper.lerp(f8, this.bipedRightArm.yRot, (float)Math.PI); + this.bipedLeftArm.zRot = this.rotlerpRad(this.bipedLeftArm.zRot, 5.012389F - 1.8707964F * f10, this.swimAmount); + this.bipedRightArm.zRot = MathHelper.lerp(f8, this.bipedRightArm.zRot, 1.2707963F + 1.8707964F * f10); } else if (f7 >= 22.0F && f7 < 26.0F) { float f9 = (f7 - 22.0F) / 4.0F; - this.bipedLeftArm.rotateAngleX = this.rotLerpRad(this.bipedLeftArm.rotateAngleX, ((float)Math.PI / 2F) - ((float)Math.PI / 2F) * f9, this.swimAnimation); - this.bipedRightArm.rotateAngleX = MathHelper.lerp(f8, this.bipedRightArm.rotateAngleX, ((float)Math.PI / 2F) - ((float)Math.PI / 2F) * f9); - this.bipedLeftArm.rotateAngleY = this.rotLerpRad(this.bipedLeftArm.rotateAngleY, (float)Math.PI, this.swimAnimation); - this.bipedRightArm.rotateAngleY = MathHelper.lerp(f8, this.bipedRightArm.rotateAngleY, (float)Math.PI); - this.bipedLeftArm.rotateAngleZ = this.rotLerpRad(this.bipedLeftArm.rotateAngleZ, (float)Math.PI, this.swimAnimation); - this.bipedRightArm.rotateAngleZ = MathHelper.lerp(f8, this.bipedRightArm.rotateAngleZ, (float)Math.PI); + this.bipedLeftArm.xRot = this.rotlerpRad(this.bipedLeftArm.xRot, ((float)Math.PI / 2F) - ((float)Math.PI / 2F) * f9, this.swimAmount); + this.bipedRightArm.xRot = MathHelper.lerp(f8, this.bipedRightArm.xRot, ((float)Math.PI / 2F) - ((float)Math.PI / 2F) * f9); + this.bipedLeftArm.yRot = this.rotlerpRad(this.bipedLeftArm.yRot, (float)Math.PI, this.swimAmount); + this.bipedRightArm.yRot = MathHelper.lerp(f8, this.bipedRightArm.yRot, (float)Math.PI); + this.bipedLeftArm.zRot = this.rotlerpRad(this.bipedLeftArm.zRot, (float)Math.PI, this.swimAmount); + this.bipedRightArm.zRot = MathHelper.lerp(f8, this.bipedRightArm.zRot, (float)Math.PI); } float f11 = 0.3F; float f12 = 0.33333334F; - this.bipedLeftLeg.rotateAngleX = MathHelper.lerp(this.swimAnimation, this.bipedLeftLeg.rotateAngleX, 0.3F * MathHelper.cos(limbSwing * 0.33333334F + (float)Math.PI)); - this.bipedRightLeg.rotateAngleX = MathHelper.lerp(this.swimAnimation, this.bipedRightLeg.rotateAngleX, 0.3F * MathHelper.cos(limbSwing * 0.33333334F)); + this.bipedLeftLeg.xRot = MathHelper.lerp(this.swimAmount, this.bipedLeftLeg.xRot, 0.3F * MathHelper.cos(limbSwing * 0.33333334F + (float)Math.PI)); + this.bipedRightLeg.xRot = MathHelper.lerp(this.swimAmount, this.bipedRightLeg.xRot, 0.3F * MathHelper.cos(limbSwing * 0.33333334F)); } - this.bipedHeadwear.copyModelAngles(this.bipedHead); + this.hat.copyFrom(this.bipedHead); if (entity instanceof ArmorStandEntity) { setRotationAngles((ArmorStandEntity) entity, limbSwing, limbSwingAmount, ageInTicks, netHeadYaw, headPitch); @@ -289,34 +289,34 @@ public void setRotationAngles(T entity, float limbSwing, float limbSwingAmount, } @Override - protected ModelRenderer getArmForSide(HandSide side) { + protected ModelRenderer getArm(HandSide side) { return side == HandSide.LEFT ? this.bipedLeftArm : this.bipedRightArm; } private void setRotationAngles(ArmorStandEntity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { - this.bipedHead.rotateAngleX = ((float)Math.PI / 180F) * entityIn.getHeadRotation().getX(); - this.bipedHead.rotateAngleY = ((float)Math.PI / 180F) * entityIn.getHeadRotation().getY(); - this.bipedHead.rotateAngleZ = ((float)Math.PI / 180F) * entityIn.getHeadRotation().getZ(); - this.bipedHead.setRotationPoint(0.0F, 1.0F, 0.0F); - this.bipedBody.rotateAngleX = ((float)Math.PI / 180F) * entityIn.getBodyRotation().getX(); - this.bipedBody.rotateAngleY = ((float)Math.PI / 180F) * entityIn.getBodyRotation().getY(); - this.bipedBody.rotateAngleZ = ((float)Math.PI / 180F) * entityIn.getBodyRotation().getZ(); - this.bipedLeftArm.rotateAngleX = ((float)Math.PI / 180F) * entityIn.getLeftArmRotation().getX(); - this.bipedLeftArm.rotateAngleY = ((float)Math.PI / 180F) * entityIn.getLeftArmRotation().getY(); - this.bipedLeftArm.rotateAngleZ = ((float)Math.PI / 180F) * entityIn.getLeftArmRotation().getZ(); - this.bipedRightArm.rotateAngleX = ((float)Math.PI / 180F) * entityIn.getRightArmRotation().getX(); - this.bipedRightArm.rotateAngleY = ((float)Math.PI / 180F) * entityIn.getRightArmRotation().getY(); - this.bipedRightArm.rotateAngleZ = ((float)Math.PI / 180F) * entityIn.getRightArmRotation().getZ(); - this.bipedLeftLeg.rotateAngleX = ((float)Math.PI / 180F) * entityIn.getLeftLegRotation().getX(); - this.bipedLeftLeg.rotateAngleY = ((float)Math.PI / 180F) * entityIn.getLeftLegRotation().getY(); - this.bipedLeftLeg.rotateAngleZ = ((float)Math.PI / 180F) * entityIn.getLeftLegRotation().getZ(); - this.bipedLeftLeg.setRotationPoint(1.9F, 11.0F, 0.0F); - this.bipedRightLeg.rotateAngleX = ((float)Math.PI / 180F) * entityIn.getRightLegRotation().getX(); - this.bipedRightLeg.rotateAngleY = ((float)Math.PI / 180F) * entityIn.getRightLegRotation().getY(); - this.bipedRightLeg.rotateAngleZ = ((float)Math.PI / 180F) * entityIn.getRightLegRotation().getZ(); - this.bipedRightLeg.setRotationPoint(-1.9F, 11.0F, 0.0F); - this.bipedHeadwear.copyModelAngles(this.bipedHead); + this.bipedHead.xRot = ((float)Math.PI / 180F) * entityIn.getHeadPose().getX(); + this.bipedHead.yRot = ((float)Math.PI / 180F) * entityIn.getHeadPose().getY(); + this.bipedHead.zRot = ((float)Math.PI / 180F) * entityIn.getHeadPose().getZ(); + this.bipedHead.setPos(0.0F, 1.0F, 0.0F); + this.bipedBody.xRot = ((float)Math.PI / 180F) * entityIn.getBodyPose().getX(); + this.bipedBody.yRot = ((float)Math.PI / 180F) * entityIn.getBodyPose().getY(); + this.bipedBody.zRot = ((float)Math.PI / 180F) * entityIn.getBodyPose().getZ(); + this.bipedLeftArm.xRot = ((float)Math.PI / 180F) * entityIn.getLeftArmPose().getX(); + this.bipedLeftArm.yRot = ((float)Math.PI / 180F) * entityIn.getLeftArmPose().getY(); + this.bipedLeftArm.zRot = ((float)Math.PI / 180F) * entityIn.getLeftArmPose().getZ(); + this.bipedRightArm.xRot = ((float)Math.PI / 180F) * entityIn.getRightArmPose().getX(); + this.bipedRightArm.yRot = ((float)Math.PI / 180F) * entityIn.getRightArmPose().getY(); + this.bipedRightArm.zRot = ((float)Math.PI / 180F) * entityIn.getRightArmPose().getZ(); + this.bipedLeftLeg.xRot = ((float)Math.PI / 180F) * entityIn.getLeftLegPose().getX(); + this.bipedLeftLeg.yRot = ((float)Math.PI / 180F) * entityIn.getLeftLegPose().getY(); + this.bipedLeftLeg.zRot = ((float)Math.PI / 180F) * entityIn.getLeftLegPose().getZ(); + this.bipedLeftLeg.setPos(1.9F, 11.0F, 0.0F); + this.bipedRightLeg.xRot = ((float)Math.PI / 180F) * entityIn.getRightLegPose().getX(); + this.bipedRightLeg.yRot = ((float)Math.PI / 180F) * entityIn.getRightLegPose().getY(); + this.bipedRightLeg.zRot = ((float)Math.PI / 180F) * entityIn.getRightLegPose().getZ(); + this.bipedRightLeg.setPos(-1.9F, 11.0F, 0.0F); + this.hat.copyFrom(this.bipedHead); } private float getArmAngleSq(float limbSwing) { diff --git a/src/main/java/com/brandon3055/draconicevolution/client/model/tool/VBOModelRender.java b/src/main/java/com/brandon3055/draconicevolution/client/model/tool/VBOModelRender.java index b4eea95ab..240731bed 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/model/tool/VBOModelRender.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/model/tool/VBOModelRender.java @@ -19,7 +19,7 @@ public class VBOModelRender extends ModelRenderer { private final VBORenderType vboRenderer; private Supplier shaderTypeGetter; - private Supplier enabledCallback = () -> this.showModel; + private Supplier enabledCallback = () -> this.visible; public VBOModelRender(Model model, VBORenderType vboRenderer) { super(model); @@ -43,19 +43,19 @@ public void render(MatrixStack mStack, IVertexBuilder buffer, int packedLight, i public void render(MatrixStack mStack, IRenderTypeBuffer getter, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { if (enabledCallback.get() && vboRenderer != null) { - mStack.push(); - this.translateRotate(mStack); + mStack.pushPose(); + this.translateAndRotate(mStack); if (shaderTypeGetter != null && DEConfig.toolShaders) { getter.getBuffer(vboRenderer.withMatrix(new Matrix4(mStack)).withLightMap(packedLight).withState(shaderTypeGetter.get())); } else { getter.getBuffer(vboRenderer.withMatrix(new Matrix4(mStack)).withLightMap(packedLight)); } - for (ModelRenderer child : this.childModels) { + for (ModelRenderer child : this.children) { if (child instanceof VBOModelRender) { ((VBOModelRender) child).render(mStack, getter, packedLight, packedOverlay, red, green, blue, alpha); } } - mStack.pop(); + mStack.popPose(); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXBase.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXBase.java index 9038fa12f..8e62e0260 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXBase.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXBase.java @@ -21,7 +21,7 @@ public abstract class CrystalFXBase exte private int ttl = 10; public CrystalFXBase(ClientWorld worldIn, T tile) { - super(worldIn, tile.getPos().getX() + 0.5, tile.getPos().getY() + 0.5, tile.getPos().getZ() + 0.5); + super(worldIn, tile.getBlockPos().getX() + 0.5, tile.getBlockPos().getY() + 0.5, tile.getBlockPos().getZ() + 0.5); this.tile = tile; } @@ -38,7 +38,7 @@ public void updateFX(float fxState) { this.fxState = fxState; ticksTillDeath = 4; if (ttl-- <= 0) { - setExpired(); + remove(); } } @@ -48,12 +48,12 @@ public void tick() { } protected void setPosition(Vec3D pos) { - setPosition(pos.x, pos.y, pos.z); + setPos(pos.x, pos.y, pos.z); } protected Vector3f[] getRenderVectors(ActiveRenderInfo renderInfo, float viewX, float viewY, float viewZ, float scale) { Quaternion quaternion; - quaternion = renderInfo.getRotation(); + quaternion = renderInfo.rotation(); Vector3f vector3f1 = new Vector3f(-1.0F, -1.0F, 0.0F); vector3f1.transform(quaternion); Vector3f[] renderVector = new Vector3f[]{new Vector3f(-1.0F, -1.0F, 0.0F), new Vector3f(-1.0F, 1.0F, 0.0F), new Vector3f(1.0F, 1.0F, 0.0F), new Vector3f(1.0F, -1.0F, 0.0F)}; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXBeam.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXBeam.java index d6cb86386..958223978 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXBeam.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXBeam.java @@ -40,12 +40,12 @@ public class CrystalFXBeam extends Cryst public CrystalFXBeam(World worldIn, T tile, ICrystalLink linkTarget) { super((ClientWorld)worldIn, tile); - this.age = worldIn.rand.nextInt(1024); - this.setPosition(tile.getBeamLinkPos(((TileEntity) linkTarget).getPos())); + this.age = worldIn.random.nextInt(1024); + this.setPosition(tile.getBeamLinkPos(((TileEntity) linkTarget).getBlockPos())); this.terminateSource = tile.renderBeamTermination(); - this.linkTarget = linkTarget.getBeamLinkPos(tile.getPos()); + this.linkTarget = linkTarget.getBeamLinkPos(tile.getBlockPos()); this.terminateTarget = linkTarget.renderBeamTermination(); - setBoundingBox(new AxisAlignedBB(posX, posY, posZ, this.linkTarget.x, this.linkTarget.y, this.linkTarget.z)); + setBoundingBox(new AxisAlignedBB(x, y, z, this.linkTarget.x, this.linkTarget.y, this.linkTarget.z)); } @@ -54,23 +54,23 @@ public void tick() { super.tick(); BCProfiler.TICK.start("crystal_beam_fx_update"); if (ticksTillDeath-- <= 0) { - setExpired(); + remove(); } float[] r = {0.0F, 0.8F, 1.0F}; float[] g = {0.8F, 0.1F, 0.7F}; float[] b = {1F, 1F, 0.2F}; - particleRed = r[tile.getTier()]; - particleGreen = g[tile.getTier()]; - particleBlue = b[tile.getTier()]; + rCol = r[tile.getTier()]; + gCol = g[tile.getTier()]; + bCol = b[tile.getTier()]; powerLevel = (float) MathHelper.approachExp(powerLevel, fxState, 0.05); BCProfiler.TICK.stop(); } @Override - public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { + public void render(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { if (powerLevel <= 0 && !ClientEventHandler.playerHoldingWrench) { return; } @@ -81,8 +81,8 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f scale = 0.1F; } - Vector3d viewVec = renderInfo.getProjectedView(); - Vector3 source = new Vector3(posX - viewVec.x, posY - viewVec.y, posZ - viewVec.z); + Vector3d viewVec = renderInfo.getPosition(); + Vector3 source = new Vector3(x - viewVec.x, y - viewVec.y, z - viewVec.z); Vector3 target = linkTarget.toVector3().subtract(viewVec.x, viewVec.y, viewVec.z); Vector3 dirVec = source.copy().subtract(target).normalize(); Vector3 planeA = dirVec.copy().perpendicular().normalize(); @@ -128,25 +128,25 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f if (terminateSource) { - float viewX = (float) (this.posX - viewVec.getX()); - float viewY = (float) (this.posY - viewVec.getY()); - float viewZ = (float) (this.posZ - viewVec.getZ()); + float viewX = (float) (this.x - viewVec.x()); + float viewY = (float) (this.y - viewVec.y()); + float viewZ = (float) (this.z - viewVec.z()); Vector3f[] renderVector = getRenderVectors(renderInfo, viewX, viewY, viewZ, scale); - buffer.pos(renderVector[0].getX(), renderVector[0].getY(), renderVector[0].getZ()).tex(maxU, maxV).endVertex(); - buffer.pos(renderVector[1].getX(), renderVector[1].getY(), renderVector[1].getZ()).tex(maxU, minV).endVertex(); - buffer.pos(renderVector[2].getX(), renderVector[2].getY(), renderVector[2].getZ()).tex(minU, minV).endVertex(); - buffer.pos(renderVector[3].getX(), renderVector[3].getY(), renderVector[3].getZ()).tex(minU, maxV).endVertex(); + buffer.vertex(renderVector[0].x(), renderVector[0].y(), renderVector[0].z()).uv(maxU, maxV).endVertex(); + buffer.vertex(renderVector[1].x(), renderVector[1].y(), renderVector[1].z()).uv(maxU, minV).endVertex(); + buffer.vertex(renderVector[2].x(), renderVector[2].y(), renderVector[2].z()).uv(minU, minV).endVertex(); + buffer.vertex(renderVector[3].x(), renderVector[3].y(), renderVector[3].z()).uv(minU, maxV).endVertex(); } if (terminateTarget) { - float viewX = (float) (this.linkTarget.x - viewVec.getX()); - float viewY = (float) (this.linkTarget.y - viewVec.getY()); - float viewZ = (float) (this.linkTarget.z - viewVec.getZ()); + float viewX = (float) (this.linkTarget.x - viewVec.x()); + float viewY = (float) (this.linkTarget.y - viewVec.y()); + float viewZ = (float) (this.linkTarget.z - viewVec.z()); Vector3f[] renderVector = getRenderVectors(renderInfo, viewX, viewY, viewZ, scale); - buffer.pos(renderVector[0].getX(), renderVector[0].getY(), renderVector[0].getZ()).tex(maxU, maxV).endVertex(); - buffer.pos(renderVector[1].getX(), renderVector[1].getY(), renderVector[1].getZ()).tex(maxU, minV).endVertex(); - buffer.pos(renderVector[2].getX(), renderVector[2].getY(), renderVector[2].getZ()).tex(minU, minV).endVertex(); - buffer.pos(renderVector[3].getX(), renderVector[3].getY(), renderVector[3].getZ()).tex(minU, maxV).endVertex(); + buffer.vertex(renderVector[0].x(), renderVector[0].y(), renderVector[0].z()).uv(maxU, maxV).endVertex(); + buffer.vertex(renderVector[1].x(), renderVector[1].y(), renderVector[1].z()).uv(maxU, minV).endVertex(); + buffer.vertex(renderVector[2].x(), renderVector[2].y(), renderVector[2].z()).uv(minU, minV).endVertex(); + buffer.vertex(renderVector[3].x(), renderVector[3].y(), renderVector[3].z()).uv(minU, maxV).endVertex(); } BCProfiler.RENDER.stop(); @@ -154,10 +154,10 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f private void bufferQuad(IVertexBuilder buffer, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, float anim, float dist) { BCProfiler.RENDER.start("buffer_quad"); - buffer.pos(p1.x, p1.y, p1.z).tex(0.5F, anim).endVertex(); - buffer.pos(p2.x, p2.y, p2.z).tex(0.5F, dist + anim).endVertex(); - buffer.pos(p4.x, p4.y, p4.z).tex(1.0F, dist + anim).endVertex(); - buffer.pos(p3.x, p3.y, p3.z).tex(1.0F, anim).endVertex(); + buffer.vertex(p1.x, p1.y, p1.z).uv(0.5F, anim).endVertex(); + buffer.vertex(p2.x, p2.y, p2.z).uv(0.5F, dist + anim).endVertex(); + buffer.vertex(p4.x, p4.y, p4.z).uv(1.0F, dist + anim).endVertex(); + buffer.vertex(p3.x, p3.y, p3.z).uv(1.0F, anim).endVertex(); BCProfiler.RENDER.stop(); } @@ -180,7 +180,7 @@ public FXHandler(String texture) { } @Override - public void beginRender(BufferBuilder builder, TextureManager p_217600_2_) { + public void begin(BufferBuilder builder, TextureManager p_217600_2_) { ResourceHelperDE.bindTexture(texture); RenderSystem.color4f(1.0F, green, 1.0F, 1.0F); @@ -199,8 +199,8 @@ public void beginRender(BufferBuilder builder, TextureManager p_217600_2_) { } @Override - public void finishRender(Tessellator tessellator) { - tessellator.draw(); + public void end(Tessellator tessellator) { + tessellator.end(); } } } \ No newline at end of file diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXIO.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXIO.java index 2b325921c..934d38dcf 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXIO.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXIO.java @@ -26,41 +26,41 @@ public class CrystalFXIO extends CrystalFXBase { public CrystalFXIO(ClientWorld worldIn, TileCrystalBase tile) { super(worldIn, tile); - this.age = worldIn.rand.nextInt(1024); - this.rSeed = tile.getPos().toLong(); + this.age = worldIn.random.nextInt(1024); + this.rSeed = tile.getBlockPos().asLong(); } @Override public void tick() { super.tick(); if (ticksTillDeath-- <= 0) { - setExpired(); + remove(); } float[] r = {0.0F, 0.8F, 1.0F}; float[] g = {0.8F, 0.1F, 0.7F}; float[] b = {1F, 1F, 0.2F}; - particleRed = r[tile.getTier()]; - particleGreen = g[tile.getTier()]; - particleBlue = b[tile.getTier()]; + rCol = r[tile.getTier()]; + gCol = g[tile.getTier()]; + bCol = b[tile.getTier()]; } @Override - public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { + public void render(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { if (!renderEnabled) { return; } - Vector3d viewVec = renderInfo.getProjectedView(); - float viewX = (float) (this.posX - viewVec.getX()); - float viewY = (float) (this.posY - viewVec.getY()); - float viewZ = (float) (this.posZ - viewVec.getZ()); + Vector3d viewVec = renderInfo.getPosition(); + float viewX = (float) (this.x - viewVec.x()); + float viewY = (float) (this.y - viewVec.y()); + float viewZ = (float) (this.z - viewVec.z()); Vector3f[] renderVector = getRenderVectors(renderInfo, viewX, viewY, viewZ, 0.2F); - buffer.pos(renderVector[0].getX(), renderVector[0].getY(), renderVector[0].getZ()).tex(0.5F, 0.5F).endVertex(); - buffer.pos(renderVector[1].getX(), renderVector[1].getY(), renderVector[1].getZ()).tex(0.5F, 0.0F).endVertex(); - buffer.pos(renderVector[2].getX(), renderVector[2].getY(), renderVector[2].getZ()).tex(0.0F, 0.0F).endVertex(); - buffer.pos(renderVector[3].getX(), renderVector[3].getY(), renderVector[3].getZ()).tex(0.0F, 0.5F).endVertex(); + buffer.vertex(renderVector[0].x(), renderVector[0].y(), renderVector[0].z()).uv(0.5F, 0.5F).endVertex(); + buffer.vertex(renderVector[1].x(), renderVector[1].y(), renderVector[1].z()).uv(0.5F, 0.0F).endVertex(); + buffer.vertex(renderVector[2].x(), renderVector[2].y(), renderVector[2].z()).uv(0.0F, 0.0F).endVertex(); + buffer.vertex(renderVector[3].x(), renderVector[3].y(), renderVector[3].z()).uv(0.0F, 0.5F).endVertex(); } @Override @@ -81,7 +81,7 @@ public FXHandler(String texture) { } @Override - public void beginRender(BufferBuilder builder, TextureManager textureManager) { + public void begin(BufferBuilder builder, TextureManager textureManager) { RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); ResourceHelperDE.bindTexture(texture); @@ -95,8 +95,8 @@ public void beginRender(BufferBuilder builder, TextureManager textureManager) { } @Override - public void finishRender(Tessellator tessellator) { - tessellator.draw(); + public void end(Tessellator tessellator) { + tessellator.end(); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXLink.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXLink.java index af4a9abbe..461c57102 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXLink.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXLink.java @@ -37,33 +37,33 @@ public class CrystalFXLink extends CrystalFXBase { public CrystalFXLink(ClientWorld worldIn, TileCrystalBase tile, Vec3D linkTarget) { super(worldIn, tile); - this.age = worldIn.rand.nextInt(1024); + this.age = worldIn.random.nextInt(1024); this.setPosition(tile.getBeamLinkPos(linkTarget.getPos())); this.terminateSource = true; this.linkTarget = linkTarget; Direction face = tile instanceof TileCrystalWirelessIO ? ((TileCrystalWirelessIO) tile).getReceiversFaces().get(linkTarget.getPos()) : null; if (face != null) { - linkTarget.add(face.getXOffset() * 0.6, face.getYOffset() * 0.6, face.getZOffset() * 0.6); + linkTarget.add(face.getStepX() * 0.6, face.getStepY() * 0.6, face.getStepZ() * 0.6); } this.terminateTarget = true; - setBoundingBox(new AxisAlignedBB(posX, posY, posZ, this.linkTarget.x, this.linkTarget.y, this.linkTarget.z)); + setBoundingBox(new AxisAlignedBB(x, y, z, this.linkTarget.x, this.linkTarget.y, this.linkTarget.z)); } @Override public void tick() { super.tick(); if (!ClientEventHandler.playerHoldingWrench && timeout <= 0) { - setExpired(); + remove(); } else if (timeout > 0) { timeout--; } } @Override - public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { + public void render(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { float scale = 0.1F + (timeout * 0.005F); - Vector3d viewVec = renderInfo.getProjectedView(); - Vector3 source = new Vector3(posX - viewVec.x, posY - viewVec.y, posZ - viewVec.z); + Vector3d viewVec = renderInfo.getPosition(); + Vector3 source = new Vector3(x - viewVec.x, y - viewVec.y, z - viewVec.z); Vector3 target = linkTarget.toVector3().subtract(viewVec.x, viewVec.y, viewVec.z); Vector3 dirVec = source.copy().subtract(target).normalize(); Vector3 planeA = dirVec.copy().perpendicular().normalize(); @@ -109,34 +109,34 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f if (terminateSource) { - float viewX = (float) (this.posX - viewVec.getX()); - float viewY = (float) (this.posY - viewVec.getY()); - float viewZ = (float) (this.posZ - viewVec.getZ()); + float viewX = (float) (this.x - viewVec.x()); + float viewY = (float) (this.y - viewVec.y()); + float viewZ = (float) (this.z - viewVec.z()); Vector3f[] renderVector = getRenderVectors(renderInfo, viewX, viewY, viewZ, scale); - buffer.pos(renderVector[0].getX(), renderVector[0].getY(), renderVector[0].getZ()).tex(maxU, maxV).endVertex(); - buffer.pos(renderVector[1].getX(), renderVector[1].getY(), renderVector[1].getZ()).tex(maxU, minV).endVertex(); - buffer.pos(renderVector[2].getX(), renderVector[2].getY(), renderVector[2].getZ()).tex(minU, minV).endVertex(); - buffer.pos(renderVector[3].getX(), renderVector[3].getY(), renderVector[3].getZ()).tex(minU, maxV).endVertex(); + buffer.vertex(renderVector[0].x(), renderVector[0].y(), renderVector[0].z()).uv(maxU, maxV).endVertex(); + buffer.vertex(renderVector[1].x(), renderVector[1].y(), renderVector[1].z()).uv(maxU, minV).endVertex(); + buffer.vertex(renderVector[2].x(), renderVector[2].y(), renderVector[2].z()).uv(minU, minV).endVertex(); + buffer.vertex(renderVector[3].x(), renderVector[3].y(), renderVector[3].z()).uv(minU, maxV).endVertex(); } if (terminateTarget) { - float viewX = (float) (this.linkTarget.x - viewVec.getX()); - float viewY = (float) (this.linkTarget.y - viewVec.getY()); - float viewZ = (float) (this.linkTarget.z - viewVec.getZ()); + float viewX = (float) (this.linkTarget.x - viewVec.x()); + float viewY = (float) (this.linkTarget.y - viewVec.y()); + float viewZ = (float) (this.linkTarget.z - viewVec.z()); Vector3f[] renderVector = getRenderVectors(renderInfo, viewX, viewY, viewZ, scale); - buffer.pos(renderVector[0].getX(), renderVector[0].getY(), renderVector[0].getZ()).tex(maxU, maxV).endVertex(); - buffer.pos(renderVector[1].getX(), renderVector[1].getY(), renderVector[1].getZ()).tex(maxU, minV).endVertex(); - buffer.pos(renderVector[2].getX(), renderVector[2].getY(), renderVector[2].getZ()).tex(minU, minV).endVertex(); - buffer.pos(renderVector[3].getX(), renderVector[3].getY(), renderVector[3].getZ()).tex(minU, maxV).endVertex(); + buffer.vertex(renderVector[0].x(), renderVector[0].y(), renderVector[0].z()).uv(maxU, maxV).endVertex(); + buffer.vertex(renderVector[1].x(), renderVector[1].y(), renderVector[1].z()).uv(maxU, minV).endVertex(); + buffer.vertex(renderVector[2].x(), renderVector[2].y(), renderVector[2].z()).uv(minU, minV).endVertex(); + buffer.vertex(renderVector[3].x(), renderVector[3].y(), renderVector[3].z()).uv(minU, maxV).endVertex(); } } private void bufferQuad(IVertexBuilder buffer, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, float anim, float dist) { - buffer.pos(p1.x, p1.y, p1.z).tex(0.5F, anim).endVertex(); - buffer.pos(p2.x, p2.y, p2.z).tex(0.5F, dist + anim).endVertex(); - buffer.pos(p4.x, p4.y, p4.z).tex(1.0F, dist + anim).endVertex(); - buffer.pos(p3.x, p3.y, p3.z).tex(1.0F, anim).endVertex(); + buffer.vertex(p1.x, p1.y, p1.z).uv(0.5F, anim).endVertex(); + buffer.vertex(p2.x, p2.y, p2.z).uv(0.5F, dist + anim).endVertex(); + buffer.vertex(p4.x, p4.y, p4.z).uv(1.0F, dist + anim).endVertex(); + buffer.vertex(p3.x, p3.y, p3.z).uv(1.0F, anim).endVertex(); } @Override @@ -151,7 +151,7 @@ public static class FXHandler implements IParticleRenderType { public FXHandler() {} @Override - public void beginRender(BufferBuilder builder, TextureManager p_217600_2_) { + public void begin(BufferBuilder builder, TextureManager p_217600_2_) { RenderSystem.disableCull(); RenderSystem.depthMask(false); RenderSystem.alphaFunc(516, 0.003921569F); @@ -166,8 +166,8 @@ public void beginRender(BufferBuilder builder, TextureManager p_217600_2_) { } @Override - public void finishRender(Tessellator tessellator) { - tessellator.draw(); + public void end(Tessellator tessellator) { + tessellator.end(); RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); // RenderSystem.enableTexture2D(); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXRing.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXRing.java index f231f6b43..ecc9ed255 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXRing.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXRing.java @@ -29,44 +29,44 @@ public class CrystalFXRing extends CrystalFXBase { public CrystalFXRing(ClientWorld worldIn, TileCrystalBase tile) { super(worldIn, tile); - this.age = worldIn.rand.nextInt(1024); - this.rSeed = tile.getPos().toLong(); + this.age = worldIn.random.nextInt(1024); + this.rSeed = tile.getBlockPos().asLong(); } @Override public void tick() { super.tick(); if (ticksTillDeath-- <= 0) { - setExpired(); + remove(); } float[] r = {0.0F, 0.8F, 1.0F}; float[] g = {0.8F, 0.1F, 0.7F}; float[] b = {1F, 1F, 0.2F}; - particleRed = r[tile.getTier()]; - particleGreen = g[tile.getTier()]; - particleBlue = b[tile.getTier()]; + rCol = r[tile.getTier()]; + gCol = g[tile.getTier()]; + bCol = b[tile.getTier()]; } @Override - public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { + public void render(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { if (!renderEnabled || DETextures.ENERGY_PARTICLE == null || DETextures.ENERGY_PARTICLE[0] == null) { return; } boolean wierless = tile.getCrystalType() == EnergyCrystal.CrystalType.WIRELESS; - rand.setSeed(rSeed); + random.setSeed(rSeed); float animTime = ClientEventHandler.elapsedTicks + age + partialTicks; //region variables - Vector3d view = renderInfo.getProjectedView(); - float viewX = (float) (this.posX - view.getX()); - float viewY = (float) (this.posY - view.getY()); - float viewZ = (float) (this.posZ - view.getZ()); - double mipLevel = Math.max(0, Math.min(1, (renderInfo.getBlockPos().distanceSq(posX, posY, posZ, true) - 20) / 600D)); + Vector3d view = renderInfo.getPosition(); + float viewX = (float) (this.x - view.x()); + float viewY = (float) (this.y - view.y()); + float viewZ = (float) (this.z - view.z()); + double mipLevel = Math.max(0, Math.min(1, (renderInfo.getBlockPosition().distSqr(x, y, z, true) - 20) / 600D)); //endregion @@ -76,16 +76,16 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f for (int i = 0; i < pCount; i++) { double rotation = i / pCount * (3.141 * 2D) + animTime / 80D; - float rFloat3 = rand.nextFloat(); - float rFloat4 = rand.nextFloat(); + float rFloat3 = random.nextFloat(); + float rFloat4 = random.nextFloat(); //region Shadow float scale = 0.01F + (rFloat4 * 0.05F) + ((float) mipLevel * 0.2F); float a = 1; - float r = particleRed; - float g = particleGreen; - float b = particleBlue; + float r = rCol; + float g = gCol; + float b = bCol; rotation -= 0.05F; //endregion @@ -93,9 +93,9 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f //region Sub Circular Calculation double subRotationRadius = (0.1 * rFloat3) + 0.02; - double dir = rand.nextBoolean() ? 1 : -1; - double sy = Math.cos(dir * rotation * (rFloat3 * 10) * (1 - (rand.nextFloat() * 0.2F))) * subRotationRadius; - double sx = Math.sin(dir * rotation * (rFloat3 * 10) * (1 - (rand.nextFloat() * 0.2F))) * subRotationRadius; + double dir = random.nextBoolean() ? 1 : -1; + double sy = Math.cos(dir * rotation * (rFloat3 * 10) * (1 - (random.nextFloat() * 0.2F))) * subRotationRadius; + double sx = Math.sin(dir * rotation * (rFloat3 * 10) * (1 - (random.nextFloat() * 0.2F))) * subRotationRadius; float drawY = viewY + (float) sy; double renderRadius = 0.4 + sx; @@ -110,16 +110,16 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f int texIndex = (ClientEventHandler.elapsedTicks) % DETextures.ENERGY_PARTICLE.length; TextureAtlasSprite sprite = DETextures.ENERGY_PARTICLE[texIndex]; - float minU = sprite.getMinU(); - float maxU = sprite.getMaxU(); - float minV = sprite.getMinV(); - float maxV = sprite.getMaxV(); + float minU = sprite.getU0(); + float maxU = sprite.getU1(); + float minV = sprite.getV0(); + float maxV = sprite.getV1(); Vector3f[] renderVector = getRenderVectors(renderInfo, drawX, drawY, drawZ, scale); - buffer.pos(renderVector[0].getX(), renderVector[0].getY(), renderVector[0].getZ()).color(r, g, b, a).tex(maxU, maxV).endVertex(); - buffer.pos(renderVector[1].getX(), renderVector[1].getY(), renderVector[1].getZ()).color(r, g, b, a).tex(maxU, minV).endVertex(); - buffer.pos(renderVector[2].getX(), renderVector[2].getY(), renderVector[2].getZ()).color(r, g, b, a).tex(minU, minV).endVertex(); - buffer.pos(renderVector[3].getX(), renderVector[3].getY(), renderVector[3].getZ()).color(r, g, b, a).tex(minU, maxV).endVertex(); + buffer.vertex(renderVector[0].x(), renderVector[0].y(), renderVector[0].z()).color(r, g, b, a).uv(maxU, maxV).endVertex(); + buffer.vertex(renderVector[1].x(), renderVector[1].y(), renderVector[1].z()).color(r, g, b, a).uv(maxU, minV).endVertex(); + buffer.vertex(renderVector[2].x(), renderVector[2].y(), renderVector[2].z()).color(r, g, b, a).uv(minU, minV).endVertex(); + buffer.vertex(renderVector[3].x(), renderVector[3].y(), renderVector[3].z()).color(r, g, b, a).uv(minU, maxV).endVertex(); //region Inner scale = 0.01F + (rFloat4 * 0.04F) * (float) Math.sin((animTime + i) / 30) + ((float) mipLevel * 0.05F); @@ -137,15 +137,15 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f g = wierless ? 0 : 1; b = wierless ? 0 : 1; - minU = DETextures.ORB_PARTICLE.getMinU(); - maxU = DETextures.ORB_PARTICLE.getMaxU(); - minV = DETextures.ORB_PARTICLE.getMinV(); - maxV = DETextures.ORB_PARTICLE.getMaxV(); + minU = DETextures.ORB_PARTICLE.getU0(); + maxU = DETextures.ORB_PARTICLE.getU1(); + minV = DETextures.ORB_PARTICLE.getV0(); + maxV = DETextures.ORB_PARTICLE.getV1(); renderVector = getRenderVectors(renderInfo, drawX, drawY, drawZ, scale); - buffer.pos(renderVector[0].getX(), renderVector[0].getY(), renderVector[0].getZ()).color(r, g, b, a).tex(maxU, maxV).endVertex(); - buffer.pos(renderVector[1].getX(), renderVector[1].getY(), renderVector[1].getZ()).color(r, g, b, a).tex(maxU, minV).endVertex(); - buffer.pos(renderVector[2].getX(), renderVector[2].getY(), renderVector[2].getZ()).color(r, g, b, a).tex(minU, minV).endVertex(); - buffer.pos(renderVector[3].getX(), renderVector[3].getY(), renderVector[3].getZ()).color(r, g, b, a).tex(minU, maxV).endVertex(); + buffer.vertex(renderVector[0].x(), renderVector[0].y(), renderVector[0].z()).color(r, g, b, a).uv(maxU, maxV).endVertex(); + buffer.vertex(renderVector[1].x(), renderVector[1].y(), renderVector[1].z()).color(r, g, b, a).uv(maxU, minV).endVertex(); + buffer.vertex(renderVector[2].x(), renderVector[2].y(), renderVector[2].z()).color(r, g, b, a).uv(minU, minV).endVertex(); + buffer.vertex(renderVector[3].x(), renderVector[3].y(), renderVector[3].z()).color(r, g, b, a).uv(minU, maxV).endVertex(); // buffer.pos(drawX - rotationX * scale - rotationXY * scale, drawY - rotationZ * scale, drawZ - rotationYZ * scale - rotationXZ * scale).color(r, g, b, a).tex(maxU, maxV).endVertex(); // buffer.pos(drawX - rotationX * scale + rotationXY * scale, drawY + rotationZ * scale, drawZ - rotationYZ * scale + rotationXZ * scale).color(r, g, b, a).tex(maxU, minV).endVertex(); @@ -265,7 +265,7 @@ public IParticleRenderType getRenderType() { public static final IParticleRenderType RENDER_TYPE = new IParticleRenderType() { @Override - public void beginRender(BufferBuilder builder, TextureManager textureManager) { + public void begin(BufferBuilder builder, TextureManager textureManager) { RenderSystem.depthMask(false); RenderSystem.alphaFunc(516, 0.003921569F); RenderSystem.enableBlend(); @@ -273,14 +273,14 @@ public void beginRender(BufferBuilder builder, TextureManager textureManager) { RenderSystem.glMultiTexCoord2f(0x84c2, 240.0F, 240.0F); //Lightmap RenderSystem.color4f(1.0F, 1.0F, 1.0F, 1.0F); - textureManager.bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE); + textureManager.bind(AtlasTexture.LOCATION_BLOCKS); builder.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_COLOR_TEX); } @Override - public void finishRender(Tessellator tessellator) { - tessellator.getBuffer().sortVertexData(0, 0, 0); - tessellator.draw(); + public void end(Tessellator tessellator) { + tessellator.getBuilder().sortQuads(0, 0, 0); + tessellator.end(); } }; } \ No newline at end of file diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXWireless.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXWireless.java index 82bb8772b..bd19d8787 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXWireless.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/CrystalFXWireless.java @@ -43,25 +43,25 @@ public class CrystalFXWireless extends CrystalFXBase { public CrystalFXWireless(ClientWorld worldIn, TileCrystalWirelessIO tile, BlockPos linkTarget) { super(worldIn, tile); - this.age = worldIn.rand.nextInt(1024); + this.age = worldIn.random.nextInt(1024); this.setPosition(tile.getBeamLinkPos(linkTarget)); this.linkTarget = linkTarget; BlockState state = worldIn.getBlockState(linkTarget); VoxelShape shape = state.getShape(worldIn, linkTarget); - if (shape.isEmpty()) shape = VoxelShapes.fullCube(); - targetBB = shape.getBoundingBox(); - targetBB.shrink(0.05); - setBoundingBox(new AxisAlignedBB(posX, posY, posZ, this.linkTarget.getX(), this.linkTarget.getY(), this.linkTarget.getZ())); + if (shape.isEmpty()) shape = VoxelShapes.block(); + targetBB = shape.bounds(); + targetBB.deflate(0.05); + setBoundingBox(new AxisAlignedBB(x, y, z, this.linkTarget.getX(), this.linkTarget.getY(), this.linkTarget.getZ())); } @Override public void tick() { super.tick(); if (ticksTillDeath-- <= 0) { - setExpired(); + remove(); } - particleRed = particleGreen = particleBlue = particleAlpha = 1; + rCol = gCol = bCol = alpha = 1; powerLevel = (float) MathHelper.approachExp(powerLevel, fxState, 0.05); Iterator i = trackers.iterator(); @@ -74,31 +74,31 @@ public void tick() { } } - int ps = Minecraft.getInstance().gameSettings.particles.getId(); - if (age % 2 == 0 && powerLevel > rand.nextFloat() && (ps == 0 || (ps == 1 && rand.nextInt(3) == 0) || (ps == 2 && rand.nextInt(10) == 0))) { - double travel = 50 + rand.nextInt(50); + int ps = Minecraft.getInstance().options.particles.getId(); + if (age % 2 == 0 && powerLevel > random.nextFloat() && (ps == 0 || (ps == 1 && random.nextInt(3) == 0) || (ps == 2 && random.nextInt(10) == 0))) { + double travel = 50 + random.nextInt(50); travel *= (1.4F - powerLevel); - trackers.add(new PTracker((int) travel, new Vector3(targetBB.minX + (rand.nextDouble() * (targetBB.maxX - targetBB.minX)), targetBB.minY + (rand.nextDouble() * (targetBB.maxY - targetBB.minY)), targetBB.minZ + (rand.nextDouble() * (targetBB.maxZ - targetBB.minZ))))); + trackers.add(new PTracker((int) travel, new Vector3(targetBB.minX + (random.nextDouble() * (targetBB.maxX - targetBB.minX)), targetBB.minY + (random.nextDouble() * (targetBB.maxY - targetBB.minY)), targetBB.minZ + (random.nextDouble() * (targetBB.maxZ - targetBB.minZ))))); } age++; } @Override - public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { + public void render(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { int texIndex = (ClientEventHandler.elapsedTicks) % DETextures.ENERGY_PARTICLE.length; TextureAtlasSprite sprite = DETextures.ENERGY_PARTICLE[texIndex]; if (sprite == null) return; - float minU = sprite.getMinU(); - float maxU = sprite.getMaxU(); - float minV = sprite.getMinV(); - float maxV = sprite.getMaxV(); + float minU = sprite.getU0(); + float maxU = sprite.getU1(); + float minV = sprite.getV0(); + float maxV = sprite.getV1(); float scale = 0.08F; boolean output = !tile.inputMode.get(); - Vector3d view = renderInfo.getProjectedView(); - Vector3 source = new Vector3(posX - view.x, posY - view.y, posZ - view.z); + Vector3d view = renderInfo.getPosition(); + Vector3 source = new Vector3(x - view.x, y - view.y, z - view.z); Vector3 target = Vector3.fromBlockPos(linkTarget).subtract(view.x, view.y, view.z); for (PTracker tracker : trackers) { @@ -113,10 +113,10 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f pathVec.add(source); Vector3f[] renderVector = getRenderVectors(renderInfo, (float) pathVec.x, (float) pathVec.y, (float) pathVec.z, scale); - buffer.pos(renderVector[0].getX(), renderVector[0].getY(), renderVector[0].getZ()).tex(maxU, maxV).endVertex(); - buffer.pos(renderVector[1].getX(), renderVector[1].getY(), renderVector[1].getZ()).tex(maxU, minV).endVertex(); - buffer.pos(renderVector[2].getX(), renderVector[2].getY(), renderVector[2].getZ()).tex(minU, minV).endVertex(); - buffer.pos(renderVector[3].getX(), renderVector[3].getY(), renderVector[3].getZ()).tex(minU, maxV).endVertex(); + buffer.vertex(renderVector[0].x(), renderVector[0].y(), renderVector[0].z()).uv(maxU, maxV).endVertex(); + buffer.vertex(renderVector[1].x(), renderVector[1].y(), renderVector[1].z()).uv(maxU, minV).endVertex(); + buffer.vertex(renderVector[2].x(), renderVector[2].y(), renderVector[2].z()).uv(minU, minV).endVertex(); + buffer.vertex(renderVector[3].x(), renderVector[3].y(), renderVector[3].z()).uv(minU, maxV).endVertex(); } } @@ -138,9 +138,9 @@ public FXHandler(String texture) { } @Override - public void beginRender(BufferBuilder builder, TextureManager textureManager) { + public void begin(BufferBuilder builder, TextureManager textureManager) { RenderSystem.color4f(0.0F, 1.0F, 1.0F, 1.0F); - textureManager.bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE); + textureManager.bind(AtlasTexture.LOCATION_BLOCKS); RenderSystem.depthMask(false); RenderSystem.alphaFunc(516, 0.003921569F); @@ -152,8 +152,8 @@ public void beginRender(BufferBuilder builder, TextureManager textureManager) { } @Override - public void finishRender(Tessellator tessellator) { - tessellator.draw(); + public void end(Tessellator tessellator) { + tessellator.end(); RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/EffectTrackerCelestialManipulator.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/EffectTrackerCelestialManipulator.java index 86d5c518d..0cf9ab020 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/EffectTrackerCelestialManipulator.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/EffectTrackerCelestialManipulator.java @@ -81,7 +81,7 @@ public void onUpdate() { } public void renderEffect(Tessellator tessellator, float partialTicks) { - BufferBuilder vertexbuffer = tessellator.getBuffer(); + BufferBuilder vertexbuffer = tessellator.getBuilder(); CCRenderState ccrs = CCRenderState.instance(); //region Icosahedron @@ -104,7 +104,7 @@ public void renderEffect(Tessellator tessellator, float partialTicks) { Matrix4 pearlMat = RenderUtils.getMatrix(new Vector3(relativeX, relativeY, relativeZ), new Rotation(0F, new Vector3(0, 0, 0)), 0.15 * scale); ccrs.bind(vertexbuffer); CCModelLibrary.icosahedron7.render(ccrs, pearlMat); - tessellator.draw(); + tessellator.end(); RenderSystem.popMatrix(); RenderSystem.color4f(1F, 1F, 1F, 1F); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/EffectTrackerFusionCrafting.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/EffectTrackerFusionCrafting.java index 9a52fe55e..d59fef1ba 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/EffectTrackerFusionCrafting.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/EffectTrackerFusionCrafting.java @@ -71,7 +71,7 @@ public void onUpdate(boolean isMoving) { //region Movement if (isMoving) { if (pos.equals(startPos)) { - world.playSound(pos.x, pos.y, pos.z, DESounds.fusionComplete, SoundCategory.BLOCKS, 0.5F, 0.5F, false); + world.playLocalSound(pos.x, pos.y, pos.z, DESounds.fusionComplete, SoundCategory.BLOCKS, 0.5F, 0.5F, false); } double distance = Utils.getDistanceAtoB(circlePosition, pos); @@ -87,7 +87,7 @@ public void onUpdate(boolean isMoving) { } else { if (!positionLocked) { - world.playSound(pos.x, pos.y, pos.z, DESounds.fusionComplete, SoundCategory.BLOCKS, 2F, 0.5F, false); + world.playLocalSound(pos.x, pos.y, pos.z, DESounds.fusionComplete, SoundCategory.BLOCKS, 2F, 0.5F, false); } positionLocked = true; pos.set(circlePosition); @@ -120,11 +120,11 @@ public void onUpdate(boolean isMoving) { boltSeed = rand.nextLong(); Vec3D pos = corePos.copy().add(0.5, 0.5, 0.5); // BCEffectHandler.spawnFXDirect(DEParticles.DE_SHEET, new SubParticle(world, pos)); - world.playSound(pos.x, pos.y, pos.z, DESounds.energyBolt, SoundCategory.BLOCKS, 1F, 0.9F + rand.nextFloat() * 0.2F, false); + world.playLocalSound(pos.x, pos.y, pos.z, DESounds.energyBolt, SoundCategory.BLOCKS, 1F, 0.9F + rand.nextFloat() * 0.2F, false); } if (craftingInventory.getCraftingStage() < 1000) { - TileEntity tile = world.getTileEntity(pos.getPos()); + TileEntity tile = world.getBlockEntity(pos.getPos()); if (tile instanceof TileCraftingInjector && craftingInventory.getIngredientEnergyCost() > 0) { alpha = (float) (((TileCraftingInjector) tile).getInjectorCharge() / (double) craftingInventory.getIngredientEnergyCost()); } @@ -146,7 +146,7 @@ public void onUpdate(boolean isMoving) { } public void renderEffect(Tessellator tessellator, float partialTicks) { - BufferBuilder vertexbuffer = tessellator.getBuffer(); + BufferBuilder vertexbuffer = tessellator.getBuilder(); CCRenderState ccrs = CCRenderState.instance(); //region Icosahedron @@ -169,7 +169,7 @@ public void renderEffect(Tessellator tessellator, float partialTicks) { Matrix4 pearlMat = RenderUtils.getMatrix(new Vector3(relativeX, relativeY, relativeZ), new Rotation(0F, new Vector3(0, 0, 0)), 0.15 * scale); ccrs.bind(vertexbuffer); CCModelLibrary.icosahedron7.render(ccrs, pearlMat); - tessellator.draw(); + tessellator.end(); RenderSystem.popMatrix(); RenderSystem.color4f(1F, 1F, 1F, 1F); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/ExplosionFX.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/ExplosionFX.java index c7b02f47a..c403a939b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/ExplosionFX.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/ExplosionFX.java @@ -93,7 +93,7 @@ public ExplosionFX(ClientWorld worldIn, Vec3D pos, int radius) { super(worldIn, pos.x, pos.y, pos.z); this.pos = pos; this.radius = radius; - maxAge = 20 * 12; + lifetime = 20 * 12; coreEffect = new CoreEffect(0); } @@ -119,8 +119,8 @@ public void tick() { coreEffect.update(); - if (age > maxAge) { - setExpired(); + if (age > lifetime) { + remove(); } if (age == 0) { @@ -135,29 +135,29 @@ else if (age > 30 && age <= 35) { } if (age == 10) { - world.playSound(posX, posY, posZ, DESounds.fusionExplosion, SoundCategory.PLAYERS, 100, 0.9F, false); + level.playLocalSound(x, y, z, DESounds.fusionExplosion, SoundCategory.PLAYERS, 100, 0.9F, false); } this.age++; } @Override - public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { - Vector3d viewVec = renderInfo.getProjectedView(); - Vec3D pos = new Vec3D(posX - viewVec.x, posY - viewVec.y, posZ - viewVec.z); + public void render(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { + Vector3d viewVec = renderInfo.getPosition(); + Vec3D pos = new Vec3D(x - viewVec.x, y - viewVec.y, z - viewVec.z); CCRenderState ccrs = CCRenderState.instance(); ccrs.reset(); ccrs.baseColour = 0xFFFFFFFF; - float ttl = 1F - (((float) age + partialTicks) / (float) maxAge); + float ttl = 1F - (((float) age + partialTicks) / (float) lifetime); ttl = Math.min(1, ttl * 5); double od = 1200; double id = radius / 100D; RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE); - RenderSystem.color4f(1F, 1F, 1F, 0.15F * ttl * Math.min(1, maxAge / 25F)); + RenderSystem.color4f(1F, 1F, 1F, 0.15F * ttl * Math.min(1, lifetime / 25F)); ccrs.startDrawing(GL11.GL_TRIANGLES, DefaultVertexFormats.POSITION_TEX); for (double i = 0; i < 16; i+= 1) { Matrix4 mat = RenderUtils.getMatrix(pos.toVector3(), new Rotation(0, 0, 1, 0), 1).apply(new Scale(od, id * i, od)); @@ -186,7 +186,7 @@ public IParticleRenderType getRenderType() { public static class FXHandler implements IParticleRenderType { @Override - public void beginRender(BufferBuilder builder, TextureManager p_217600_2_) { + public void begin(BufferBuilder builder, TextureManager p_217600_2_) { RenderSystem.color4f(1F, 1F, 1F, 1F); RenderSystem.depthMask(false); RenderSystem.alphaFunc(GL11.GL_GREATER, 0F); @@ -201,7 +201,7 @@ public void beginRender(BufferBuilder builder, TextureManager p_217600_2_) { } @Override - public void finishRender(Tessellator tessellator) { + public void end(Tessellator tessellator) { RenderSystem.alphaFunc(GL11.GL_GREATER, 0.1F); RenderSystem.enableTexture(); RenderSystem.enableCull(); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/ReactorBeamFX.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/ReactorBeamFX.java index a03412a63..ae0f0fbc0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/ReactorBeamFX.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/ReactorBeamFX.java @@ -53,10 +53,10 @@ public class ReactorBeamFX extends Particle { private int boltSeed = -1; private int ttl = 10; - public static final RenderType fallBackType = RenderType.makeType("fall_back_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/particle/reactor_energy_beam.png"), false, false)) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + public static final RenderType fallBackType = RenderType.create("fall_back_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/particle/reactor_energy_beam.png"), false, false)) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); public static ShaderProgram beamShaderI = ShaderProgramBuilder.builder() @@ -97,9 +97,9 @@ public ReactorBeamFX(ClientWorld worldIn, Vec3D pos, Direction facing, TileReact this.tile = tile; this.facing = facing; this.isInjectorEffect = isInjectorEffect; - this.dist = (float) Utils.getDistanceAtoB(pos, Vec3D.getCenter(tile.getPos())); - this.rand.setSeed(worldIn.rand.nextLong()); - setBoundingBox(new AxisAlignedBB(posX, posY, posZ, tile.getPos().getX(), tile.getPos().getY(), tile.getPos().getZ())); + this.dist = (float) Utils.getDistanceAtoB(pos, Vec3D.getCenter(tile.getBlockPos())); + this.random.setSeed(worldIn.random.nextLong()); + setBoundingBox(new AxisAlignedBB(x, y, z, tile.getBlockPos().getX(), tile.getBlockPos().getY(), tile.getBlockPos().getZ())); } public void updateFX(float fxState, float powerState) { @@ -112,20 +112,20 @@ public void updateFX(float fxState, float powerState) { this.powerState = powerState; ticksTillDeath = 4; if (ttl-- <= 0) { - setExpired(); + remove(); } } @Override public void tick() { if (ticksTillDeath-- <= 0) { - setExpired(); + remove(); } ttl = 10; } @Override - public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { + public void render(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { if (tile.roller != null || !(buffer instanceof BufferBuilder)) { return; } @@ -134,8 +134,8 @@ public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, f ccrs.bind(buffer, DefaultVertexFormats.POSITION_COLOR_TEX); ccrs.brightness = 240; - Vector3d viewVec = renderInfo.getProjectedView(); - Vec3D pos1 = new Vec3D(posX - viewVec.x, posY - viewVec.y, posZ - viewVec.z).offset(facing, -0.35D); + Vector3d viewVec = renderInfo.getPosition(); + Vec3D pos1 = new Vec3D(x - viewVec.x, y - viewVec.y, z - viewVec.z).offset(facing, -0.35D); float texOffset = (ClientEventHandler.elapsedTicks + partialTicks) / -150F; float coreSize = (float) tile.getCoreDiameter() / 2.3F; @@ -215,10 +215,10 @@ public void renderBeam(CCRenderState ccrs, IVertexBuilder buffer, Vec3D pos, flo float cos = (float) MathHelper.cos(angle); float texX = i / sides; Vec3D point = pos.copy().radialOffset(facing.getAxis(), sin, cos, widthStart); - buffer.pos(point.x, point.y, point.z).color(r, g, b, fadeReverse ? 0F : fxState).tex(texX, 0 + beamAnimation).endVertex(); + buffer.vertex(point.x, point.y, point.z).color(r, g, b, fadeReverse ? 0F : fxState).uv(texX, 0 + beamAnimation).endVertex(); point.offset(facing, length); point.radialOffset(facing.getAxis(), sin, cos, widthEnd - widthStart); - buffer.pos(point.x, point.y, point.z).color(r, g, b, fadeReverse ? fxState : 0F).tex(texX, 0.1F + beamAnimation).endVertex(); + buffer.vertex(point.x, point.y, point.z).color(r, g, b, fadeReverse ? fxState : 0F).uv(texX, 0.1F + beamAnimation).endVertex(); } ccrs.draw(); } @@ -252,10 +252,10 @@ public void renderShaderBeam(CCRenderState ccrs, IVertexBuilder buffer, Vec3D po float cos = (float) MathHelper.cos(angle); float texX = i / sides; Vec3D point = pos.copy().radialOffset(facing.getAxis(), sin, cos, widthStart); - buffer.pos(point.x, point.y, point.z).color(1F, 1F, 1F, fadeReverse ? 0F : fxState).tex(texX, (fadeReverse ? 0.1F : 1F)).endVertex(); + buffer.vertex(point.x, point.y, point.z).color(1F, 1F, 1F, fadeReverse ? 0F : fxState).uv(texX, (fadeReverse ? 0.1F : 1F)).endVertex(); point.offset(facing, length); point.radialOffset(facing.getAxis(), sin, cos, widthEnd - widthStart); - buffer.pos(point.x, point.y, point.z).color(1F, 1F, 1F, fadeReverse ? fxState : 0F).tex(texX, 0).endVertex(); + buffer.vertex(point.x, point.y, point.z).color(1F, 1F, 1F, fadeReverse ? fxState : 0F).uv(texX, 0).endVertex(); } // ccrs.draw(); } @@ -275,7 +275,7 @@ public FXHandler(String texture) { } @Override - public void beginRender(BufferBuilder builder, TextureManager p_217600_2_) { + public void begin(BufferBuilder builder, TextureManager p_217600_2_) { ResourceHelperDE.bindTexture(texture); RenderSystem.disableCull(); RenderSystem.depthMask(false); @@ -293,7 +293,7 @@ public void beginRender(BufferBuilder builder, TextureManager p_217600_2_) { } @Override - public void finishRender(Tessellator tessellator) { + public void end(Tessellator tessellator) { RenderSystem.alphaFunc(GL11.GL_GREATER, 0.1F); RenderSystem.enableCull(); if (!DEConfig.reactorShaders) { diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/RenderEnergyBolt.java b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/RenderEnergyBolt.java index 955073823..597a7126d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/effect/RenderEnergyBolt.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/effect/RenderEnergyBolt.java @@ -167,7 +167,7 @@ public static void renderCorona(Vec3D source, Vec3D target, double scale, double @Deprecated private static void drawBoltSegment(Tessellator tessellator, Vec3D p1, Vec3D p2, float scale) { - BufferBuilder buffer = tessellator.getBuffer(); + BufferBuilder buffer = tessellator.getBuilder(); RenderSystem.pushMatrix(); RenderSystem.translated(p1.x, p1.y, p1.z); @@ -190,10 +190,10 @@ private static void drawBoltSegment(Tessellator tessellator, Vec3D p1, Vec3D p2, float verX = MathHelper.sin((float) (i % 3) * (float) Math.PI * 2F / (float) 3) * f * scale; float verZ = MathHelper.cos((float) (i % 3) * (float) Math.PI * 2F / (float) 3) * f * scale; - buffer.pos(verX, dist, verZ).color(0.35F, 0.65F, 0.9F, 0.3F).endVertex(); - buffer.pos(verX, 0, verZ).color(0.35F, 0.65F, 0.9F, 0.3F).endVertex(); + buffer.vertex(verX, dist, verZ).color(0.35F, 0.65F, 0.9F, 0.3F).endVertex(); + buffer.vertex(verX, 0, verZ).color(0.35F, 0.65F, 0.9F, 0.3F).endVertex(); } - tessellator.draw(); + tessellator.end(); RenderSystem.popMatrix(); } @@ -225,8 +225,8 @@ public static void renderVanillaLightning(MatrixStack mStack, IRenderTypeBuffer cumulativeZ += (float)(random.nextInt(11) - 5); } - IVertexBuilder builder = getter.getBuffer(RenderType.getLightning()); - Matrix4f matrix4f = mStack.getLast().getMatrix(); + IVertexBuilder builder = getter.getBuffer(RenderType.lightning()); + Matrix4f matrix4f = mStack.last().pose(); //Render each bolt layer for(int layer = 0; layer < 4; ++layer) { @@ -284,9 +284,9 @@ public static void renderVanillaLightning(MatrixStack mStack, IRenderTypeBuffer private static void addVanillaSegmentQuad(Matrix4f matrix4f, IVertexBuilder builder, float x1, float z1, int segIndex, float x2, float z2, float red, float green, float blue, float offsetA, float offsetB, boolean invA, boolean invB, boolean invC, boolean invD) { float segHeight = 16F; - builder.pos(matrix4f, x1 + (invA ? offsetB : -offsetB), segIndex * segHeight, z1 + (invB ? offsetB : -offsetB)).color(red, green, blue, 0.3F).endVertex(); - builder.pos(matrix4f, x2 + (invA ? offsetA : -offsetA), (segIndex + 1F) * segHeight, z2 + (invB ? offsetA : -offsetA)).color(red, green, blue, 0.3F).endVertex(); - builder.pos(matrix4f, x2 + (invC ? offsetA : -offsetA), (segIndex + 1F) * segHeight, z2 + (invD ? offsetA : -offsetA)).color(red, green, blue, 0.3F).endVertex(); - builder.pos(matrix4f, x1 + (invC ? offsetB : -offsetB), segIndex * segHeight, z1 + (invD ? offsetB : -offsetB)).color(red, green, blue, 0.3F).endVertex(); + builder.vertex(matrix4f, x1 + (invA ? offsetB : -offsetB), segIndex * segHeight, z1 + (invB ? offsetB : -offsetB)).color(red, green, blue, 0.3F).endVertex(); + builder.vertex(matrix4f, x2 + (invA ? offsetA : -offsetA), (segIndex + 1F) * segHeight, z2 + (invB ? offsetA : -offsetA)).color(red, green, blue, 0.3F).endVertex(); + builder.vertex(matrix4f, x2 + (invC ? offsetA : -offsetA), (segIndex + 1F) * segHeight, z2 + (invD ? offsetA : -offsetA)).color(red, green, blue, 0.3F).endVertex(); + builder.vertex(matrix4f, x1 + (invC ? offsetB : -offsetB), segIndex * segHeight, z1 + (invD ? offsetB : -offsetB)).color(red, green, blue, 0.3F).endVertex(); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/DraconicGuardianRenderer.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/DraconicGuardianRenderer.java index ef0b9f6b0..291e958d1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/DraconicGuardianRenderer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/DraconicGuardianRenderer.java @@ -43,18 +43,18 @@ public class DraconicGuardianRenderer extends EntityRenderer shader @@ -67,7 +67,7 @@ public class DraconicGuardianRenderer extends EntityRenderer cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 20)) + .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 20)) .build(); private static final float sqrt3div2 = (float) (Math.sqrt(3.0D) / 2.0D); @@ -76,35 +76,35 @@ public class DraconicGuardianRenderer extends EntityRenderer 0; - this.model.setLivingAnimations(guardian, 0.0F, 0.0F, partialTicks); + this.model.prepareMobModel(guardian, 0.0F, 0.0F, partialTicks); if (guardian.deathTicks > 0) { float progress = (float) guardian.deathTicks / 200.0F; - IVertexBuilder builder = getter.getBuffer(RenderType.getEntityAlpha(DRAGON_EXPLODING_TEXTURES, progress)); - this.model.render(mStack, builder, packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); + IVertexBuilder builder = getter.getBuffer(RenderType.dragonExplosionAlpha(DRAGON_EXPLODING_TEXTURES, progress)); + this.model.renderToBuffer(mStack, builder, packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); builder = getter.getBuffer(dragonDeathType); - this.model.render(mStack, builder, packedLight, OverlayTexture.getPackedUV(0.0F, flag), 1.0F, 1.0F, 1.0F, 1.0F); + this.model.renderToBuffer(mStack, builder, packedLight, OverlayTexture.pack(0.0F, flag), 1.0F, 1.0F, 1.0F, 1.0F); } else { IVertexBuilder builder = getter.getBuffer(dragonCutoutType); - this.model.render(mStack, builder, packedLight, OverlayTexture.getPackedUV(0.0F, flag), 1.0F, 1.0F, 1.0F, 1.0F); + this.model.renderToBuffer(mStack, builder, packedLight, OverlayTexture.pack(0.0F, flag), 1.0F, 1.0F, 1.0F, 1.0F); } IVertexBuilder builder; - int shieldState = guardian.getDataManager().get(DraconicGuardianEntity.SHIELD_STATE); + int shieldState = guardian.getEntityData().get(DraconicGuardianEntity.SHIELD_STATE); if (shieldState > 0) { float hit = (shieldState / 500F) - 1F; Color color = Color.getHSBColor(hit / 8F, 1, 1); @@ -112,29 +112,29 @@ public void render(DraconicGuardianEntity guardian, float entityYaw, float parti UniformCache uniforms = shieldShader.pushCache(); uniforms.glUniform4f("baseColour", color.getRed() / 255F, color.getGreen() / 255F, color.getBlue() / 255F, 1.5F * (shieldState / 500F)); builder = getter.getBuffer(new ShaderRenderType(shieldType, shieldShader, uniforms)); - this.model.render(mStack, builder, packedLight, OverlayTexture.getPackedUV(0.0F, flag), 1.0F, 1.0F, 1.0F, 1.0F); + this.model.renderToBuffer(mStack, builder, packedLight, OverlayTexture.pack(0.0F, flag), 1.0F, 1.0F, 1.0F, 1.0F); } builder = getter.getBuffer(eyesType); - this.model.render(mStack, builder, packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); + this.model.renderToBuffer(mStack, builder, packedLight, OverlayTexture.NO_OVERLAY, 1.0F, 1.0F, 1.0F, 1.0F); if (guardian.deathTicks > 0) { float f5 = ((float) guardian.deathTicks + partialTicks) / 200.0F; float f7 = Math.min(f5 > 0.8F ? (f5 - 0.8F) / 0.2F : 0.0F, 1.0F); Random random = new Random(432L); - builder = getter.getBuffer(RenderType.getLightning()); - mStack.push(); + builder = getter.getBuffer(RenderType.lightning()); + mStack.pushPose(); mStack.translate(0.0D, -1.0D, -2.0D); for (int i = 0; (float) i < (f5 + f5 * f5) / 2.0F * 60.0F; ++i) { - mStack.rotate(Vector3f.XP.rotationDegrees(random.nextFloat() * 360.0F)); - mStack.rotate(Vector3f.YP.rotationDegrees(random.nextFloat() * 360.0F)); - mStack.rotate(Vector3f.ZP.rotationDegrees(random.nextFloat() * 360.0F)); - mStack.rotate(Vector3f.XP.rotationDegrees(random.nextFloat() * 360.0F)); - mStack.rotate(Vector3f.YP.rotationDegrees(random.nextFloat() * 360.0F)); - mStack.rotate(Vector3f.ZP.rotationDegrees(random.nextFloat() * 360.0F + f5 * 90.0F)); + mStack.mulPose(Vector3f.XP.rotationDegrees(random.nextFloat() * 360.0F)); + mStack.mulPose(Vector3f.YP.rotationDegrees(random.nextFloat() * 360.0F)); + mStack.mulPose(Vector3f.ZP.rotationDegrees(random.nextFloat() * 360.0F)); + mStack.mulPose(Vector3f.XP.rotationDegrees(random.nextFloat() * 360.0F)); + mStack.mulPose(Vector3f.YP.rotationDegrees(random.nextFloat() * 360.0F)); + mStack.mulPose(Vector3f.ZP.rotationDegrees(random.nextFloat() * 360.0F + f5 * 90.0F)); float f3 = random.nextFloat() * 20.0F + 5.0F + f7 * 10.0F; float f4 = random.nextFloat() * 2.0F + 1.0F + f7 * 2.0F; - Matrix4f matrix4f = mStack.getLast().getMatrix(); + Matrix4f matrix4f = mStack.last().pose(); int j = (int) (255.0F * (1.0F - f7)); deathAnimA(builder, matrix4f, j); deathAnimB(builder, matrix4f, f3, f4); @@ -147,46 +147,46 @@ public void render(DraconicGuardianEntity guardian, float entityYaw, float parti deathAnimB(builder, matrix4f, f3, f4); } - mStack.pop(); + mStack.popPose(); } - mStack.pop(); + mStack.popPose(); if (guardian.closestGuardianCrystal != null) { - mStack.push(); - float relX = (float) (guardian.closestGuardianCrystal.getPosX() - MathHelper.lerp(partialTicks, guardian.prevPosX, guardian.getPosX())); - float relY = (float) (guardian.closestGuardianCrystal.getPosY() - MathHelper.lerp(partialTicks, guardian.prevPosY, guardian.getPosY())); - float relZ = (float) (guardian.closestGuardianCrystal.getPosZ() - MathHelper.lerp(partialTicks, guardian.prevPosZ, guardian.getPosZ())); - renderBeam(relX, relY + GuardianCrystalRenderer.func_229051_a_(guardian.closestGuardianCrystal, partialTicks), relZ, partialTicks, guardian.ticksExisted, mStack, getter, packedLight); - mStack.pop(); + mStack.pushPose(); + float relX = (float) (guardian.closestGuardianCrystal.getX() - MathHelper.lerp(partialTicks, guardian.xo, guardian.getX())); + float relY = (float) (guardian.closestGuardianCrystal.getY() - MathHelper.lerp(partialTicks, guardian.yo, guardian.getY())); + float relZ = (float) (guardian.closestGuardianCrystal.getZ() - MathHelper.lerp(partialTicks, guardian.zo, guardian.getZ())); + renderBeam(relX, relY + GuardianCrystalRenderer.getY(guardian.closestGuardianCrystal, partialTicks), relZ, partialTicks, guardian.tickCount, mStack, getter, packedLight); + mStack.popPose(); } super.render(guardian, entityYaw, partialTicks, mStack, getter, packedLight); } private static void deathAnimA(IVertexBuilder builder, Matrix4f mat, int alpha) { - builder.pos(mat, 0.0F, 0.0F, 0.0F).color(255, 255, 255, alpha).endVertex(); - builder.pos(mat, 0.0F, 0.0F, 0.0F).color(255, 255, 255, alpha).endVertex(); + builder.vertex(mat, 0.0F, 0.0F, 0.0F).color(255, 255, 255, alpha).endVertex(); + builder.vertex(mat, 0.0F, 0.0F, 0.0F).color(255, 255, 255, alpha).endVertex(); } private static void deathAnimB(IVertexBuilder builder, Matrix4f mat, float p_229060_2_, float p_229060_3_) { - builder.pos(mat, -sqrt3div2 * p_229060_3_, p_229060_2_, -0.5F * p_229060_3_).color(255, 0, 255, 0).endVertex(); + builder.vertex(mat, -sqrt3div2 * p_229060_3_, p_229060_2_, -0.5F * p_229060_3_).color(255, 0, 255, 0).endVertex(); } private static void deathAnimC(IVertexBuilder builder, Matrix4f mat, float p_229062_2_, float p_229062_3_) { - builder.pos(mat, sqrt3div2 * p_229062_3_, p_229062_2_, -0.5F * p_229062_3_).color(255, 0, 255, 0).endVertex(); + builder.vertex(mat, sqrt3div2 * p_229062_3_, p_229062_2_, -0.5F * p_229062_3_).color(255, 0, 255, 0).endVertex(); } private static void deathAnimD(IVertexBuilder builder, Matrix4f mat, float p_229063_2_, float p_229063_3_) { - builder.pos(mat, 0.0F, p_229063_2_, 1.0F * p_229063_3_).color(255, 0, 255, 0).endVertex(); + builder.vertex(mat, 0.0F, p_229063_2_, 1.0F * p_229063_3_).color(255, 0, 255, 0).endVertex(); } public static void renderBeam(float crystalRelX, float crystalRelY, float crystalRelZ, float partialTicks, int animTicks, MatrixStack mStack, IRenderTypeBuffer getter, int packedLight) { float xzDistance = MathHelper.sqrt(crystalRelX * crystalRelX + crystalRelZ * crystalRelZ); float distance = MathHelper.sqrt(crystalRelX * crystalRelX + crystalRelY * crystalRelY + crystalRelZ * crystalRelZ); - mStack.push(); + mStack.pushPose(); mStack.translate(0.0D, 2.0D, 0.0D); - mStack.rotate(Vector3f.YP.rotation((float) (-Math.atan2(crystalRelZ, crystalRelX)) - ((float) Math.PI / 2F))); - mStack.rotate(Vector3f.XP.rotation((float) (-Math.atan2(xzDistance, crystalRelY)) - ((float) Math.PI / 2F))); + mStack.mulPose(Vector3f.YP.rotation((float) (-Math.atan2(crystalRelZ, crystalRelX)) - ((float) Math.PI / 2F))); + mStack.mulPose(Vector3f.XP.rotation((float) (-Math.atan2(xzDistance, crystalRelY)) - ((float) Math.PI / 2F))); IVertexBuilder ivertexbuilder = getter.getBuffer(beamType); float f2 = 0.0F - ((float) animTicks + partialTicks) * 0.01F; float f3 = MathHelper.sqrt(crystalRelX * crystalRelX + crystalRelY * crystalRelY + crystalRelZ * crystalRelZ) / 32.0F - ((float) animTicks + partialTicks) * 0.01F; @@ -194,28 +194,28 @@ public static void renderBeam(float crystalRelX, float crystalRelY, float crysta float f4 = 0.0F; float f5 = 0.75F; float f6 = 0.0F; - MatrixStack.Entry stackLast = mStack.getLast(); - Matrix4f lastMatrix = stackLast.getMatrix(); - Matrix3f lastNormal = stackLast.getNormal(); + MatrixStack.Entry stackLast = mStack.last(); + Matrix4f lastMatrix = stackLast.pose(); + Matrix3f lastNormal = stackLast.normal(); for (int j = 1; j <= 8; ++j) { float rSin = MathHelper.sin((float) j * ((float) Math.PI * 2F) / 8.0F) * 0.75F; float rCos = MathHelper.cos((float) j * ((float) Math.PI * 2F) / 8.0F) * 0.75F; float indexDecimal = (float) j / 8.0F; - ivertexbuilder.pos(lastMatrix, f4 * 0.2F, f5 * 0.2F, 0.0F).color(0, 0, 0, 255).tex(f6, f2).overlay(OverlayTexture.NO_OVERLAY).lightmap(packedLight).normal(lastNormal, 0.0F, -1.0F, 0.0F).endVertex(); - ivertexbuilder.pos(lastMatrix, f4, f5, distance).color(255, 255, 255, 255).tex(f6, f3).overlay(OverlayTexture.NO_OVERLAY).lightmap(packedLight).normal(lastNormal, 0.0F, -1.0F, 0.0F).endVertex(); - ivertexbuilder.pos(lastMatrix, rSin, rCos, distance).color(255, 255, 255, 255).tex(indexDecimal, f3).overlay(OverlayTexture.NO_OVERLAY).lightmap(packedLight).normal(lastNormal, 0.0F, -1.0F, 0.0F).endVertex(); - ivertexbuilder.pos(lastMatrix, rSin * 0.2F, rCos * 0.2F, 0.0F).color(0, 0, 0, 255).tex(indexDecimal, f2).overlay(OverlayTexture.NO_OVERLAY).lightmap(packedLight).normal(lastNormal, 0.0F, -1.0F, 0.0F).endVertex(); + ivertexbuilder.vertex(lastMatrix, f4 * 0.2F, f5 * 0.2F, 0.0F).color(0, 0, 0, 255).uv(f6, f2).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(packedLight).normal(lastNormal, 0.0F, -1.0F, 0.0F).endVertex(); + ivertexbuilder.vertex(lastMatrix, f4, f5, distance).color(255, 255, 255, 255).uv(f6, f3).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(packedLight).normal(lastNormal, 0.0F, -1.0F, 0.0F).endVertex(); + ivertexbuilder.vertex(lastMatrix, rSin, rCos, distance).color(255, 255, 255, 255).uv(indexDecimal, f3).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(packedLight).normal(lastNormal, 0.0F, -1.0F, 0.0F).endVertex(); + ivertexbuilder.vertex(lastMatrix, rSin * 0.2F, rCos * 0.2F, 0.0F).color(0, 0, 0, 255).uv(indexDecimal, f2).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(packedLight).normal(lastNormal, 0.0F, -1.0F, 0.0F).endVertex(); f4 = rSin; f5 = rCos; f6 = indexDecimal; } - mStack.pop(); + mStack.popPose(); } @Override - public ResourceLocation getEntityTexture(DraconicGuardianEntity entity) { + public ResourceLocation getTextureLocation(DraconicGuardianEntity entity) { return DRAGON_TEXTURE; } @@ -246,8 +246,8 @@ public static class EnderDragonModel extends EntityModel private float partialTicks; public EnderDragonModel() { - this.textureWidth = 256; - this.textureHeight = 256; + this.texWidth = 256; + this.texHeight = 256; float f = -16.0F; this.head = new ModelRenderer(this); this.head.addBox("upperlip", -6.0F, -1.0F, -24.0F, 12, 5, 16, 0.0F, 176, 44); @@ -259,100 +259,100 @@ public EnderDragonModel() { this.head.addBox("scale", 3.0F, -12.0F, -4.0F, 2, 4, 6, 0.0F, 0, 0); this.head.addBox("nostril", 3.0F, -3.0F, -22.0F, 2, 2, 4, 0.0F, 112, 0); this.jaw = new ModelRenderer(this); - this.jaw.setRotationPoint(0.0F, 4.0F, -8.0F); + this.jaw.setPos(0.0F, 4.0F, -8.0F); this.jaw.addBox("jaw", -6.0F, 0.0F, -16.0F, 12, 4, 16, 0.0F, 176, 65); this.head.addChild(this.jaw); this.spine = new ModelRenderer(this); this.spine.addBox("box", -5.0F, -5.0F, -5.0F, 10, 10, 10, 0.0F, 192, 104); this.spine.addBox("scale", -1.0F, -9.0F, -3.0F, 2, 4, 6, 0.0F, 48, 0); this.body = new ModelRenderer(this); - this.body.setRotationPoint(0.0F, 4.0F, 8.0F); + this.body.setPos(0.0F, 4.0F, 8.0F); this.body.addBox("body", -12.0F, 0.0F, -16.0F, 24, 24, 64, 0.0F, 0, 0); this.body.addBox("scale", -1.0F, -6.0F, -10.0F, 2, 6, 12, 0.0F, 220, 53); this.body.addBox("scale", -1.0F, -6.0F, 10.0F, 2, 6, 12, 0.0F, 220, 53); this.body.addBox("scale", -1.0F, -6.0F, 30.0F, 2, 6, 12, 0.0F, 220, 53); this.leftProximalWing = new ModelRenderer(this); this.leftProximalWing.mirror = true; - this.leftProximalWing.setRotationPoint(12.0F, 5.0F, 2.0F); + this.leftProximalWing.setPos(12.0F, 5.0F, 2.0F); this.leftProximalWing.addBox("bone", 0.0F, -4.0F, -4.0F, 56, 8, 8, 0.0F, 112, 88); this.leftProximalWing.addBox("skin", 0.0F, 0.0F, 2.0F, 56, 0, 56, 0.0F, -56, 88); this.leftDistalWing = new ModelRenderer(this); this.leftDistalWing.mirror = true; - this.leftDistalWing.setRotationPoint(56.0F, 0.0F, 0.0F); + this.leftDistalWing.setPos(56.0F, 0.0F, 0.0F); this.leftDistalWing.addBox("bone", 0.0F, -2.0F, -2.0F, 56, 4, 4, 0.0F, 112, 136); this.leftDistalWing.addBox("skin", 0.0F, 0.0F, 2.0F, 56, 0, 56, 0.0F, -56, 144); this.leftProximalWing.addChild(this.leftDistalWing); this.leftForeThigh = new ModelRenderer(this); - this.leftForeThigh.setRotationPoint(12.0F, 20.0F, 2.0F); + this.leftForeThigh.setPos(12.0F, 20.0F, 2.0F); this.leftForeThigh.addBox("main", -4.0F, -4.0F, -4.0F, 8, 24, 8, 0.0F, 112, 104); this.leftForeLeg = new ModelRenderer(this); - this.leftForeLeg.setRotationPoint(0.0F, 20.0F, -1.0F); + this.leftForeLeg.setPos(0.0F, 20.0F, -1.0F); this.leftForeLeg.addBox("main", -3.0F, -1.0F, -3.0F, 6, 24, 6, 0.0F, 226, 138); this.leftForeThigh.addChild(this.leftForeLeg); this.leftForeFoot = new ModelRenderer(this); - this.leftForeFoot.setRotationPoint(0.0F, 23.0F, 0.0F); + this.leftForeFoot.setPos(0.0F, 23.0F, 0.0F); this.leftForeFoot.addBox("main", -4.0F, 0.0F, -12.0F, 8, 4, 16, 0.0F, 144, 104); this.leftForeLeg.addChild(this.leftForeFoot); this.leftHindThigh = new ModelRenderer(this); - this.leftHindThigh.setRotationPoint(16.0F, 16.0F, 42.0F); + this.leftHindThigh.setPos(16.0F, 16.0F, 42.0F); this.leftHindThigh.addBox("main", -8.0F, -4.0F, -8.0F, 16, 32, 16, 0.0F, 0, 0); this.leftHindLeg = new ModelRenderer(this); - this.leftHindLeg.setRotationPoint(0.0F, 32.0F, -4.0F); + this.leftHindLeg.setPos(0.0F, 32.0F, -4.0F); this.leftHindLeg.addBox("main", -6.0F, -2.0F, 0.0F, 12, 32, 12, 0.0F, 196, 0); this.leftHindThigh.addChild(this.leftHindLeg); this.leftHindFoot = new ModelRenderer(this); - this.leftHindFoot.setRotationPoint(0.0F, 31.0F, 4.0F); + this.leftHindFoot.setPos(0.0F, 31.0F, 4.0F); this.leftHindFoot.addBox("main", -9.0F, 0.0F, -20.0F, 18, 6, 24, 0.0F, 112, 0); this.leftHindLeg.addChild(this.leftHindFoot); this.rightProximalWing = new ModelRenderer(this); - this.rightProximalWing.setRotationPoint(-12.0F, 5.0F, 2.0F); + this.rightProximalWing.setPos(-12.0F, 5.0F, 2.0F); this.rightProximalWing.addBox("bone", -56.0F, -4.0F, -4.0F, 56, 8, 8, 0.0F, 112, 88); this.rightProximalWing.addBox("skin", -56.0F, 0.0F, 2.0F, 56, 0, 56, 0.0F, -56, 88); this.rightDistalWing = new ModelRenderer(this); - this.rightDistalWing.setRotationPoint(-56.0F, 0.0F, 0.0F); + this.rightDistalWing.setPos(-56.0F, 0.0F, 0.0F); this.rightDistalWing.addBox("bone", -56.0F, -2.0F, -2.0F, 56, 4, 4, 0.0F, 112, 136); this.rightDistalWing.addBox("skin", -56.0F, 0.0F, 2.0F, 56, 0, 56, 0.0F, -56, 144); this.rightProximalWing.addChild(this.rightDistalWing); this.rightForeThigh = new ModelRenderer(this); - this.rightForeThigh.setRotationPoint(-12.0F, 20.0F, 2.0F); + this.rightForeThigh.setPos(-12.0F, 20.0F, 2.0F); this.rightForeThigh.addBox("main", -4.0F, -4.0F, -4.0F, 8, 24, 8, 0.0F, 112, 104); this.rightForeLeg = new ModelRenderer(this); - this.rightForeLeg.setRotationPoint(0.0F, 20.0F, -1.0F); + this.rightForeLeg.setPos(0.0F, 20.0F, -1.0F); this.rightForeLeg.addBox("main", -3.0F, -1.0F, -3.0F, 6, 24, 6, 0.0F, 226, 138); this.rightForeThigh.addChild(this.rightForeLeg); this.rightForeFoot = new ModelRenderer(this); - this.rightForeFoot.setRotationPoint(0.0F, 23.0F, 0.0F); + this.rightForeFoot.setPos(0.0F, 23.0F, 0.0F); this.rightForeFoot.addBox("main", -4.0F, 0.0F, -12.0F, 8, 4, 16, 0.0F, 144, 104); this.rightForeLeg.addChild(this.rightForeFoot); this.rightHindThigh = new ModelRenderer(this); - this.rightHindThigh.setRotationPoint(-16.0F, 16.0F, 42.0F); + this.rightHindThigh.setPos(-16.0F, 16.0F, 42.0F); this.rightHindThigh.addBox("main", -8.0F, -4.0F, -8.0F, 16, 32, 16, 0.0F, 0, 0); this.rightHindLeg = new ModelRenderer(this); - this.rightHindLeg.setRotationPoint(0.0F, 32.0F, -4.0F); + this.rightHindLeg.setPos(0.0F, 32.0F, -4.0F); this.rightHindLeg.addBox("main", -6.0F, -2.0F, 0.0F, 12, 32, 12, 0.0F, 196, 0); this.rightHindThigh.addChild(this.rightHindLeg); this.rightHindFoot = new ModelRenderer(this); - this.rightHindFoot.setRotationPoint(0.0F, 31.0F, 4.0F); + this.rightHindFoot.setPos(0.0F, 31.0F, 4.0F); this.rightHindFoot.addBox("main", -9.0F, 0.0F, -20.0F, 18, 6, 24, 0.0F, 112, 0); this.rightHindLeg.addChild(this.rightHindFoot); } - public void setLivingAnimations(DraconicGuardianEntity entityIn, float limbSwing, float limbSwingAmount, float partialTick) { + public void prepareMobModel(DraconicGuardianEntity entityIn, float limbSwing, float limbSwingAmount, float partialTick) { this.dragonInstance = entityIn; this.partialTicks = partialTick; } - public void setRotationAngles(DraconicGuardianEntity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { + public void setupAnim(DraconicGuardianEntity entityIn, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch) { } - public void render(MatrixStack mStack, IVertexBuilder getter, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { - mStack.push(); + public void renderToBuffer(MatrixStack mStack, IVertexBuilder getter, int packedLight, int packedOverlay, float red, float green, float blue, float alpha) { + mStack.pushPose(); float f = MathHelper.lerp(this.partialTicks, this.dragonInstance.prevAnimTime, this.dragonInstance.animTime); - this.jaw.rotateAngleX = (float) (Math.sin(f * ((float) Math.PI * 2F)) + 1.0D) * 0.2F; + this.jaw.xRot = (float) (Math.sin(f * ((float) Math.PI * 2F)) + 1.0D) * 0.2F; float f1 = (float) (Math.sin(f * ((float) Math.PI * 2F) - 1.0F) + 1.0D); f1 = (f1 * f1 + f1 * 2.0F) * 0.05F; mStack.translate(0.0D, f1 - 2.0F, -3.0D); - mStack.rotate(Vector3f.XP.rotationDegrees(f1 * 2.0F)); + mStack.mulPose(Vector3f.XP.rotationDegrees(f1 * 2.0F)); float f2 = 0.0F; float f3 = 20.0F; float f4 = -12.0F; @@ -365,44 +365,44 @@ public void render(MatrixStack mStack, IVertexBuilder getter, int packedLight, i for (int i = 0; i < 5; ++i) { double[] adouble1 = this.dragonInstance.getMovementOffsets(5 - i, this.partialTicks); float f9 = (float) Math.cos((float) i * 0.45F + f8) * 0.15F; - this.spine.rotateAngleY = MathHelper.rotWrap(adouble1[0] - adouble[0]) * ((float) Math.PI / 180F) * 1.5F; - this.spine.rotateAngleX = f9 + this.dragonInstance.getHeadPartYOffset(i, adouble, adouble1) * ((float) Math.PI / 180F) * 1.5F * 5.0F; - this.spine.rotateAngleZ = -MathHelper.rotWrap(adouble1[0] - (double) f7) * ((float) Math.PI / 180F) * 1.5F; - this.spine.rotationPointY = f3; - this.spine.rotationPointZ = f4; - this.spine.rotationPointX = f2; - f3 = (float) ((double) f3 + Math.sin(this.spine.rotateAngleX) * 10.0D); - f4 = (float) ((double) f4 - Math.cos(this.spine.rotateAngleY) * Math.cos(this.spine.rotateAngleX) * 10.0D); - f2 = (float) ((double) f2 - Math.sin(this.spine.rotateAngleY) * Math.cos(this.spine.rotateAngleX) * 10.0D); + this.spine.yRot = MathHelper.rotWrap(adouble1[0] - adouble[0]) * ((float) Math.PI / 180F) * 1.5F; + this.spine.xRot = f9 + this.dragonInstance.getHeadPartYOffset(i, adouble, adouble1) * ((float) Math.PI / 180F) * 1.5F * 5.0F; + this.spine.zRot = -MathHelper.rotWrap(adouble1[0] - (double) f7) * ((float) Math.PI / 180F) * 1.5F; + this.spine.y = f3; + this.spine.z = f4; + this.spine.x = f2; + f3 = (float) ((double) f3 + Math.sin(this.spine.xRot) * 10.0D); + f4 = (float) ((double) f4 - Math.cos(this.spine.yRot) * Math.cos(this.spine.xRot) * 10.0D); + f2 = (float) ((double) f2 - Math.sin(this.spine.yRot) * Math.cos(this.spine.xRot) * 10.0D); this.spine.render(mStack, getter, packedLight, packedOverlay); } - this.head.rotationPointY = f3; - this.head.rotationPointZ = f4; - this.head.rotationPointX = f2; + this.head.y = f3; + this.head.z = f4; + this.head.x = f2; double[] adouble2 = this.dragonInstance.getMovementOffsets(0, this.partialTicks); - this.head.rotateAngleY = MathHelper.rotWrap(adouble2[0] - adouble[0]) * ((float) Math.PI / 180F); - this.head.rotateAngleX = MathHelper.rotWrap(this.dragonInstance.getHeadPartYOffset(6, adouble, adouble2)) * ((float) Math.PI / 180F) * 1.5F * 5.0F; - this.head.rotateAngleZ = -MathHelper.rotWrap(adouble2[0] - (double) f7) * ((float) Math.PI / 180F); + this.head.yRot = MathHelper.rotWrap(adouble2[0] - adouble[0]) * ((float) Math.PI / 180F); + this.head.xRot = MathHelper.rotWrap(this.dragonInstance.getHeadPartYOffset(6, adouble, adouble2)) * ((float) Math.PI / 180F) * 1.5F * 5.0F; + this.head.zRot = -MathHelper.rotWrap(adouble2[0] - (double) f7) * ((float) Math.PI / 180F); this.head.render(mStack, getter, packedLight, packedOverlay); - mStack.push(); + mStack.pushPose(); mStack.translate(0.0D, 1.0D, 0.0D); - mStack.rotate(Vector3f.ZP.rotationDegrees(-f6 * 1.5F)); + mStack.mulPose(Vector3f.ZP.rotationDegrees(-f6 * 1.5F)); mStack.translate(0.0D, -1.0D, 0.0D); - this.body.rotateAngleZ = 0.0F; + this.body.zRot = 0.0F; this.body.render(mStack, getter, packedLight, packedOverlay); float f10 = f * ((float) Math.PI * 2F); - this.leftProximalWing.rotateAngleX = 0.125F - (float) Math.cos(f10) * 0.2F; - this.leftProximalWing.rotateAngleY = -0.25F; - this.leftProximalWing.rotateAngleZ = -((float) (Math.sin(f10) + 0.125D)) * 0.8F; - this.leftDistalWing.rotateAngleZ = (float) (Math.sin(f10 + 2.0F) + 0.5D) * 0.75F; - this.rightProximalWing.rotateAngleX = this.leftProximalWing.rotateAngleX; - this.rightProximalWing.rotateAngleY = -this.leftProximalWing.rotateAngleY; - this.rightProximalWing.rotateAngleZ = -this.leftProximalWing.rotateAngleZ; - this.rightDistalWing.rotateAngleZ = -this.leftDistalWing.rotateAngleZ; - this.func_229081_a_(mStack, getter, packedLight, packedOverlay, f1, this.leftProximalWing, this.leftForeThigh, this.leftForeLeg, this.leftForeFoot, this.leftHindThigh, this.leftHindLeg, this.leftHindFoot); - this.func_229081_a_(mStack, getter, packedLight, packedOverlay, f1, this.rightProximalWing, this.rightForeThigh, this.rightForeLeg, this.rightForeFoot, this.rightHindThigh, this.rightHindLeg, this.rightHindFoot); - mStack.pop(); + this.leftProximalWing.xRot = 0.125F - (float) Math.cos(f10) * 0.2F; + this.leftProximalWing.yRot = -0.25F; + this.leftProximalWing.zRot = -((float) (Math.sin(f10) + 0.125D)) * 0.8F; + this.leftDistalWing.zRot = (float) (Math.sin(f10 + 2.0F) + 0.5D) * 0.75F; + this.rightProximalWing.xRot = this.leftProximalWing.xRot; + this.rightProximalWing.yRot = -this.leftProximalWing.yRot; + this.rightProximalWing.zRot = -this.leftProximalWing.zRot; + this.rightDistalWing.zRot = -this.leftDistalWing.zRot; + this.renderSide(mStack, getter, packedLight, packedOverlay, f1, this.leftProximalWing, this.leftForeThigh, this.leftForeLeg, this.leftForeFoot, this.leftHindThigh, this.leftHindLeg, this.leftHindFoot); + this.renderSide(mStack, getter, packedLight, packedOverlay, f1, this.rightProximalWing, this.rightForeThigh, this.rightForeLeg, this.rightForeFoot, this.rightHindThigh, this.rightHindLeg, this.rightHindFoot); + mStack.popPose(); float f11 = -((float) Math.sin(f * ((float) Math.PI * 2F))) * 0.0F; f8 = f * ((float) Math.PI * 2F); f3 = 10.0F; @@ -413,28 +413,28 @@ public void render(MatrixStack mStack, IVertexBuilder getter, int packedLight, i for (int j = 0; j < 12; ++j) { adouble2 = this.dragonInstance.getMovementOffsets(12 + j, this.partialTicks); f11 = (float) ((double) f11 + Math.sin((float) j * 0.45F + f8) * (double) 0.05F); - this.spine.rotateAngleY = (MathHelper.rotWrap(adouble2[0] - adouble[0]) * 1.5F + 180.0F) * ((float) Math.PI / 180F); - this.spine.rotateAngleX = f11 + (float) (adouble2[1] - adouble[1]) * ((float) Math.PI / 180F) * 1.5F * 5.0F; - this.spine.rotateAngleZ = MathHelper.rotWrap(adouble2[0] - (double) f7) * ((float) Math.PI / 180F) * 1.5F; - this.spine.rotationPointY = f3; - this.spine.rotationPointZ = f4; - this.spine.rotationPointX = f2; - f3 = (float) ((double) f3 + Math.sin(this.spine.rotateAngleX) * 10.0D); - f4 = (float) ((double) f4 - Math.cos(this.spine.rotateAngleY) * Math.cos(this.spine.rotateAngleX) * 10.0D); - f2 = (float) ((double) f2 - Math.sin(this.spine.rotateAngleY) * Math.cos(this.spine.rotateAngleX) * 10.0D); + this.spine.yRot = (MathHelper.rotWrap(adouble2[0] - adouble[0]) * 1.5F + 180.0F) * ((float) Math.PI / 180F); + this.spine.xRot = f11 + (float) (adouble2[1] - adouble[1]) * ((float) Math.PI / 180F) * 1.5F * 5.0F; + this.spine.zRot = MathHelper.rotWrap(adouble2[0] - (double) f7) * ((float) Math.PI / 180F) * 1.5F; + this.spine.y = f3; + this.spine.z = f4; + this.spine.x = f2; + f3 = (float) ((double) f3 + Math.sin(this.spine.xRot) * 10.0D); + f4 = (float) ((double) f4 - Math.cos(this.spine.yRot) * Math.cos(this.spine.xRot) * 10.0D); + f2 = (float) ((double) f2 - Math.sin(this.spine.yRot) * Math.cos(this.spine.xRot) * 10.0D); this.spine.render(mStack, getter, packedLight, packedOverlay); } - mStack.pop(); + mStack.popPose(); } - private void func_229081_a_(MatrixStack p_229081_1_, IVertexBuilder p_229081_2_, int p_229081_3_, int p_229081_4_, float p_229081_5_, ModelRenderer p_229081_6_, ModelRenderer p_229081_7_, ModelRenderer p_229081_8_, ModelRenderer p_229081_9_, ModelRenderer p_229081_10_, ModelRenderer p_229081_11_, ModelRenderer p_229081_12_) { - p_229081_10_.rotateAngleX = 1.0F + p_229081_5_ * 0.1F; - p_229081_11_.rotateAngleX = 0.5F + p_229081_5_ * 0.1F; - p_229081_12_.rotateAngleX = 0.75F + p_229081_5_ * 0.1F; - p_229081_7_.rotateAngleX = 1.3F + p_229081_5_ * 0.1F; - p_229081_8_.rotateAngleX = -0.5F - p_229081_5_ * 0.1F; - p_229081_9_.rotateAngleX = 0.75F + p_229081_5_ * 0.1F; + private void renderSide(MatrixStack p_229081_1_, IVertexBuilder p_229081_2_, int p_229081_3_, int p_229081_4_, float p_229081_5_, ModelRenderer p_229081_6_, ModelRenderer p_229081_7_, ModelRenderer p_229081_8_, ModelRenderer p_229081_9_, ModelRenderer p_229081_10_, ModelRenderer p_229081_11_, ModelRenderer p_229081_12_) { + p_229081_10_.xRot = 1.0F + p_229081_5_ * 0.1F; + p_229081_11_.xRot = 0.5F + p_229081_5_ * 0.1F; + p_229081_12_.xRot = 0.75F + p_229081_5_ * 0.1F; + p_229081_7_.xRot = 1.3F + p_229081_5_ * 0.1F; + p_229081_8_.xRot = -0.5F - p_229081_5_ * 0.1F; + p_229081_9_.xRot = 0.75F + p_229081_5_ * 0.1F; p_229081_6_.render(p_229081_1_, p_229081_2_, p_229081_3_, p_229081_4_); p_229081_7_.render(p_229081_1_, p_229081_2_, p_229081_3_, p_229081_4_); p_229081_10_.render(p_229081_1_, p_229081_2_, p_229081_3_, p_229081_4_); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/GuardianCrystalRenderer.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/GuardianCrystalRenderer.java index 3a5221658..faf7a9558 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/GuardianCrystalRenderer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/GuardianCrystalRenderer.java @@ -22,60 +22,60 @@ @OnlyIn(Dist.CLIENT) public class GuardianCrystalRenderer extends EntityRenderer { private static final ResourceLocation ENDER_CRYSTAL_TEXTURES = new ResourceLocation("textures/entity/end_crystal/end_crystal.png"); - private static final RenderType field_229046_e_ = RenderType.getEntityCutoutNoCull(ENDER_CRYSTAL_TEXTURES); - private static final float field_229047_f_ = (float)Math.sin((Math.PI / 4D)); - private final ModelRenderer field_229048_g_; - private final ModelRenderer field_229049_h_; - private final ModelRenderer field_229050_i_; + private static final RenderType RENDER_TYPE = RenderType.entityCutoutNoCull(ENDER_CRYSTAL_TEXTURES); + private static final float SIN_45 = (float)Math.sin((Math.PI / 4D)); + private final ModelRenderer cube; + private final ModelRenderer glass; + private final ModelRenderer base; public GuardianCrystalRenderer(EntityRendererManager renderManagerIn) { super(renderManagerIn); - this.shadowSize = 0.5F; - this.field_229049_h_ = new ModelRenderer(64, 32, 0, 0); - this.field_229049_h_.addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F); - this.field_229048_g_ = new ModelRenderer(64, 32, 32, 0); - this.field_229048_g_.addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F); - this.field_229050_i_ = new ModelRenderer(64, 32, 0, 16); - this.field_229050_i_.addBox(-6.0F, 0.0F, -6.0F, 12.0F, 4.0F, 12.0F); + this.shadowRadius = 0.5F; + this.glass = new ModelRenderer(64, 32, 0, 0); + this.glass.addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F); + this.cube = new ModelRenderer(64, 32, 32, 0); + this.cube.addBox(-4.0F, -4.0F, -4.0F, 8.0F, 8.0F, 8.0F); + this.base = new ModelRenderer(64, 32, 0, 16); + this.base.addBox(-6.0F, 0.0F, -6.0F, 12.0F, 4.0F, 12.0F); } @Override public void render(GuardianCrystalEntity entityIn, float entityYaw, float partialTicks, MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int packedLightIn) { - matrixStackIn.push(); - float f = func_229051_a_(entityIn, partialTicks); + matrixStackIn.pushPose(); + float f = getY(entityIn, partialTicks); float f1 = ((float)entityIn.innerRotation + partialTicks) * 3.0F; - IVertexBuilder ivertexbuilder = bufferIn.getBuffer(field_229046_e_); - matrixStackIn.push(); + IVertexBuilder ivertexbuilder = bufferIn.getBuffer(RENDER_TYPE); + matrixStackIn.pushPose(); matrixStackIn.scale(2.0F, 2.0F, 2.0F); matrixStackIn.translate(0.0D, -0.5D, 0.0D); int i = OverlayTexture.NO_OVERLAY; if (entityIn.shouldShowBottom()) { - this.field_229050_i_.render(matrixStackIn, ivertexbuilder, packedLightIn, i); + this.base.render(matrixStackIn, ivertexbuilder, packedLightIn, i); } - matrixStackIn.rotate(Vector3f.YP.rotationDegrees(f1)); + matrixStackIn.mulPose(Vector3f.YP.rotationDegrees(f1)); matrixStackIn.translate(0.0D, (double)(1.5F + f / 2.0F), 0.0D); - matrixStackIn.rotate(new Quaternion(new Vector3f(field_229047_f_, 0.0F, field_229047_f_), 60.0F, true)); - this.field_229049_h_.render(matrixStackIn, ivertexbuilder, packedLightIn, i); + matrixStackIn.mulPose(new Quaternion(new Vector3f(SIN_45, 0.0F, SIN_45), 60.0F, true)); + this.glass.render(matrixStackIn, ivertexbuilder, packedLightIn, i); float f2 = 0.875F; matrixStackIn.scale(0.875F, 0.875F, 0.875F); - matrixStackIn.rotate(new Quaternion(new Vector3f(field_229047_f_, 0.0F, field_229047_f_), 60.0F, true)); - matrixStackIn.rotate(Vector3f.YP.rotationDegrees(f1)); - this.field_229049_h_.render(matrixStackIn, ivertexbuilder, packedLightIn, i); + matrixStackIn.mulPose(new Quaternion(new Vector3f(SIN_45, 0.0F, SIN_45), 60.0F, true)); + matrixStackIn.mulPose(Vector3f.YP.rotationDegrees(f1)); + this.glass.render(matrixStackIn, ivertexbuilder, packedLightIn, i); matrixStackIn.scale(0.875F, 0.875F, 0.875F); - matrixStackIn.rotate(new Quaternion(new Vector3f(field_229047_f_, 0.0F, field_229047_f_), 60.0F, true)); - matrixStackIn.rotate(Vector3f.YP.rotationDegrees(f1)); - this.field_229048_g_.render(matrixStackIn, ivertexbuilder, packedLightIn, i); - matrixStackIn.pop(); - matrixStackIn.pop(); + matrixStackIn.mulPose(new Quaternion(new Vector3f(SIN_45, 0.0F, SIN_45), 60.0F, true)); + matrixStackIn.mulPose(Vector3f.YP.rotationDegrees(f1)); + this.cube.render(matrixStackIn, ivertexbuilder, packedLightIn, i); + matrixStackIn.popPose(); + matrixStackIn.popPose(); BlockPos blockpos = entityIn.getBeamTarget(); if (blockpos != null) { float f3 = (float)blockpos.getX() + 0.5F; float f4 = (float)blockpos.getY() + 0.5F; float f5 = (float)blockpos.getZ() + 0.5F; - float f6 = (float)((double)f3 - entityIn.getPosX()); - float f7 = (float)((double)f4 - entityIn.getPosY()); - float f8 = (float)((double)f5 - entityIn.getPosZ()); + float f6 = (float)((double)f3 - entityIn.getX()); + float f7 = (float)((double)f4 - entityIn.getY()); + float f8 = (float)((double)f5 - entityIn.getZ()); matrixStackIn.translate((double)f6, (double)f7, (double)f8); DraconicGuardianRenderer.renderBeam(-f6, -f7 + f, -f8, partialTicks, entityIn.innerRotation, matrixStackIn, bufferIn, packedLightIn); } @@ -83,7 +83,7 @@ public void render(GuardianCrystalEntity entityIn, float entityYaw, float partia super.render(entityIn, entityYaw, partialTicks, matrixStackIn, bufferIn, packedLightIn); } - public static float func_229051_a_(GuardianCrystalEntity p_229051_0_, float p_229051_1_) { + public static float getY(GuardianCrystalEntity p_229051_0_, float p_229051_1_) { float f = (float)p_229051_0_.innerRotation + p_229051_1_; float f1 = MathHelper.sin(f * 0.2F) / 2.0F + 0.5F; f1 = (f1 * f1 + f1) * 0.4F; @@ -91,7 +91,7 @@ public static float func_229051_a_(GuardianCrystalEntity p_229051_0_, float p_22 } @Override - public ResourceLocation getEntityTexture(GuardianCrystalEntity entity) { + public ResourceLocation getTextureLocation(GuardianCrystalEntity entity) { return ENDER_CRYSTAL_TEXTURES; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/GuardianProjectileRenderer.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/GuardianProjectileRenderer.java index 701621f6a..3aa378bbc 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/GuardianProjectileRenderer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/GuardianProjectileRenderer.java @@ -19,41 +19,41 @@ @OnlyIn(Dist.CLIENT) public class GuardianProjectileRenderer extends EntityRenderer { private static final ResourceLocation DRAGON_FIREBALL_TEXTURE = new ResourceLocation("textures/entity/enderdragon/dragon_fireball.png"); - private static final RenderType field_229044_e_ = RenderType.getEntityCutoutNoCull(DRAGON_FIREBALL_TEXTURE); + private static final RenderType RENDER_TYPE = RenderType.entityCutoutNoCull(DRAGON_FIREBALL_TEXTURE); public GuardianProjectileRenderer(EntityRendererManager renderManagerIn) { super(renderManagerIn); } @Override - protected int getBlockLight(GuardianProjectileEntity entityIn, BlockPos partialTicks) { + protected int getBlockLightLevel(GuardianProjectileEntity entityIn, BlockPos partialTicks) { return 15; } @Override public void render(GuardianProjectileEntity entityIn, float entityYaw, float partialTicks, MatrixStack matrixStackIn, IRenderTypeBuffer bufferIn, int packedLightIn) { - matrixStackIn.push(); + matrixStackIn.pushPose(); matrixStackIn.scale(2.0F, 2.0F, 2.0F); - matrixStackIn.rotate(this.renderManager.getCameraOrientation()); - matrixStackIn.rotate(Vector3f.YP.rotationDegrees(180.0F)); - MatrixStack.Entry matrixstack$entry = matrixStackIn.getLast(); - Matrix4f matrix4f = matrixstack$entry.getMatrix(); - Matrix3f matrix3f = matrixstack$entry.getNormal(); - IVertexBuilder ivertexbuilder = bufferIn.getBuffer(field_229044_e_); - func_229045_a_(ivertexbuilder, matrix4f, matrix3f, packedLightIn, 0.0F, 0, 0, 1); - func_229045_a_(ivertexbuilder, matrix4f, matrix3f, packedLightIn, 1.0F, 0, 1, 1); - func_229045_a_(ivertexbuilder, matrix4f, matrix3f, packedLightIn, 1.0F, 1, 1, 0); - func_229045_a_(ivertexbuilder, matrix4f, matrix3f, packedLightIn, 0.0F, 1, 0, 0); - matrixStackIn.pop(); + matrixStackIn.mulPose(this.entityRenderDispatcher.cameraOrientation()); + matrixStackIn.mulPose(Vector3f.YP.rotationDegrees(180.0F)); + MatrixStack.Entry matrixstack$entry = matrixStackIn.last(); + Matrix4f matrix4f = matrixstack$entry.pose(); + Matrix3f matrix3f = matrixstack$entry.normal(); + IVertexBuilder ivertexbuilder = bufferIn.getBuffer(RENDER_TYPE); + vertex(ivertexbuilder, matrix4f, matrix3f, packedLightIn, 0.0F, 0, 0, 1); + vertex(ivertexbuilder, matrix4f, matrix3f, packedLightIn, 1.0F, 0, 1, 1); + vertex(ivertexbuilder, matrix4f, matrix3f, packedLightIn, 1.0F, 1, 1, 0); + vertex(ivertexbuilder, matrix4f, matrix3f, packedLightIn, 0.0F, 1, 0, 0); + matrixStackIn.popPose(); super.render(entityIn, entityYaw, partialTicks, matrixStackIn, bufferIn, packedLightIn); } - private static void func_229045_a_(IVertexBuilder p_229045_0_, Matrix4f p_229045_1_, Matrix3f p_229045_2_, int p_229045_3_, float p_229045_4_, int p_229045_5_, int p_229045_6_, int p_229045_7_) { - p_229045_0_.pos(p_229045_1_, p_229045_4_ - 0.5F, (float)p_229045_5_ - 0.25F, 0.0F).color(255, 255, 255, 255).tex((float)p_229045_6_, (float)p_229045_7_).overlay(OverlayTexture.NO_OVERLAY).lightmap(p_229045_3_).normal(p_229045_2_, 0.0F, 1.0F, 0.0F).endVertex(); + private static void vertex(IVertexBuilder p_229045_0_, Matrix4f p_229045_1_, Matrix3f p_229045_2_, int p_229045_3_, float p_229045_4_, int p_229045_5_, int p_229045_6_, int p_229045_7_) { + p_229045_0_.vertex(p_229045_1_, p_229045_4_ - 0.5F, (float)p_229045_5_ - 0.25F, 0.0F).color(255, 255, 255, 255).uv((float)p_229045_6_, (float)p_229045_7_).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(p_229045_3_).normal(p_229045_2_, 0.0F, 1.0F, 0.0F).endVertex(); } @Override - public ResourceLocation getEntityTexture(GuardianProjectileEntity entity) { + public ResourceLocation getTextureLocation(GuardianProjectileEntity entity) { return DRAGON_FIREBALL_TEXTURE; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderCustomArrow.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderCustomArrow.java index 27fca43ad..f586c3649 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderCustomArrow.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderCustomArrow.java @@ -20,7 +20,7 @@ public RenderCustomArrow(EntityRendererManager renderManager) { } @Override - public ResourceLocation getEntityTexture(EntityCustomArrow entity) { + public ResourceLocation getTextureLocation(EntityCustomArrow entity) { return entity.bowProperties.energyBolt ? ResourceHelperDE.getResource(DETextures.REACTOR_CORE) : ResourceHelperDE.getResource("items/tools/obj/arrow_common"); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderDragonHeart.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderDragonHeart.java index 2fc8cab18..c1748c60a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderDragonHeart.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderDragonHeart.java @@ -44,26 +44,26 @@ public void doRender(EntityDragonHeart entity, double x, double y, double z, flo RenderSystem.color4f(2f - sine * 1.3f, 1f - sine / 1.5f, 1f - sine / 1.8f, 1F - sine / 1.6f); Tessellator tess = Tessellator.getInstance(); - BufferBuilder buffer = tess.getBuffer(); + BufferBuilder buffer = tess.getBuilder(); RenderSystem.scalef(0.55f, 0.55f, 0.55f); RenderSystem.translated(-0.5, 0.47, 0.061); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); - buffer.pos(0, 1, 0).tex(0, 0).endVertex(); - buffer.pos(0, 0, 0).tex(0, 1).endVertex(); - buffer.pos(1, 0, 0).tex(1, 1).endVertex(); - buffer.pos(1, 1, 0).tex(1, 0).endVertex(); - tess.draw(); + buffer.vertex(0, 1, 0).uv(0, 0).endVertex(); + buffer.vertex(0, 0, 0).uv(0, 1).endVertex(); + buffer.vertex(1, 0, 0).uv(1, 1).endVertex(); + buffer.vertex(1, 1, 0).uv(1, 0).endVertex(); + tess.end(); RenderSystem.translated(0, 0, -0.12); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); - buffer.pos(0, 1, 0).tex(0, 0).endVertex(); - buffer.pos(0, 0, 0).tex(0, 1).endVertex(); - buffer.pos(1, 0, 0).tex(1, 1).endVertex(); - buffer.pos(1, 1, 0).tex(1, 0).endVertex(); - tess.draw(); + buffer.vertex(0, 1, 0).uv(0, 0).endVertex(); + buffer.vertex(0, 0, 0).uv(0, 1).endVertex(); + buffer.vertex(1, 0, 0).uv(1, 1).endVertex(); + buffer.vertex(1, 1, 0).uv(1, 0).endVertex(); + tess.end(); RenderSystem.disableBlend(); RenderSystem.enableLighting(); @@ -72,7 +72,7 @@ public void doRender(EntityDragonHeart entity, double x, double y, double z, flo } @Override - public ResourceLocation getEntityTexture(EntityDragonHeart entity) { + public ResourceLocation getTextureLocation(EntityDragonHeart entity) { return ResourceHelperDE.getResource(DETextures.DRAGON_HEART); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderEntityChaosVortex.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderEntityChaosVortex.java index b73a826f3..8a21e3e18 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderEntityChaosVortex.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderEntityChaosVortex.java @@ -45,7 +45,7 @@ public void doRender(EntityChaosImplosion entity, double x, double y, double z, @Override - public ResourceLocation getEntityTexture(EntityChaosImplosion entity) { + public ResourceLocation getTextureLocation(EntityChaosImplosion entity) { return null; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderEntityEnderEnergyManipulator.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderEntityEnderEnergyManipulator.java index b71c4b099..56aab71ef 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderEntityEnderEnergyManipulator.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderEntityEnderEnergyManipulator.java @@ -61,7 +61,7 @@ public void doRender(EntityEnderEnergyManipulator entity, double x, double y, do } @Override - public ResourceLocation getEntityTexture(EntityEnderEnergyManipulator entity) { + public ResourceLocation getTextureLocation(EntityEnderEnergyManipulator entity) { return ResourceHelperDE.getResource(DETextures.DRAGON_HEART); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderLootCore.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderLootCore.java index 2f0b6ea18..1abcf8a8f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderLootCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/RenderLootCore.java @@ -45,11 +45,11 @@ public void doRender(EntityLootCore entity, double x, double y, double z, float ccrs.reset(); // ccrs.startDrawing(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX_NORMAL); float yOffset = MathHelper.sin(((float) ClientEventHandler.elapsedTicks + partialTicks) / 10.0F) * 0.1F + 0.1F; - Matrix4 pearlMat = RenderUtils.getMatrix(new Vector3(x, y + (entity.getHeight() / 2) + yOffset, z), new Rotation(((float) (ClientEventHandler.elapsedTicks + entity.timeOffset) + partialTicks) / 30F, new Vector3(entity.rotX, entity.rotY, 0).normalize()), 0.1); + Matrix4 pearlMat = RenderUtils.getMatrix(new Vector3(x, y + (entity.getBbHeight() / 2) + yOffset, z), new Rotation(((float) (ClientEventHandler.elapsedTicks + entity.timeOffset) + partialTicks) / 30F, new Vector3(entity.rotX, entity.rotY, 0).normalize()), 0.1); CCModelLibrary.icosahedron7.render(ccrs, pearlMat); ccrs.draw(); - entity.isLooking = Minecraft.getInstance().getRenderManager().pointedEntity == entity; + entity.isLooking = Minecraft.getInstance().getEntityRenderDispatcher().crosshairPickEntity == entity; if (entity.lookAnimation > 0F) { // float f = this.renderManager.playerViewY; @@ -76,7 +76,7 @@ public void renderLabel(EntityLootCore lootCore, FontRenderer renderer, float x, RenderSystem.disableTexture(); Tessellator tessellator = Tessellator.getInstance(); - BufferBuilder vertexbuffer = tessellator.getBuffer(); + BufferBuilder vertexbuffer = tessellator.getBuilder(); vertexbuffer.begin(7, DefaultVertexFormats.POSITION_COLOR); double scale = lootCore.lookAnimation; @@ -93,7 +93,7 @@ public void renderLabel(EntityLootCore lootCore, FontRenderer renderer, float x, renderBox(vertexbuffer, xPos - 1, yPos + height, width + 2, 1, 0x60AAAAAA); renderBox(vertexbuffer, xPos, yPos, width, height, 0x60000000); - tessellator.draw(); + tessellator.end(); RenderSystem.enableTexture(); if (lootCore.lookAnimation >= 1F) { @@ -103,9 +103,9 @@ public void renderLabel(EntityLootCore lootCore, FontRenderer renderer, float x, RenderSystem.scaled(9, 9, 9); RenderSystem.rotatef(180, 1, 0, 0); RenderSystem.popMatrix(); - String name = I18n.format("entity.draconicevolution:lootCore.name"); - int w = renderer.getStringWidth(name); - renderer.drawString(new MatrixStack(), name, 11 - (w / 2F), (int) yPos - 10, -1); + String name = I18n.get("entity.draconicevolution:lootCore.name"); + int w = renderer.width(name); + renderer.draw(new MatrixStack(), name, 11 - (w / 2F), (int) yPos - 10, -1); int row = 0; for (ItemStack stack : lootCore.displayMap.keySet()) { @@ -116,7 +116,7 @@ public void renderLabel(EntityLootCore lootCore, FontRenderer renderer, float x, RenderSystem.rotatef(180, 1, 0, 0); // Minecraft.getInstance().getItemRenderer().renderItem(stack, ItemCameraTransforms.TransformType.FIXED); RenderSystem.popMatrix(); - renderer.drawString(new MatrixStack(), "x" + lootCore.displayMap.get(stack), 0, -4 + rowY, -1); + renderer.draw(new MatrixStack(), "x" + lootCore.displayMap.get(stack), 0, -4 + rowY, -1); row++; } } @@ -133,14 +133,14 @@ public void renderLabel(EntityLootCore lootCore, FontRenderer renderer, float x, private void renderBox(BufferBuilder buffer, double x, double y, double width, double height, int colour) { ColourARGB colourARGB = new ColourARGB(colour); double zLevel = 0; - buffer.pos(x, y + height, zLevel).color(colourARGB.r / 255F, colourARGB.g / 255F, colourARGB.b / 255F, colourARGB.a / 255F).endVertex(); - buffer.pos(x + width, y + height, zLevel).color(colourARGB.r / 255F, colourARGB.g / 255F, colourARGB.b / 255F, colourARGB.a / 255F).endVertex(); - buffer.pos(x + width, y, zLevel).color(colourARGB.r / 255F, colourARGB.g / 255F, colourARGB.b / 255F, colourARGB.a / 255F).endVertex(); - buffer.pos(x, y, zLevel).color(colourARGB.r / 255F, colourARGB.g / 255F, colourARGB.b / 255F, colourARGB.a / 255F).endVertex(); + buffer.vertex(x, y + height, zLevel).color(colourARGB.r / 255F, colourARGB.g / 255F, colourARGB.b / 255F, colourARGB.a / 255F).endVertex(); + buffer.vertex(x + width, y + height, zLevel).color(colourARGB.r / 255F, colourARGB.g / 255F, colourARGB.b / 255F, colourARGB.a / 255F).endVertex(); + buffer.vertex(x + width, y, zLevel).color(colourARGB.r / 255F, colourARGB.g / 255F, colourARGB.b / 255F, colourARGB.a / 255F).endVertex(); + buffer.vertex(x, y, zLevel).color(colourARGB.r / 255F, colourARGB.g / 255F, colourARGB.b / 255F, colourARGB.a / 255F).endVertex(); } @Override - public ResourceLocation getEntityTexture(EntityLootCore entity) { + public ResourceLocation getTextureLocation(EntityLootCore entity) { return ResourceHelperDE.getResource("textures/items/loot_core.png"); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/projectile/DraconicArrowRenderer.java b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/projectile/DraconicArrowRenderer.java index 63d082256..3b0a98fae 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/entity/projectile/DraconicArrowRenderer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/entity/projectile/DraconicArrowRenderer.java @@ -32,22 +32,22 @@ public DraconicArrowRenderer(EntityRendererManager renderManagerIn) { } public void render(DraconicProjectileEntity arrowEntity, float entityYaw, float partialTicks, MatrixStack mStack, IRenderTypeBuffer getter, int packedLightIn) { - mStack.push(); - mStack.rotate(Vector3f.YP.rotationDegrees(MathHelper.lerp(partialTicks, arrowEntity.prevRotationYaw, arrowEntity.rotationYaw) - 90.0F)); - mStack.rotate(Vector3f.ZP.rotationDegrees(MathHelper.lerp(partialTicks, arrowEntity.prevRotationPitch, arrowEntity.rotationPitch))); - float f9 = (float) arrowEntity.arrowShake - partialTicks; + mStack.pushPose(); + mStack.mulPose(Vector3f.YP.rotationDegrees(MathHelper.lerp(partialTicks, arrowEntity.yRotO, arrowEntity.yRot) - 90.0F)); + mStack.mulPose(Vector3f.ZP.rotationDegrees(MathHelper.lerp(partialTicks, arrowEntity.xRotO, arrowEntity.xRot))); + float f9 = (float) arrowEntity.shakeTime - partialTicks; if (f9 > 0.0F) { float f10 = -MathHelper.sin(f9 * 3.0F) * f9; - mStack.rotate(Vector3f.ZP.rotationDegrees(f10)); + mStack.mulPose(Vector3f.ZP.rotationDegrees(f10)); } - mStack.rotate(Vector3f.XP.rotationDegrees(45.0F)); + mStack.mulPose(Vector3f.XP.rotationDegrees(45.0F)); mStack.scale(0.05625F, 0.05625F, 0.05625F); mStack.translate(-4.0D, 0.0D, 0.0D); - IVertexBuilder ivertexbuilder = getter.getBuffer(RenderType.getEntityCutout(this.getEntityTexture(arrowEntity))); - MatrixStack.Entry matrixstack$entry = mStack.getLast(); - Matrix4f matrix4f = matrixstack$entry.getMatrix(); - Matrix3f matrix3f = matrixstack$entry.getNormal(); + IVertexBuilder ivertexbuilder = getter.getBuffer(RenderType.entityCutout(this.getTextureLocation(arrowEntity))); + MatrixStack.Entry matrixstack$entry = mStack.last(); + Matrix4f matrix4f = matrixstack$entry.pose(); + Matrix3f matrix3f = matrixstack$entry.normal(); this.drawVertex(matrix4f, matrix3f, ivertexbuilder, -7, -2, -2, 0.0F, 0.15625F, -1, 0, 0, packedLightIn); this.drawVertex(matrix4f, matrix3f, ivertexbuilder, -7, -2, 2, 0.15625F, 0.15625F, -1, 0, 0, packedLightIn); this.drawVertex(matrix4f, matrix3f, ivertexbuilder, -7, 2, 2, 0.15625F, 0.3125F, -1, 0, 0, packedLightIn); @@ -58,14 +58,14 @@ public void render(DraconicProjectileEntity arrowEntity, float entityYaw, float this.drawVertex(matrix4f, matrix3f, ivertexbuilder, -7, -2, -2, 0.0F, 0.3125F, 1, 0, 0, packedLightIn); for (int j = 0; j < 4; ++j) { - mStack.rotate(Vector3f.XP.rotationDegrees(90.0F)); + mStack.mulPose(Vector3f.XP.rotationDegrees(90.0F)); this.drawVertex(matrix4f, matrix3f, ivertexbuilder, -8, -2, 0, 0.0F, 0.0F, 0, 1, 0, packedLightIn); this.drawVertex(matrix4f, matrix3f, ivertexbuilder, 8, -2, 0, 0.5F, 0.0F, 0, 1, 0, packedLightIn); this.drawVertex(matrix4f, matrix3f, ivertexbuilder, 8, 2, 0, 0.5F, 0.15625F, 0, 1, 0, packedLightIn); this.drawVertex(matrix4f, matrix3f, ivertexbuilder, -8, 2, 0, 0.0F, 0.15625F, 0, 1, 0, packedLightIn); } - mStack.pop(); + mStack.popPose(); // mStack.rotate(new Quaternion(new Vector3f(0, 0, 1), (TimeKeeper.getClientTick() + partialTicks) * 100F, true)); super.render(arrowEntity, entityYaw, partialTicks, mStack, getter, packedLightIn); @@ -84,15 +84,15 @@ public void render(DraconicProjectileEntity arrowEntity, float entityYaw, float } public void drawVertex(Matrix4f matrix, Matrix3f normals, IVertexBuilder vertexBuilder, int offsetX, int offsetY, int offsetZ, float textureX, float textureY, int p_229039_9_, int p_229039_10_, int p_229039_11_, int packedLightIn) { - vertexBuilder.pos(matrix, (float) offsetX, (float) offsetY, (float) offsetZ).color(255, 255, 255, 255).tex(textureX, textureY).overlay(OverlayTexture.NO_OVERLAY).lightmap(packedLightIn).normal(normals, (float) p_229039_9_, (float) p_229039_11_, (float) p_229039_10_).endVertex(); + vertexBuilder.vertex(matrix, (float) offsetX, (float) offsetY, (float) offsetZ).color(255, 255, 255, 255).uv(textureX, textureY).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(packedLightIn).normal(normals, (float) p_229039_9_, (float) p_229039_11_, (float) p_229039_10_).endVertex(); } - public ResourceLocation getEntityTexture(DraconicProjectileEntity entity) { + public ResourceLocation getTextureLocation(DraconicProjectileEntity entity) { return entity.getColor() > 0 ? RES_TIPPED_ARROW : RES_ARROW; } public static void renderEnergyBolt(Vector3 startPos, Vector3 endPos, Matrix4 mat, IRenderTypeBuffer getter, float partialTicks) { - IVertexBuilder builder = new TransformingVertexBuilder(getter.getBuffer(RenderType.getLightning()), mat); + IVertexBuilder builder = new TransformingVertexBuilder(getter.getBuffer(RenderType.lightning()), mat); } @@ -148,8 +148,8 @@ public static void rendeArcP2P(MatrixStack mStack, IRenderTypeBuffer getter, Vec xOffSum -= (float) (endPos.x - startPos.x); zOffSum -= (float) (endPos.z - startPos.z); - IVertexBuilder builder = getter.getBuffer(RenderType.getLightning()); - Matrix4f matrix4f = mStack.getLast().getMatrix(); + IVertexBuilder builder = getter.getBuffer(RenderType.lightning()); + Matrix4f matrix4f = mStack.last().pose(); for (int layer = 0; layer < 4; ++layer) { float red = ((colour >> 16) & 0xFF) / 255F; @@ -182,10 +182,10 @@ public static void rendeArcP2P(MatrixStack mStack, IRenderTypeBuffer getter, Vec } private static void addSegmentQuad(Matrix4f matrix4f, IVertexBuilder builder, float x1, float yOffset, float z1, int segIndex, float x2, float z2, float red, float green, float blue, float alpha, float offsetA, float offsetB, boolean invA, boolean invB, boolean invC, boolean invD, float segHeight) { - builder.pos(matrix4f, x1 + (invA ? offsetB : -offsetB), yOffset + segIndex * segHeight, z1 + (invB ? offsetB : -offsetB)).color(red, green, blue, alpha).endVertex(); - builder.pos(matrix4f, x2 + (invA ? offsetA : -offsetA), yOffset + (segIndex + 1F) * segHeight, z2 + (invB ? offsetA : -offsetA)).color(red, green, blue, alpha).endVertex(); - builder.pos(matrix4f, x2 + (invC ? offsetA : -offsetA), yOffset + (segIndex + 1F) * segHeight, z2 + (invD ? offsetA : -offsetA)).color(red, green, blue, alpha).endVertex(); - builder.pos(matrix4f, x1 + (invC ? offsetB : -offsetB), yOffset + segIndex * segHeight, z1 + (invD ? offsetB : -offsetB)).color(red, green, blue, alpha).endVertex(); + builder.vertex(matrix4f, x1 + (invA ? offsetB : -offsetB), yOffset + segIndex * segHeight, z1 + (invB ? offsetB : -offsetB)).color(red, green, blue, alpha).endVertex(); + builder.vertex(matrix4f, x2 + (invA ? offsetA : -offsetA), yOffset + (segIndex + 1F) * segHeight, z2 + (invB ? offsetA : -offsetA)).color(red, green, blue, alpha).endVertex(); + builder.vertex(matrix4f, x2 + (invC ? offsetA : -offsetA), yOffset + (segIndex + 1F) * segHeight, z2 + (invD ? offsetA : -offsetA)).color(red, green, blue, alpha).endVertex(); + builder.vertex(matrix4f, x1 + (invC ? offsetB : -offsetB), yOffset + segIndex * segHeight, z1 + (invD ? offsetB : -offsetB)).color(red, green, blue, alpha).endVertex(); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemChaosShard.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemChaosShard.java index fa8726d7d..2a669188d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemChaosShard.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemChaosShard.java @@ -21,6 +21,7 @@ import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderState; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.item.Item; @@ -41,11 +42,11 @@ public class RenderItemChaosShard implements IItemRenderer { private CCModel shard; private Item item; - private static RenderType crystalType = RenderType.makeType("crystal_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/chaos_crystal.png"), false, false)) - .transparency(TRANSLUCENT_TRANSPARENCY) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false)); + private static RenderType crystalType = RenderType.create("crystal_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/chaos_crystal.png"), false, false)) + .setTransparencyState(TRANSLUCENT_TRANSPARENCY) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false)); public RenderItemChaosShard(Item item) { this.item = item; @@ -56,7 +57,7 @@ public RenderItemChaosShard(Item item) { //region Unused @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @@ -66,7 +67,7 @@ public boolean isGui3d() { } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } @@ -89,7 +90,7 @@ public void renderItem(ItemStack stack, ItemCameraTransforms.TransformType trans } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_ITEM; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemDraconiumChest.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemDraconiumChest.java index 4f82e1852..62dae9365 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemDraconiumChest.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemDraconiumChest.java @@ -8,6 +8,7 @@ import com.google.common.collect.ImmutableMap; import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.item.ItemStack; @@ -25,7 +26,7 @@ public RenderItemDraconiumChest() { //region Unused @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return true; } @@ -35,7 +36,7 @@ public boolean isGui3d() { } @Override - public TextureAtlasSprite getParticleTexture() { + public TextureAtlasSprite getParticleIcon() { return TextureUtils.getTexture("draconicevolution:blocks/draconium_block"); } @@ -49,12 +50,12 @@ public void renderItem(ItemStack stack, ItemCameraTransforms.TransformType trans } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_BLOCK; } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemEnderEnergyManipulator.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemEnderEnergyManipulator.java index 10cd19154..3626f0bc2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemEnderEnergyManipulator.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemEnderEnergyManipulator.java @@ -7,6 +7,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.entity.model.GenericHeadModel; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -30,7 +31,7 @@ public RenderItemEnderEnergyManipulator() { //region Unused @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @@ -47,12 +48,12 @@ public void renderItem(ItemStack stack, ItemCameraTransforms.TransformType trans } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_BLOCK; } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemEnergyCrystal.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemEnergyCrystal.java index 03d956dfb..76921e7e6 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemEnergyCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemEnergyCrystal.java @@ -22,6 +22,7 @@ import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderState; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.item.ItemStack; @@ -53,17 +54,17 @@ public class RenderItemEnergyCrystal implements IItemRenderer { .uniform("type", UniformType.INT) .uniform("angle", UniformType.VEC2) ) - .whenUsed(cache -> cache.glUniform1f("time", (ClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 50)) + .whenUsed(cache -> cache.glUniform1f("time", (ClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 50)) .build(); - public static final RenderType fallBackType = RenderType.makeType("fall_back_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_no_shader.png"), false, false)) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .cull(RenderState.CULL_DISABLED) - .build(false) + public static final RenderType fallBackType = RenderType.create("fall_back_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_no_shader.png"), false, false)) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .setCullState(RenderState.NO_CULL) + .createCompositeState(false) ); - public static final RenderType crystalBaseType = RenderType.getEntitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_base.png")); - public static final RenderType fallBackOverlayType = RenderType.getEntityTranslucent(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_base.png")); + public static final RenderType crystalBaseType = RenderType.entitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_base.png")); + public static final RenderType fallBackOverlayType = RenderType.entityTranslucent(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_base.png")); private final CrystalType type; private final TechLevel techLevel; @@ -85,7 +86,7 @@ public RenderItemEnergyCrystal(CrystalType type, TechLevel techLevel) { //region Unused @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @@ -95,7 +96,7 @@ public boolean isGui3d() { } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } @@ -157,12 +158,10 @@ public void renderItem(ItemStack stack, ItemCameraTransforms.TransformType trans } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_BLOCK; } - - private static float[] r = {0.0F, 0.47F, 1.0F}; private static float[] g = {0.2F, 0.0F, 0.4F}; private static float[] b = {0.3F, 0.58F, 0.1F}; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemMobSoul.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemMobSoul.java index e6469d391..a2e3e0a8e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemMobSoul.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemMobSoul.java @@ -9,6 +9,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.entity.EntityRendererManager; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; @@ -32,7 +33,7 @@ public RenderItemMobSoul() { //region Unused @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @@ -98,28 +99,28 @@ public void renderItem(ItemStack stack, ItemCameraTransforms.TransformType trans // mStack.translate(0.5, -0.5, 0.5); - float scale = 1F / Math.max(mob.getWidth(), mob.getHeight()); + float scale = 1F / Math.max(mob.getBbWidth(), mob.getBbHeight()); mStack.translate(0.5, 0, 0.5); mStack.scale(scale, scale, scale); if (transformType != ItemCameraTransforms.TransformType.GROUND && transformType != ItemCameraTransforms.TransformType.FIXED) { - mStack.rotate(new Quaternion(new Vector3f(1, 0, -0.5F), (float) Math.sin((ClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 50F) * 15F, true)); - mStack.rotate(new Quaternion(new Vector3f(0, 1, 0), (ClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) * 3, true)); + mStack.mulPose(new Quaternion(new Vector3f(1, 0, -0.5F), (float) Math.sin((ClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 50F) * 15F, true)); + mStack.mulPose(new Quaternion(new Vector3f(0, 1, 0), (ClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) * 3, true)); } - EntityRendererManager manager = Minecraft.getInstance().getRenderManager(); - manager.renderEntityStatic(mob, 0, 0, 0, 0, 0, mStack, getter, packedLight); + EntityRendererManager manager = Minecraft.getInstance().getEntityRenderDispatcher(); + manager.render(mob, 0, 0, 0, 0, 0, mStack, getter, packedLight); } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_BLOCK; } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } } \ No newline at end of file diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemReactorComponent.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemReactorComponent.java index 8855e36e0..bf9d0f25f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemReactorComponent.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemReactorComponent.java @@ -11,6 +11,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.item.ItemStack; import net.minecraft.util.math.vector.Quaternion; @@ -29,7 +30,7 @@ public RenderItemReactorComponent(int type) { //region Unused @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @@ -53,28 +54,28 @@ public void renderItem(ItemStack stack, ItemCameraTransforms.TransformType trans case 0: //Core mat.translate(0.5, 0.5, 0.5); mat.scale(1.5); - RenderTileReactorCore.renderCore(mat, ccrs, (ClientEventHandler.elapsedTicks + mc.getRenderPartialTicks()) / 100F, 0F, 0.F, 0.5F, 0, getter); + RenderTileReactorCore.renderCore(mat, ccrs, (ClientEventHandler.elapsedTicks + mc.getFrameTime()) / 100F, 0F, 0.F, 0.5F, 0, getter); break; case 1: //Stabilizer - float coreRotation = (ClientEventHandler.elapsedTicks + mc.getRenderPartialTicks()) * 5F; + float coreRotation = (ClientEventHandler.elapsedTicks + mc.getFrameTime()) * 5F; mStack.translate(0.5, 0.5, 0.5); RenderTileReactorComponent.renderStabilizer(mStack, getter, coreRotation, 1F, packedLight, packedOverlay); break; case 2: //Injector mStack.translate(0.5, 0.5, 0.5); - mStack.rotate(new Quaternion(90, 0, 0, true)); + mStack.mulPose(new Quaternion(90, 0, 0, true)); RenderTileReactorComponent.renderInjector(mStack, getter, 1F, packedLight, packedOverlay); break; } } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_BLOCK; } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemReactorPart.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemReactorPart.java index 3c2152905..69f0d69a0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemReactorPart.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemReactorPart.java @@ -16,6 +16,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; @@ -29,22 +30,22 @@ public class RenderItemReactorPart implements IItemRenderer { public static final ResourceLocation REACTOR_STABILIZER = new ResourceLocation(DraconicEvolution.MODID, "textures/block/reactor/reactor_stabilizer_core.png"); public static final ResourceLocation REACTOR_STABILIZER_RING = new ResourceLocation(DraconicEvolution.MODID, "textures/block/reactor/reactor_stabilizer_ring.png"); - public static ModelReactorStabilizerCore stabilizerModel = new ModelReactorStabilizerCore(RenderType::getEntitySolid); - public static ModelReactorStabilizerCore stabilizerModelCombined = new ModelReactorStabilizerCore(RenderType::getEntitySolid); - public static ModelReactorStabilizerRing stabilizerRingModel = new ModelReactorStabilizerRing(RenderType::getEntitySolid); + public static ModelReactorStabilizerCore stabilizerModel = new ModelReactorStabilizerCore(RenderType::entitySolid); + public static ModelReactorStabilizerCore stabilizerModelCombined = new ModelReactorStabilizerCore(RenderType::entitySolid); + public static ModelReactorStabilizerRing stabilizerRingModel = new ModelReactorStabilizerRing(RenderType::entitySolid); public RenderItemReactorPart() { stabilizerModel.brightness = 1F; stabilizerModelCombined.brightness = 1F; stabilizerRingModel.brightness = 1F; - stabilizerModel.rotor2R.childModels.clear(); - stabilizerModel.rotor1R.childModels.clear(); + stabilizerModel.rotor2R.children.clear(); + stabilizerModel.rotor1R.children.clear(); } //region Unused @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @@ -64,43 +65,43 @@ public void renderItem(ItemStack stack, ItemCameraTransforms.TransformType trans if (stack.getItem() == DEContent.reactor_prt_stab_frame) { mStack.translate(0.5, 0.5, 0.5); - stabilizerModel.basePlate.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.basePlate.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); } else if (stack.getItem() == DEContent.reactor_prt_in_rotor) { mStack.translate(0.3, 0.5, 0.5); mStack.scale(1.5F, 1.5F, 1.5F); - stabilizerModel.rotor1R.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModel.rotor1R_1.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModel.rotor1R_2.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModel.rotor1R_3.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModel.rotor1R_4.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor1R.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor1R_1.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor1R_2.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor1R_3.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor1R_4.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); } else if (stack.getItem() == DEContent.reactor_prt_out_rotor) { mStack.translate(0.3, 0.5, 0.5); mStack.scale(1.5F, 1.5F, 1.5F); - stabilizerModel.rotor2R.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModel.rotor2R_1.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModel.rotor2R_2.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModel.rotor2R_3.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModel.rotor2R_4.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor2R.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor2R_1.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor2R_2.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor2R_3.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModel.rotor2R_4.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); } else if (stack.getItem() == DEContent.reactor_prt_rotor_full) { mStack.translate(0.5, 0.5, 0.5); - stabilizerModelCombined.rotor1R.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModelCombined.hub1.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - mStack.rotate(new Quaternion(0, 0, -60, true)); - stabilizerModelCombined.hub2.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); - stabilizerModelCombined.rotor2R.render(mStack, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModelCombined.rotor1R.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModelCombined.hub1.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + mStack.mulPose(new Quaternion(0, 0, -60, true)); + stabilizerModelCombined.hub2.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); + stabilizerModelCombined.rotor2R.render(mStack, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay); } else if (stack.getItem() == DEContent.reactor_prt_focus_ring) { mStack.translate(0.5, 0.5, 0.5); - stabilizerRingModel.render(mStack, getter.getBuffer(stabilizerRingModel.getRenderType(REACTOR_STABILIZER_RING)), packedLight, packedOverlay, 1F, 1F, 1F, 1F); + stabilizerRingModel.renderToBuffer(mStack, getter.getBuffer(stabilizerRingModel.renderType(REACTOR_STABILIZER_RING)), packedLight, packedOverlay, 1F, 1F, 1F, 1F); } } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_BLOCK; } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemStabilizedSpawner.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemStabilizedSpawner.java index a81e84ecd..d5b462e42 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemStabilizedSpawner.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderItemStabilizedSpawner.java @@ -7,6 +7,7 @@ import com.mojang.blaze3d.matrix.MatrixStack; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.model.IBakedModel; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms; import net.minecraft.item.ItemStack; import net.minecraft.util.math.vector.TransformationMatrix; @@ -31,7 +32,7 @@ public RenderItemStabilizedSpawner() { //region Unused @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @@ -48,12 +49,12 @@ public void renderItem(ItemStack stack, ItemCameraTransforms.TransformType trans } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_BLOCK; } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularBow.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularBow.java index 901f35649..6487a2bd4 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularBow.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularBow.java @@ -20,6 +20,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.*; import net.minecraft.client.renderer.entity.TippedArrowRenderer; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType; import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; @@ -53,7 +54,7 @@ public class RenderModularBow extends ToolRenderBase { .uniform("tier", UniformType.INT) ) .whenUsed(cache -> { - cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 20); + cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 20); }) .build(); @@ -66,13 +67,13 @@ public RenderModularBow(TechLevel techLevel) { materialModel = model.get("bow_arm").backfacedCopy(); gemModel = model.get("bow_gem").backfacedCopy(); - bowStringType = RenderType.makeType("shaderStringType", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(MODID, "textures/item/equipment/bow_string.png"), true, false)) - .transparency(RenderState.LIGHTNING_TRANSPARENCY) - .cull(RenderState.CULL_DISABLED) - .writeMask(RenderState.WriteMaskState.COLOR_WRITE) - .alpha(RenderState.AlphaState.DEFAULT_ALPHA) - .build(false) + bowStringType = RenderType.create("shaderStringType", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(MODID, "textures/item/equipment/bow_string.png"), true, false)) + .setTransparencyState(RenderState.LIGHTNING_TRANSPARENCY) + .setCullState(RenderState.NO_CULL) + .setWriteMaskState(RenderState.WriteMaskState.COLOR_WRITE) + .setAlphaState(RenderState.AlphaState.DEFAULT_ALPHA) + .createCompositeState(false) ); initBaseVBO(); @@ -175,7 +176,7 @@ private void drawStrings(CCRenderState ccrs, Matrix4 topMat, Matrix4 bottomMat, private void renderBeam(IVertexBuilder buffer, Vector3 source, Vector3 target, float r, float g, float b) { double scale = 0.03; - float partialTicks = Minecraft.getInstance().getRenderPartialTicks(); + float partialTicks = Minecraft.getInstance().getFrameTime(); Vector3 dirVec = source.copy().subtract(target).normalize(); Vector3 planeA = dirVec.copy().perpendicular().normalize(); @@ -219,22 +220,22 @@ private void bufferShaderQuad(IVertexBuilder buffer, Vector3 p1, Vector3 p2, Vec bufferQuad(buffer, p1, p2, p3, p4, anim, dist, r, g, b); return; } - buffer.pos(p1.x, p1.y, p1.z).color(r, g, b, 1F).tex(0.0F, 0F).endVertex(); - buffer.pos(p2.x, p2.y, p2.z).color(r, g, b, 1F).tex(0.0F, 1F).endVertex(); - buffer.pos(p4.x, p4.y, p4.z).color(r, g, b, 1F).tex(1F, 1F).endVertex(); - buffer.pos(p3.x, p3.y, p3.z).color(r, g, b, 1F).tex(1F, 0F).endVertex(); + buffer.vertex(p1.x, p1.y, p1.z).color(r, g, b, 1F).uv(0.0F, 0F).endVertex(); + buffer.vertex(p2.x, p2.y, p2.z).color(r, g, b, 1F).uv(0.0F, 1F).endVertex(); + buffer.vertex(p4.x, p4.y, p4.z).color(r, g, b, 1F).uv(1F, 1F).endVertex(); + buffer.vertex(p3.x, p3.y, p3.z).color(r, g, b, 1F).uv(1F, 0F).endVertex(); } private void bufferQuad(IVertexBuilder buffer, Vector3 p1, Vector3 p2, Vector3 p3, Vector3 p4, float anim, float dist, float r, float g, float b) { - buffer.pos(p1.x, p1.y, p1.z).color(r, g, b, 1F).tex(0.5F, anim).endVertex(); - buffer.pos(p2.x, p2.y, p2.z).color(r, g, b, 1F).tex(0.5F, dist + anim).endVertex(); - buffer.pos(p4.x, p4.y, p4.z).color(r, g, b, 1F).tex(1.0F, dist + anim).endVertex(); - buffer.pos(p3.x, p3.y, p3.z).color(r, g, b, 1F).tex(1.0F, anim).endVertex(); + buffer.vertex(p1.x, p1.y, p1.z).color(r, g, b, 1F).uv(0.5F, anim).endVertex(); + buffer.vertex(p2.x, p2.y, p2.z).color(r, g, b, 1F).uv(0.5F, dist + anim).endVertex(); + buffer.vertex(p4.x, p4.y, p4.z).color(r, g, b, 1F).uv(1.0F, dist + anim).endVertex(); + buffer.vertex(p3.x, p3.y, p3.z).color(r, g, b, 1F).uv(1.0F, anim).endVertex(); } private void renderArrow(Matrix4 mat, IRenderTypeBuffer getter, int packedLight) { mat.scale(0.05625F, 0.05625F, 0.05625F); - IVertexBuilder builder = new TransformingVertexBuilder(getter.getBuffer(RenderType.getEntityCutout(TippedArrowRenderer.RES_ARROW)), mat); + IVertexBuilder builder = new TransformingVertexBuilder(getter.getBuffer(RenderType.entityCutout(TippedArrowRenderer.NORMAL_ARROW_LOCATION)), mat); this.buggerVertex(builder, -7, -2, -2, 0.0F, 0.15625F, -1, 0, 0, packedLight); this.buggerVertex(builder, -7, -2, 2, 0.15625F, 0.15625F, -1, 0, 0, packedLight); this.buggerVertex(builder, -7, 2, 2, 0.15625F, 0.3125F, -1, 0, 0, packedLight); @@ -254,19 +255,19 @@ private void renderArrow(Matrix4 mat, IRenderTypeBuffer getter, int packedLight) } public void buggerVertex(IVertexBuilder builder, float x, float y, float z, float u, float v, int normX, int normZ, int normY, int light) { - builder.pos(x, y, z).color(255, 255, 255, 255).tex(u, v).overlay(OverlayTexture.NO_OVERLAY).lightmap(light).normal((float) normX, (float) normY, (float) normZ).endVertex(); + builder.vertex(x, y, z).color(255, 255, 255, 255).uv(u, v).overlayCoords(OverlayTexture.NO_OVERLAY).uv2(light).normal((float) normX, (float) normY, (float) normZ).endVertex(); } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_BOW; } private double getDrawAngle(ItemStack stack) { PlayerEntity player = Minecraft.getInstance().player; - if (player != null && player.getActiveItemStack() == stack) { - int maxCount = player.getItemInUseMaxCount(); - return BowItem.getArrowVelocity(maxCount) * 45F; + if (player != null && player.getUseItem() == stack) { + int maxCount = player.getTicksUsingItem(); + return BowItem.getPowerForTime(maxCount) * 45F; } return 0; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularChestpeice.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularChestpeice.java index 958ddf07c..c772d0428 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularChestpeice.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularChestpeice.java @@ -22,6 +22,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.item.ItemStack; @@ -54,7 +55,7 @@ public class RenderModularChestpeice extends ToolRenderBase { .uniform("baseColour", UniformType.VEC3) .uniform("tier", UniformType.INT) ) - .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 20)) + .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 20)) .build(); private CCModel centralGemModel; @@ -122,7 +123,7 @@ public void renderTool(CCRenderState ccrs, ItemStack stack, TransformType transf } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return TransformUtils.DEFAULT_BLOCK; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularPickaxe.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularPickaxe.java index 9b6383188..941cbea1a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularPickaxe.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularPickaxe.java @@ -70,7 +70,7 @@ public void renderTool(CCRenderState ccrs, ItemStack stack, TransformType transf } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularStaff.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularStaff.java index c96fbfa3d..986e9bd7f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularStaff.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/RenderModularStaff.java @@ -25,6 +25,7 @@ import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.entity.model.PlayerModel; import net.minecraft.client.renderer.model.IBakedModel; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType; import net.minecraft.client.renderer.model.ItemOverrideList; import net.minecraft.client.renderer.model.ModelRenderer; @@ -35,6 +36,7 @@ import net.minecraft.util.HandSide; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.vector.TransformationMatrix; +import net.minecraftforge.client.model.SimpleModelTransform; import org.lwjgl.opengl.GL11; import javax.annotation.Nullable; @@ -47,7 +49,7 @@ */ public class RenderModularStaff extends ToolRenderBase { - private static ImmutableMap TRANSFORMATION; + private static SimpleModelTransform TRANSFORMATION; static { Map map = new HashMap<>(); map.put(TransformType.GROUND, TransformUtils.create( 0F, 2F, 0F, 0F, 0F, 0F, 0.5F)); @@ -58,7 +60,12 @@ public class RenderModularStaff extends ToolRenderBase { map.put(TransformType.FIRST_PERSON_RIGHT_HAND, TransformUtils.create(1.13F, 3.2F, 1.13F, 0F, 90F, -45F, 0.68F)); map.put(TransformType.FIRST_PERSON_LEFT_HAND, TransformUtils.create(1.13F, 3.2F, 1.13F, 0F, -90F, 45F, 0.68F)); - TRANSFORMATION = ImmutableMap.copyOf(map); + TRANSFORMATION = new SimpleModelTransform(ImmutableMap.copyOf(map)); + } + + @Override + public IModelTransform getModelTransform() { + return TRANSFORMATION; } private CCModel baseGui; @@ -148,9 +155,9 @@ public RenderModularStaff(TechLevel techLevel) { private final ItemOverrideList overrideList = new ItemOverrideList() { @Override - public IBakedModel getOverrideModel(IBakedModel originalModel, ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { + public IBakedModel resolve(IBakedModel originalModel, ItemStack stack, @Nullable ClientWorld world, @Nullable LivingEntity entity) { RenderModularStaff.this.entity = entity; - RenderModularStaff.this.world = world == null ? entity == null ? null : (ClientWorld) entity.world : null; + RenderModularStaff.this.world = world == null ? entity == null ? null : (ClientWorld) entity.level : null; return originalModel; } }; @@ -164,8 +171,8 @@ public ItemOverrideList getOverrides() { @Override public void renderTool(CCRenderState ccrs, ItemStack stack, TransformType transform, Matrix4 mat, MatrixStack mStack, IRenderTypeBuffer getter, boolean gui, int packedLight) { float flair = 0F; - if (entity != null && entity.getHeldItemMainhand() == stack) { - flair = MathHelper.interpolate(entity.prevSwingProgress, entity.swingProgress, Minecraft.getInstance().getRenderPartialTicks()); + if (entity != null && entity.getMainHandItem() == stack) { + flair = MathHelper.interpolate(entity.oAttackAnim, entity.attackAnim, Minecraft.getInstance().getFrameTime()); flair = MathHelper.clip(flair * 5F, 0F, 1F); } @@ -220,12 +227,12 @@ public void renderTool(CCRenderState ccrs, ItemStack stack, TransformType transf getter.getBuffer(bladeVBOType.withMatrix(mat).withLightMap(packedLight)); getter.getBuffer(gemVBOType.withMatrix(mat).withLightMap(packedLight)); } - ((IRenderTypeBuffer.Impl) getter).finish(); + ((IRenderTypeBuffer.Impl) getter).endBatch(); Minecraft mc = Minecraft.getInstance(); mat.rotate(torad(90), Vector3.X_NEG); mat.translate(-0.5, 0.1, -0.5); - effectRenderer.renderEffect(mat, getter, mc.getRenderPartialTicks()); + effectRenderer.renderEffect(mat, getter, mc.getFrameTime()); // new ModelEffect.DebugEffect().renderEffect(mat, getter, mc.getRenderPartialTicks()); // testParticleRender(ccrs, stack, transform, mat, mStack, getter, gui); @@ -307,8 +314,8 @@ public void renderTool(CCRenderState ccrs, ItemStack stack, TransformType transf private void testParticleRender(CCRenderState ccrs, ItemStack stack, TransformType transform, Matrix4 mat, MatrixStack mStack, IRenderTypeBuffer getter, boolean gui) { Minecraft mc = Minecraft.getInstance(); - float partialTicks = mc.getRenderPartialTicks(); - ActiveRenderInfo renderInfo = mc.getRenderManager().info; + float partialTicks = mc.getFrameTime(); + ActiveRenderInfo renderInfo = mc.getEntityRenderDispatcher().camera; RenderSystem.pushMatrix(); @@ -351,10 +358,10 @@ private void testParticleRender(CCRenderState ccrs, ItemStack stack, TransformTy float z = 0; float width = 1; float height = 1; - builder.pos(x, y + height, z).color(1F, 1F, 1F, 1F).endVertex(); - builder.pos(x + width, y + height, z).color(1F, 1F, 1F, 1F).endVertex(); - builder.pos(x + width, y, z).color(1F, 1F, 1F, 1F).endVertex(); - builder.pos(x, y, z).color(1F, 1F, 1F, 1F).endVertex(); + builder.vertex(x, y + height, z).color(1F, 1F, 1F, 1F).endVertex(); + builder.vertex(x + width, y + height, z).color(1F, 1F, 1F, 1F).endVertex(); + builder.vertex(x + width, y, z).color(1F, 1F, 1F, 1F).endVertex(); + builder.vertex(x, y, z).color(1F, 1F, 1F, 1F).endVertex(); // Vector3 vector3f1 = new Vector3(-1.0F, -1.0F, 0.0F); @@ -383,15 +390,15 @@ private void testParticleRender(CCRenderState ccrs, ItemStack stack, TransformTy if (getter instanceof IRenderTypeBuffer.Impl) { - ((IRenderTypeBuffer.Impl) getter).finish(); + ((IRenderTypeBuffer.Impl) getter).endBatch(); } RenderSystem.popMatrix(); } - @Override - public ImmutableMap getTransforms() { - return TRANSFORMATION; - } +// @Override +// public IModelTransform getModelTransform() { +// return TRANSFORMATION; +// } private void handleArmPose(ItemStack stack, TransformType transform, Matrix4 mat) { if (isThirdPerson(transform)) { @@ -401,7 +408,7 @@ private void handleArmPose(ItemStack stack, TransformType transform, Matrix4 mat mat.rotate(torad(15), new Vector3(-0.5, 0.5, 0)); } if (entity != null){ - double anim = entity.swingProgress; + double anim = entity.attackAnim; mat.translate(0.125 * anim, 0.125 * anim, 0); mat.rotate(torad(-20) * anim, Vector3.Z_POS); } @@ -414,9 +421,9 @@ private boolean isThirdPerson(TransformType transform) { //TODO. This is temporary to allow hotswap and debugging. Will move into mixin method when done. public static void doMixinStuff(LivingEntity entity, PlayerModel model) { - ItemStack mainHand = entity.getHeldItemMainhand(); - ItemStack offHand = entity.getHeldItemOffhand(); - boolean rightHanded = entity.getPrimaryHand() == HandSide.RIGHT; + ItemStack mainHand = entity.getMainHandItem(); + ItemStack offHand = entity.getOffhandItem(); + boolean rightHanded = entity.getMainArm() == HandSide.RIGHT; boolean hasMain = mainHand.getItem() instanceof ModularStaff; boolean hasOff = offHand.getItem() instanceof ModularStaff; @@ -425,34 +432,34 @@ public static void doMixinStuff(LivingEntity entity, PlayerModel model) { // setStaffPose(entity, model.bipedRightArm, model.bipedLeftArm, model.bipedBody, model.bipedHead, rightHanded, !hasMain); // } if (hasMain) { - setStaffPose(entity, model.bipedRightArm, model.bipedLeftArm, model.bipedBody, model.bipedHead, !rightHanded, !hasOff); + setStaffPose(entity, model.rightArm, model.leftArm, model.body, model.head, !rightHanded, !hasOff); } - model.bipedLeftLegwear.copyModelAngles(model.bipedLeftLeg); - model.bipedRightLegwear.copyModelAngles(model.bipedRightLeg); - model.bipedLeftArmwear.copyModelAngles(model.bipedLeftArm); - model.bipedRightArmwear.copyModelAngles(model.bipedRightArm); - model.bipedBodyWear.copyModelAngles(model.bipedBody); + model.leftPants.copyFrom(model.leftLeg); + model.rightPants.copyFrom(model.rightLeg); + model.leftSleeve.copyFrom(model.leftArm); + model.rightSleeve.copyFrom(model.rightArm); + model.jacket.copyFrom(model.body); } } public static void setStaffPose(LivingEntity entity, ModelRenderer rightArm, ModelRenderer leftArm, ModelRenderer body, ModelRenderer head, boolean lefthand, boolean bothHands) { if (lefthand) { //Yaw - leftArm.rotateAngleY = head.rotateAngleY + torad(15F); + leftArm.yRot = head.yRot + torad(15F); //Pitch - leftArm.rotateAngleX = head.rotateAngleX - torad(60F) - torad(20F * entity.swingProgress); + leftArm.xRot = head.xRot - torad(60F) - torad(20F * entity.attackAnim); if (bothHands) { - rightArm.rotateAngleX = head.rotateAngleX - torad(60F) - torad(20F * entity.swingProgress); - rightArm.rotateAngleY = head.rotateAngleY - torad(45F); + rightArm.xRot = head.xRot - torad(60F) - torad(20F * entity.attackAnim); + rightArm.yRot = head.yRot - torad(45F); } } else { //Yaw - rightArm.rotateAngleY = head.rotateAngleY - torad(15F); + rightArm.yRot = head.yRot - torad(15F); //Pitch - rightArm.rotateAngleX = head.rotateAngleX - torad(60F) - torad(20F * entity.swingProgress); + rightArm.xRot = head.xRot - torad(60F) - torad(20F * entity.attackAnim); if (bothHands) { - leftArm.rotateAngleX = head.rotateAngleX - torad(60F) - torad(20F * entity.swingProgress); - leftArm.rotateAngleY = head.rotateAngleY + torad(45F); + leftArm.xRot = head.xRot - torad(60F) - torad(20F * entity.attackAnim); + leftArm.yRot = head.yRot + torad(45F); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/item/ToolRenderBase.java b/src/main/java/com/brandon3055/draconicevolution/client/render/item/ToolRenderBase.java index a07633146..819dc42e4 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/item/ToolRenderBase.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/item/ToolRenderBase.java @@ -20,6 +20,7 @@ import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.RenderState; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.model.IModelTransform; import net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType; import net.minecraft.client.renderer.vertex.DefaultVertexFormats; import net.minecraft.item.ItemStack; @@ -55,9 +56,9 @@ public abstract class ToolRenderBase implements IItemRenderer { .whenUsed(cache -> { cache.glUniform1f("alpha", 0.7F); Minecraft mc = Minecraft.getInstance(); - cache.glUniform1f("yaw", (float) ((mc.player.rotationYaw * 2 * Math.PI) / 360.0)); - cache.glUniform1f("pitch", -(float) ((mc.player.rotationPitch * 2 * Math.PI) / 360.0)); - cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 1); + cache.glUniform1f("yaw", (float) ((mc.player.yRot * 2 * Math.PI) / 360.0)); + cache.glUniform1f("pitch", -(float) ((mc.player.xRot * 2 * Math.PI) / 360.0)); + cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 1); }) .build(); @@ -72,7 +73,7 @@ public abstract class ToolRenderBase implements IItemRenderer { .uniform("time", UniformType.FLOAT) .uniform("baseColour", UniformType.VEC4) ) - .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 20)) + .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 20)) .build(); public static ShaderProgram bladeShader = ShaderProgramBuilder.builder() @@ -86,7 +87,7 @@ public abstract class ToolRenderBase implements IItemRenderer { .uniform("time", UniformType.FLOAT) .uniform("baseColour", UniformType.VEC4) ) - .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 20)) + .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 20)) .build(); public static ShaderProgram traceShader = ShaderProgramBuilder.builder() @@ -100,7 +101,7 @@ public abstract class ToolRenderBase implements IItemRenderer { .uniform("time", UniformType.FLOAT) .uniform("baseColour", UniformType.VEC4) ) - .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 20)) + .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 20)) .build(); @@ -129,33 +130,33 @@ public abstract class ToolRenderBase implements IItemRenderer { public ToolRenderBase(TechLevel techLevel, String tool) { this.techLevel = techLevel; String levelName = techLevel.name().toLowerCase(); - modelType = RenderType.makeType("modelType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, true, false, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/" + levelName + "_" + tool + ".png"), false, false)) - .diffuseLighting(DIFFUSE_LIGHTING_ENABLED) - .lightmap(LIGHTMAP_ENABLED) + modelType = RenderType.create("modelType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, true, false, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/" + levelName + "_" + tool + ".png"), false, false)) + .setDiffuseLightingState(DIFFUSE_LIGHTING) + .setLightmapState(LIGHTMAP) // .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(true)); + .createCompositeState(true)); - modelGuiType = RenderType.makeType("modelGuiType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/" + levelName + "_" + tool + ".png"), false, false)) - .lightmap(LIGHTMAP_ENABLED) - .overlay(OVERLAY_DISABLED) + modelGuiType = RenderType.create("modelGuiType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/" + levelName + "_" + tool + ".png"), false, false)) + .setLightmapState(LIGHTMAP) + .setOverlayState(NO_OVERLAY) // .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + .createCompositeState(false) ); - chaosType = RenderType.makeType("chaosShaderType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/chaos_shader.png"), true, false)) - .lightmap(LIGHTMAP_ENABLED) - .overlay(OVERLAY_ENABLED) - .build(false) + chaosType = RenderType.create("chaosShaderType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/chaos_shader.png"), true, false)) + .setLightmapState(LIGHTMAP) + .setOverlayState(OVERLAY) + .createCompositeState(false) ); - shaderParentType = RenderType.makeType("shaderGemType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/shader_fallback_" + levelName + ".png"), false, false)) - .lightmap(LIGHTMAP_ENABLED) - .overlay(OVERLAY_ENABLED) - .build(false) + shaderParentType = RenderType.create("shaderGemType", DefaultVertexFormats.BLOCK, GL11.GL_TRIANGLES, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/shader_fallback_" + levelName + ".png"), false, false)) + .setLightmapState(LIGHTMAP) + .setOverlayState(OVERLAY) + .createCompositeState(false) ); } @@ -179,12 +180,12 @@ public void transform(Matrix4 mat, double x, double y, double z, double scale) { } @Override - public ImmutableMap getTransforms() { + public IModelTransform getModelTransform() { return DEFAULT_TOOL; } @Override - public boolean isAmbientOcclusion() { + public boolean useAmbientOcclusion() { return false; } @@ -194,7 +195,7 @@ public boolean isGui3d() { } @Override - public boolean isSideLit() { + public boolean usesBlockLight() { return false; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/modelfx/ModelEffect.java b/src/main/java/com/brandon3055/draconicevolution/client/render/modelfx/ModelEffect.java index 76923228d..58423bb17 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/modelfx/ModelEffect.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/modelfx/ModelEffect.java @@ -59,30 +59,30 @@ public void renderEffect(Matrix4 mat, IRenderTypeBuffer getter, float partialTic protected void drawParticle(IVertexBuilder builder, double x, double y, double z, double scale, float red, float green, float blue, float alpha) { double min = (1 - scale) * 0.5; double max = 0.5 + (scale * 0.5); - builder.pos(x + min, y + 0.5, z + min).color(red, green, blue, alpha).tex(0, 0)/*.lightmap(240)*/.endVertex(); - builder.pos(x + min, y + 0.5, z + max).color(red, green, blue, alpha).tex(0, 1)/*.lightmap(240)*/.endVertex(); - builder.pos(x + max, y + 0.5, z + max).color(red, green, blue, alpha).tex(1, 1)/*.lightmap(240)*/.endVertex(); - builder.pos(x + max, y + 0.5, z + min).color(red, green, blue, alpha).tex(1, 0)/*.lightmap(240)*/.endVertex(); - - builder.pos(x + min, y + min, z + 0.5).color(red, green, blue, alpha).tex(0, 0)/*.lightmap(240)*/.endVertex(); - builder.pos(x + min, y + max, z + 0.5).color(red, green, blue, alpha).tex(0, 1)/*.lightmap(240)*/.endVertex(); - builder.pos(x + max, y + max, z + 0.5).color(red, green, blue, alpha).tex(1, 1)/*.lightmap(240)*/.endVertex(); - builder.pos(x + max, y + min, z + 0.5).color(red, green, blue, alpha).tex(1, 0)/*.lightmap(240)*/.endVertex(); - - builder.pos(x + 0.5, y + min, z + min).color(red, green, blue, alpha).tex(0, 0)/*.lightmap(240)*/.endVertex(); - builder.pos(x + 0.5, y + min, z + max).color(red, green, blue, alpha).tex(0, 1)/*.lightmap(240)*/.endVertex(); - builder.pos(x + 0.5, y + max, z + max).color(red, green, blue, alpha).tex(1, 1)/*.lightmap(240)*/.endVertex(); - builder.pos(x + 0.5, y + max, z + min).color(red, green, blue, alpha).tex(1, 0)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + min, y + 0.5, z + min).color(red, green, blue, alpha).uv(0, 0)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + min, y + 0.5, z + max).color(red, green, blue, alpha).uv(0, 1)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + max, y + 0.5, z + max).color(red, green, blue, alpha).uv(1, 1)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + max, y + 0.5, z + min).color(red, green, blue, alpha).uv(1, 0)/*.lightmap(240)*/.endVertex(); + + builder.vertex(x + min, y + min, z + 0.5).color(red, green, blue, alpha).uv(0, 0)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + min, y + max, z + 0.5).color(red, green, blue, alpha).uv(0, 1)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + max, y + max, z + 0.5).color(red, green, blue, alpha).uv(1, 1)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + max, y + min, z + 0.5).color(red, green, blue, alpha).uv(1, 0)/*.lightmap(240)*/.endVertex(); + + builder.vertex(x + 0.5, y + min, z + min).color(red, green, blue, alpha).uv(0, 0)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + 0.5, y + min, z + max).color(red, green, blue, alpha).uv(0, 1)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + 0.5, y + max, z + max).color(red, green, blue, alpha).uv(1, 1)/*.lightmap(240)*/.endVertex(); + builder.vertex(x + 0.5, y + max, z + min).color(red, green, blue, alpha).uv(1, 0)/*.lightmap(240)*/.endVertex(); } protected void drawPolyParticle(IVertexBuilder builder, double x, double y, double z, double scale, float red, float green, float blue, float alpha) { double min = (1 - scale) * 0.5; double max = 0.5 + (scale * 0.5); - builder.pos(x + min, y + 0.5, z + min).color(red, green, blue, alpha).lightmap(240).endVertex(); - builder.pos(x + min, y + 0.5, z + max).color(red, green, blue, alpha).lightmap(240).endVertex(); - builder.pos(x + max, y + 0.5, z + max).color(red, green, blue, alpha).lightmap(240).endVertex(); - builder.pos(x + max, y + 0.5, z + min).color(red, green, blue, alpha).lightmap(240).endVertex(); + builder.vertex(x + min, y + 0.5, z + min).color(red, green, blue, alpha).uv2(240).endVertex(); + builder.vertex(x + min, y + 0.5, z + max).color(red, green, blue, alpha).uv2(240).endVertex(); + builder.vertex(x + max, y + 0.5, z + max).color(red, green, blue, alpha).uv2(240).endVertex(); + builder.vertex(x + max, y + 0.5, z + min).color(red, green, blue, alpha).uv2(240).endVertex(); // builder.pos(x + min, y + min, z + 0.5).color(red, green, blue, alpha).lightmap(240).endVertex(); // builder.pos(x + min, y + max, z + 0.5).color(red, green, blue, alpha).lightmap(240).endVertex(); @@ -143,12 +143,12 @@ protected static void setRandSeed(int i) { } public static class DebugEffect extends ModelEffect { - private RenderType alignRenderType = RenderType.makeType("alignRenderType", DefaultVertexFormats.POSITION_COLOR, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .transparency(RenderState.TRANSLUCENT_TRANSPARENCY) - .alpha(RenderState.ZERO_ALPHA) - .cull(RenderState.CULL_DISABLED) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private RenderType alignRenderType = RenderType.create("alignRenderType", DefaultVertexFormats.POSITION_COLOR, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTransparencyState(RenderState.TRANSLUCENT_TRANSPARENCY) + .setAlphaState(RenderState.NO_ALPHA) + .setCullState(RenderState.NO_CULL) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/modelfx/ToolModelEffect.java b/src/main/java/com/brandon3055/draconicevolution/client/render/modelfx/ToolModelEffect.java index 78b775ac8..1600aad4e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/modelfx/ToolModelEffect.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/modelfx/ToolModelEffect.java @@ -18,14 +18,14 @@ * Created by brandon3055 on 28/2/21 */ public class ToolModelEffect extends ModelEffect { - private RenderType renderType = RenderType.makeType("modelEffectType", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/particle/white_orb.png"), false, false)) - .transparency(RenderState.LIGHTNING_TRANSPARENCY) - .alpha(RenderState.ZERO_ALPHA) - .cull(RenderState.CULL_DISABLED) - .writeMask(RenderState.COLOR_WRITE) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private RenderType renderType = RenderType.create("modelEffectType", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/particle/white_orb.png"), false, false)) + .setTransparencyState(RenderState.LIGHTNING_TRANSPARENCY) + .setAlphaState(RenderState.NO_ALPHA) + .setCullState(RenderState.NO_CULL) + .setWriteMaskState(RenderState.COLOR_WRITE) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); // private RenderType renderType2 = RenderType.makeType("modelEffectType2", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() // .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/particle/orb2.png"), false, false)) @@ -46,10 +46,10 @@ public class ToolModelEffect extends ModelEffect { // .build(false) // ); - private RenderType renderSolidType = RenderType.makeType("modelEffectType4", DefaultVertexFormats.POSITION_COLOR_LIGHTMAP, GL11.GL_TRIANGLE_FAN, 256, RenderType.State.getBuilder() - .cull(RenderState.CULL_DISABLED) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private RenderType renderSolidType = RenderType.create("modelEffectType4", DefaultVertexFormats.POSITION_COLOR_LIGHTMAP, GL11.GL_TRIANGLE_FAN, 256, RenderType.State.builder() + .setCullState(RenderState.NO_CULL) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); public ToolModelEffect() {} diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/BlinkParticle.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/BlinkParticle.java index 4e17cafad..28c505d74 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/BlinkParticle.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/BlinkParticle.java @@ -10,36 +10,36 @@ public class BlinkParticle extends SpriteTexturedParticle { private BlinkParticle(ClientWorld world, double x, double y, double z, double motionX, double motionY, double motionZ) { super(world, x, y, z, motionX, motionY, motionZ); - this.motionX = motionX; - this.motionY = motionY; - this.motionZ = motionZ; - this.posX = x; - this.posY = y; - this.posZ = z; - this.particleScale = 0.1F * (this.rand.nextFloat() * 0.2F + 0.5F) * 1.5F; - float f = this.rand.nextFloat() * 0.6F + 0.4F; - this.particleRed = f * 0.9F; - this.particleGreen = f * 0.3F; - this.particleBlue = f; - this.maxAge = (int)(Math.random() * 2.0D) + 30; + this.xd = motionX; + this.yd = motionY; + this.zd = motionZ; + this.x = x; + this.y = y; + this.z = z; + this.quadSize = 0.1F * (this.random.nextFloat() * 0.2F + 0.5F) * 1.5F; + float f = this.random.nextFloat() * 0.6F + 0.4F; + this.rCol = f * 0.9F; + this.gCol = f * 0.3F; + this.bCol = f; + this.lifetime = (int)(Math.random() * 2.0D) + 30; } - public float getScale(float scaleFactor) { - float f = 1.0F - ((float)this.age + scaleFactor) / ((float)this.maxAge * 1.5F); - return this.particleScale * f; + public float getQuadSize(float scaleFactor) { + float f = 1.0F - ((float)this.age + scaleFactor) / ((float)this.lifetime * 1.5F); + return this.quadSize * f; } public void tick() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - if (this.age++ >= this.maxAge) { - this.setExpired(); + this.xo = this.x; + this.yo = this.y; + this.zo = this.z; + if (this.age++ >= this.lifetime) { + this.remove(); } else { - this.posX += this.motionX; - this.posY += this.motionY; - this.posZ += this.motionZ; + this.x += this.xd; + this.y += this.yd; + this.z += this.zd; } } @@ -56,9 +56,9 @@ public Factory(IAnimatedSprite spriteSet) { this.spriteSet = spriteSet; } - public Particle makeParticle(BasicParticleType typeIn, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { + public Particle createParticle(BasicParticleType typeIn, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { BlinkParticle reverseportalparticle = new BlinkParticle(worldIn, x, y, z, xSpeed, ySpeed, zSpeed); - reverseportalparticle.selectSpriteRandomly(this.spriteSet); + reverseportalparticle.pickSprite(this.spriteSet); return reverseportalparticle; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/CustomFlameParticle.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/CustomFlameParticle.java index 4ca9b539f..abcb8e815 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/CustomFlameParticle.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/CustomFlameParticle.java @@ -14,13 +14,13 @@ public class CustomFlameParticle extends SpriteTexturedParticle { private CustomFlameParticle(ClientWorld worldIn, double xCoordIn, double yCoordIn, double zCoordIn, double xSpeedIn, double ySpeedIn, double zSpeedIn) { super(worldIn, xCoordIn, yCoordIn, zCoordIn, xSpeedIn, ySpeedIn, zSpeedIn); - this.motionX = this.motionX * (double)0.01F + xSpeedIn; - this.motionY = this.motionY * (double)0.01F + ySpeedIn; - this.motionZ = this.motionZ * (double)0.01F + zSpeedIn; - this.posX += (double)((this.rand.nextFloat() - this.rand.nextFloat()) * 0.05F); - this.posY += (double)((this.rand.nextFloat() - this.rand.nextFloat()) * 0.05F); - this.posZ += (double)((this.rand.nextFloat() - this.rand.nextFloat()) * 0.05F); - this.maxAge = (int)(8.0D / (Math.random() * 0.8D + 0.2D)) + 4; + this.xd = this.xd * (double)0.01F + xSpeedIn; + this.yd = this.yd * (double)0.01F + ySpeedIn; + this.zd = this.zd * (double)0.01F + zSpeedIn; + this.x += (double)((this.random.nextFloat() - this.random.nextFloat()) * 0.05F); + this.y += (double)((this.random.nextFloat() - this.random.nextFloat()) * 0.05F); + this.z += (double)((this.random.nextFloat() - this.random.nextFloat()) * 0.05F); + this.lifetime = (int)(8.0D / (Math.random() * 0.8D + 0.2D)) + 4; } public IParticleRenderType getRenderType() { @@ -28,19 +28,19 @@ public IParticleRenderType getRenderType() { } public void move(double x, double y, double z) { - this.setBoundingBox(this.getBoundingBox().offset(x, y, z)); - this.resetPositionToBB(); + this.setBoundingBox(this.getBoundingBox().move(x, y, z)); + this.setLocationFromBoundingbox(); } - public float getScale(float p_217561_1_) { - float f = ((float)this.age + p_217561_1_) / (float)this.maxAge; - return this.particleScale * (1.0F - f * f * 0.5F); + public float getQuadSize(float p_217561_1_) { + float f = ((float)this.age + p_217561_1_) / (float)this.lifetime; + return this.quadSize * (1.0F - f * f * 0.5F); } - public int getBrightnessForRender(float partialTick) { - float f = ((float)this.age + partialTick) / (float)this.maxAge; + public int getLightColor(float partialTick) { + float f = ((float)this.age + partialTick) / (float)this.lifetime; f = MathHelper.clamp(f, 0.0F, 1.0F); - int i = super.getBrightnessForRender(partialTick); + int i = super.getLightColor(partialTick); int j = i & 255; int k = i >> 16 & 255; j = j + (int)(f * 15.0F * 16.0F); @@ -52,16 +52,16 @@ public int getBrightnessForRender(float partialTick) { } public void tick() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - if (this.age++ >= this.maxAge) { - this.setExpired(); + this.xo = this.x; + this.yo = this.y; + this.zo = this.z; + if (this.age++ >= this.lifetime) { + this.remove(); } else { - this.motionY -= 0.04D * (double)this.particleGravity; - this.move(this.motionX, this.motionY, this.motionZ); + this.yd -= 0.04D * (double)this.gravity; + this.move(this.xd, this.yd, this.zd); // this.motionX *= (double)0.96F; - this.motionY *= (double)0.96F; + this.yd *= (double)0.96F; // this.motionZ *= (double)0.96F; if (this.onGround) { // this.motionX *= (double)0.7F; @@ -80,14 +80,14 @@ public Factory(IAnimatedSprite p_i50823_1_) { } @Override - public Particle makeParticle(IntParticleData data, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { + public Particle createParticle(IntParticleData data, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { CustomFlameParticle flameparticle = new CustomFlameParticle(worldIn, x, y, z, xSpeed, ySpeed, zSpeed); - flameparticle.selectSpriteRandomly(this.spriteSet); + flameparticle.pickSprite(this.spriteSet); if (data.get().length >= 1) { - flameparticle.particleScale *= (data.get()[0] / 255F); + flameparticle.quadSize *= (data.get()[0] / 255F); } if (data.get().length >= 2) { - flameparticle.particleGravity = -data.get()[1] / 255F; + flameparticle.gravity = -data.get()[1] / 255F; } return flameparticle; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/GuardianProjectileParticle.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/GuardianProjectileParticle.java index ce838f9e8..1bc739d05 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/GuardianProjectileParticle.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/GuardianProjectileParticle.java @@ -16,17 +16,17 @@ public class GuardianProjectileParticle extends SimpleAnimatedParticle { private GuardianProjectileParticle(ClientWorld world, double x, double y, double z, double motionX, double motionY, double motionZ, IAnimatedSprite spriteWithAge) { super(world, x, y, z, spriteWithAge, -0.004F); - this.motionX = motionX; - this.motionY = motionY; - this.motionZ = motionZ; - this.particleScale *= 0.75F; - this.maxAge = 48 + this.rand.nextInt(12); - this.selectSpriteWithAge(spriteWithAge); + this.xd = motionX; + this.yd = motionY; + this.zd = motionZ; + this.quadSize *= 0.75F; + this.lifetime = 48 + this.random.nextInt(12); + this.setSpriteFromAge(spriteWithAge); } - public void renderParticle(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { - if (this.age < this.maxAge / 3 || (this.age + this.maxAge) / 3 % 2 == 0) { - super.renderParticle(buffer, renderInfo, partialTicks); + public void render(IVertexBuilder buffer, ActiveRenderInfo renderInfo, float partialTicks) { + if (this.age < this.lifetime / 3 || (this.age + this.lifetime) / 3 % 2 == 0) { + super.render(buffer, renderInfo, partialTicks); } } @@ -43,10 +43,10 @@ public Factory(IAnimatedSprite spriteSet) { this.spriteSet = spriteSet; } - public Particle makeParticle(BasicParticleType typeIn, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { + public Particle createParticle(BasicParticleType typeIn, ClientWorld worldIn, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { GuardianProjectileParticle particle = new GuardianProjectileParticle(worldIn, x, y, z, xSpeed, ySpeed, zSpeed, this.spriteSet); - particle.canCollide = false; - particle.setMaxAge(15 + rand.nextInt(5)); + particle.hasPhysics = false; + particle.setLifetime(15 + rand.nextInt(5)); float ci = 0.5F + (rand.nextFloat() * 0.5F); particle.setColor(1F, 0.6F * ci, 0.06F * ci); return particle; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleArrowShockwave.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleArrowShockwave.java index f3a1f9f5f..a296c7563 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleArrowShockwave.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleArrowShockwave.java @@ -109,7 +109,7 @@ public static class Factory implements IBCParticleFactory { public Particle getEntityFX(int particleID, World world, Vec3D pos, Vec3D speed, int... args) { ParticleArrowShockwave arrowShockwave = new ParticleArrowShockwave((ClientWorld) world, pos, speed); - world.playSound(pos.x, pos.y, pos.z, SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.PLAYERS, 10, 0.9F + world.rand.nextFloat() * 0.2F, false); + world.playLocalSound(pos.x, pos.y, pos.z, SoundEvents.GENERIC_EXPLODE, SoundCategory.PLAYERS, 10, 0.9F + world.random.nextFloat() * 0.2F, false); if (args.length >= 1) { arrowShockwave.maxSize = args[0] / 100D; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleChaosImplosion.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleChaosImplosion.java index 3863b93bf..598b622d3 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleChaosImplosion.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleChaosImplosion.java @@ -30,7 +30,7 @@ public ParticleChaosImplosion(ClientWorld worldIn, Vec3D pos, Vec3D target) { this.texturesPerRow = 8F; this.target = target; - this.motionX = this.motionY = this.motionZ = 0; + this.xd = this.yd = this.zd = 0; if (model == null) { Map map = OBJParser.parseModels(ResourceHelperDE.getResource("models/reactor_core_model.obj")); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleCustom.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleCustom.java index bf1d91dfa..eff517cd0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleCustom.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleCustom.java @@ -16,9 +16,9 @@ public class ParticleCustom extends BCParticle { public ParticleCustom(ClientWorld worldIn, Vec3D pos, Vec3D speed) { super(worldIn, pos, speed); - motionX = speed.x; - motionY = speed.y; - motionZ = speed.z; + xd = speed.x; + yd = speed.y; + zd = speed.z; texturesPerRow = 4; } @@ -54,15 +54,15 @@ public Particle getEntityFX(int particleID, World world, Vec3D pos, Vec3D speed, if (args.length >= 10) { particle.setColour(args[0]/255f, args[1]/255f, args[2]/255f); - particle.setAlphaF(args[3]/255f); + particle.setAlpha(args[3]/255f); particle.spawnAlpha = args[3]/255f; // particle.setScale(args[4]/10000F); - particle.setMaxAge(args[5]); + particle.setLifetime(args[5]); particle.setGravity(args[6]/10000D); particle.maxFade = args[7]; // particle.particleTextureIndexX = args[8] % 4; // particle.particleTextureIndexY = args[8] / 4; - particle.canCollide = args[9] == 1; + particle.hasPhysics = args[9] == 1; } return particle; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleDragonHeart.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleDragonHeart.java index db51d9356..04284c209 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleDragonHeart.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleDragonHeart.java @@ -73,16 +73,16 @@ public Particle getEntityFX(int particleID, World world, Vec3D pos, Vec3D speed, if (args.length >= 4) { pos.add(0, 0.5, 0); - particleHeart.setExpired(); + particleHeart.remove(); Vec3D playerDir = Vec3D.getDirectionVec(pos, speed); double dist = Utils.getDistanceAtoB(pos, speed); for (int i = 0; i < 100; i++) { double d = dist * (1D / 100D); - double randX = world.rand.nextDouble() - 0.5D; - double randY = world.rand.nextDouble() - 0.5D; - double randZ = world.rand.nextDouble() - 0.5D; + double randX = world.random.nextDouble() - 0.5D; + double randY = world.random.nextDouble() - 0.5D; + double randZ = world.random.nextDouble() - 0.5D; //TODO Particles // BCEffectHandler.spawnFX(DEParticles.LINE_INDICATOR, world, pos.add(playerDir.x * d, playerDir.y * d, playerDir.z * d), new Vec3D(randX * 0.05F, randY * 0.05F, randZ * 0.05F), 512D, 255, 0, 0); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleEnergy.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleEnergy.java index 7a57126ed..8c222b6ae 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleEnergy.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleEnergy.java @@ -22,8 +22,8 @@ public ParticleEnergy(ClientWorld world, double xPos, double yPos, double zPos, super(world, xPos, yPos, zPos); this.targetPos = targetPos; this.spriteSet = spriteSet; - setSprite(spriteSet.get(world.rand)); - canCollide = false; + setSprite(spriteSet.get(world.random)); + hasPhysics = false; } @Override @@ -50,20 +50,20 @@ public IParticleRenderType getRenderType() { @Override public void tick() { - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; - setSprite(spriteSet.get(world.rand)); + this.xo = this.x; + this.yo = this.y; + this.zo = this.z; + setSprite(spriteSet.get(level.random)); - Vec3D dir = Vec3D.getDirectionVec(new Vec3D(posX, posY, posZ), targetPos); + Vec3D dir = Vec3D.getDirectionVec(new Vec3D(x, y, z), targetPos); double speed = 0.5D; - motionX = dir.x * speed; - motionY = dir.y * speed; - motionZ = dir.z * speed; - this.move(this.motionX, this.motionY, this.motionZ); + xd = dir.x * speed; + yd = dir.y * speed; + zd = dir.z * speed; + this.move(this.xd, this.yd, this.zd); - if (age++ > maxAge || Utils.getDistanceAtoB(posX, posY, posZ, targetPos.x, targetPos.y, targetPos.z) < 0.5) { - setExpired(); + if (age++ > lifetime || Utils.getDistanceAtoB(x, y, z, targetPos.x, targetPos.y, targetPos.z) < 0.5) { + remove(); } } @@ -119,7 +119,7 @@ public Factory(IAnimatedSprite p_i50823_1_) { } @Override - public Particle makeParticle(IntParticleType.IntParticleData data, ClientWorld world, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { + public Particle createParticle(IntParticleType.IntParticleData data, ClientWorld world, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { ParticleEnergy particleEnergy = new ParticleEnergy(world, x, y, z, new Vec3D(xSpeed, ySpeed, zSpeed), spriteSet); if (data.get().length >= 3) { @@ -127,7 +127,7 @@ public Particle makeParticle(IntParticleType.IntParticleData data, ClientWorld w } if (data.get().length >= 4) { - particleEnergy.multiplyParticleScaleBy(data.get()[3] / 100F); + particleEnergy.scale(data.get()[3] / 100F); } return particleEnergy; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleEnergyCoreFX.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleEnergyCoreFX.java index 3fcb16c54..896a5b821 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleEnergyCoreFX.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleEnergyCoreFX.java @@ -27,11 +27,11 @@ public ParticleEnergyCoreFX(ClientWorld world, double xPos, double yPos, double super(world, xPos, yPos, zPos); this.targetPos = targetPos; this.spriteSet = spriteSet; - setSprite(spriteSet.get(world.rand)); - canCollide = false; + setSprite(spriteSet.get(world.random)); + hasPhysics = false; Vec3D dir = Vec3D.getDirectionVec(new Vec3D(xPos, yPos, zPos), targetPos); - this.direction = Direction.getFacingFromVector((float) dir.x, (float) dir.y, (float) dir.z).getAxis(); - maxAge = 20; + this.direction = Direction.getNearest((float) dir.x, (float) dir.y, (float) dir.z).getAxis(); + lifetime = 20; } @Override @@ -42,12 +42,12 @@ public IParticleRenderType getRenderType() { @Override public void tick() { BCProfiler.TICK.start("core_fx_update"); - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; + this.xo = this.x; + this.yo = this.y; + this.zo = this.z; Vec3D tPos = this.targetPos.copy(); - setSprite(spriteSet.get(world.rand)); + setSprite(spriteSet.get(level.random)); if (toCore) { double rotation = ClientEventHandler.elapsedTicks; @@ -66,15 +66,15 @@ else if (direction == Direction.Axis.X) { } } - Vec3D dir = Vec3D.getDirectionVec(new Vec3D(posX, posY, posZ), tPos); + Vec3D dir = Vec3D.getDirectionVec(new Vec3D(x, y, z), tPos); double speed = (toCore ? 0.5D : 0.25D); - motionX = dir.x * speed; - motionY = dir.y * speed; - motionZ = dir.z * speed; - move(motionX, motionY, motionZ); + xd = dir.x * speed; + yd = dir.y * speed; + zd = dir.z * speed; + move(xd, yd, zd); - if (age++ > maxAge || Utils.getDistanceAtoB(posX, posY, posZ, tPos.x, tPos.y, tPos.z) < 0.2) { - setExpired(); + if (age++ > lifetime || Utils.getDistanceAtoB(x, y, z, tPos.x, tPos.y, tPos.z) < 0.2) { + remove(); } BCProfiler.TICK.stop(); } @@ -87,12 +87,12 @@ public Factory(IAnimatedSprite p_i50823_1_) { } @Override - public Particle makeParticle(IntParticleType.IntParticleData data, ClientWorld world, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { + public Particle createParticle(IntParticleType.IntParticleData data, ClientWorld world, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { ParticleEnergyCoreFX particle = new ParticleEnergyCoreFX(world, x, y, z, new Vec3D(xSpeed, ySpeed, zSpeed), spriteSet); particle.toCore = data.get().length >= 1 && data.get()[0] == 1; particle.startRotation = data.get().length >= 2 ? data.get()[1] : 0; particle.isLargeStabilizer = data.get().length >= 3 && data.get()[2] == 1; - particle.multiplyParticleScaleBy(particle.isLargeStabilizer ? 2 : 1); + particle.scale(particle.isLargeStabilizer ? 2 : 1); return particle; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleFusionCrafting.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleFusionCrafting.java index 2490c41e6..bf48d41e2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleFusionCrafting.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleFusionCrafting.java @@ -27,13 +27,13 @@ public ParticleFusionCrafting(ClientWorld worldIn, Vec3D pos, Vec3D corePos, IFu super(worldIn, pos, new Vec3D()); this.corePos = corePos; this.craftingInventory = craftingInventory; - this.particleAlpha = 0; - this.rotation = rand.nextInt(1000); - this.motionX = this.motionY = this.motionZ = 0; - this.circlePos = rand.nextFloat() * 1000F; - this.circleDir = rand.nextBoolean(); - this.aRandomFloat = rand.nextFloat(); - this.rotYAngle = rand.nextFloat() * 1000; + this.alpha = 0; + this.rotation = random.nextInt(1000); + this.xd = this.yd = this.zd = 0; + this.circlePos = random.nextFloat() * 1000F; + this.circleDir = random.nextBoolean(); + this.aRandomFloat = random.nextFloat(); + this.rotYAngle = random.nextFloat() * 1000; // this.particleScale = 1F; } @@ -191,15 +191,15 @@ public SubParticle(ClientWorld worldIn, Vec3D pos) { super(worldIn, pos); double speed = 0.1; - this.motionX = (-0.5 + rand.nextDouble()) * speed; - this.motionY = (-0.5 + rand.nextDouble()) * speed; - this.motionZ = (-0.5 + rand.nextDouble()) * speed; + this.xd = (-0.5 + random.nextDouble()) * speed; + this.yd = (-0.5 + random.nextDouble()) * speed; + this.zd = (-0.5 + random.nextDouble()) * speed; // this.particleMaxAge = 10 + rand.nextInt(10); // this.particleScale = 1F; // this.particleTextureIndexY = 1; - this.particleRed = 0; + this.rCol = 0; } // @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleLineIndicator.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleLineIndicator.java index 2ddea4313..9c2827f21 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleLineIndicator.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleLineIndicator.java @@ -13,9 +13,9 @@ public class ParticleLineIndicator extends SpriteTexturedParticle { public ParticleLineIndicator(World worldIn, double xCoordIn, double yCoordIn, double zCoordIn, double xSpeedIn, double ySpeedIn, double zSpeedIn) { super((ClientWorld)worldIn, xCoordIn, yCoordIn, zCoordIn, xSpeedIn, ySpeedIn, zSpeedIn); - this.motionX = xSpeedIn; - this.motionY = ySpeedIn; - this.motionZ = zSpeedIn; + this.xd = xSpeedIn; + this.yd = ySpeedIn; + this.zd = zSpeedIn; } @Override @@ -31,15 +31,15 @@ public Factory(IAnimatedSprite p_i50823_1_) { } @Override - public Particle makeParticle(IntParticleType.IntParticleData data, ClientWorld world, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { + public Particle createParticle(IntParticleType.IntParticleData data, ClientWorld world, double x, double y, double z, double xSpeed, double ySpeed, double zSpeed) { ParticleLineIndicator particle = new ParticleLineIndicator(world, x, y, z, xSpeed, ySpeed, zSpeed); - particle.selectSpriteRandomly(spriteSet); + particle.pickSprite(spriteSet); if (data.get().length >= 3) { particle.setColor(data.get()[0] / 255F, data.get()[1] / 255F, data.get()[2] / 255F); } if (data.get().length >= 4) { - particle.setMaxAge(data.get()[3]); + particle.setLifetime(data.get()[3]); } return particle; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticlePortal.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticlePortal.java index 0be2f9706..b629024bf 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticlePortal.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticlePortal.java @@ -22,10 +22,10 @@ public ParticlePortal(ClientWorld worldIn, Vec3D pos, Vec3D target) { super(worldIn, pos, new Vec3D(0, 0, 0)); this.start = pos; this.target = target; - float speed = 0.12F + (rand.nextFloat() * 0.2F); - this.motionX = (target.x - start.x) * speed; - this.motionY = (target.y - start.y) * speed; - this.motionZ = (target.z - start.z) * speed; + float speed = 0.12F + (random.nextFloat() * 0.2F); + this.xd = (target.x - start.x) * speed; + this.yd = (target.y - start.y) * speed; + this.zd = (target.z - start.z) * speed; // this.particleMaxAge = 120; // this.particleRed = this.particleGreen = this.particleBlue = 1.0f; // float baseSize = 0.05F + ((float) Minecraft.getInstance().player.getDistance(pos.x, pos.y, pos.z)) * 0.007F; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleSoulExtraction.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleSoulExtraction.java index 81caacd16..4a5cb26e4 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleSoulExtraction.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleSoulExtraction.java @@ -23,9 +23,9 @@ public ParticleSoulExtraction(ClientWorld worldIn, Vec3D pos, Vec3D targetPos) { // this.particleScale = 3F; // this.particleTextureIndexY = 1; this.setColour(0, 0, 0); - this.motionX = (rand.nextFloat() - 0.5F) * 0.4F; - this.motionY = (rand.nextFloat() - 0.5F) * 0.4F; - this.motionZ = (rand.nextFloat() - 0.5F) * 0.4F; + this.xd = (random.nextFloat() - 0.5F) * 0.4F; + this.yd = (random.nextFloat() - 0.5F) * 0.4F; + this.zd = (random.nextFloat() - 0.5F) * 0.4F; } // @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleStarSpark.java b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleStarSpark.java index 7abb9ec2d..a3f4172d6 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleStarSpark.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/particle/ParticleStarSpark.java @@ -15,9 +15,9 @@ public ParticleStarSpark(ClientWorld worldIn, Vec3D pos) { super(worldIn, pos); double speed = 0.1; - this.motionX = (-0.5 + rand.nextDouble()) * speed; - this.motionY = (-0.5 + rand.nextDouble()) * speed; - this.motionZ = (-0.5 + rand.nextDouble()) * speed; + this.xd = (-0.5 + random.nextDouble()) * speed; + this.yd = (-0.5 + random.nextDouble()) * speed; + this.zd = (-0.5 + random.nextDouble()) * speed; // this.particleMaxAge = 10 + rand.nextInt(10); // this.particleTextureIndexY = 1; @@ -33,11 +33,11 @@ public void tick() { // if (particleAge++ > particleMaxAge) { // setExpired(); // } - this.prevPosX = this.posX; - this.prevPosY = this.posY; - this.prevPosZ = this.posZ; + this.xo = this.x; + this.yo = this.y; + this.zo = this.z; - motionY += particleGravity; + yd += gravity; // particleTextureIndexX = rand.nextInt(5); // int ttd = particleMaxAge - particleAge; @@ -48,11 +48,11 @@ public void tick() { // particleScale = sparkSize; // } - motionX *= 1 - airResistance; - motionY *= 1 - airResistance; - motionZ *= 1 - airResistance; + xd *= 1 - airResistance; + yd *= 1 - airResistance; + zd *= 1 - airResistance; - moveEntityNoClip(motionX, motionY, motionZ); + moveEntityNoClip(xd, yd, zd); } // @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/shaders/DEShaders.java b/src/main/java/com/brandon3055/draconicevolution/client/render/shaders/DEShaders.java index cd3040cb0..512ab505f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/shaders/DEShaders.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/shaders/DEShaders.java @@ -1,14 +1,10 @@ package com.brandon3055.draconicevolution.client.render.shaders; -//import codechicken.lib.render.shader.ShaderHelper; import codechicken.lib.render.shader.ShaderObject; import java.io.IOException; -//import static codechicken.lib.render.shader.ShaderHelper.getStream; -//import static codechicken.lib.render.shader.ShaderHelper.readShader; -//import static codechicken.lib.render.shader.ShaderObject.ShaderType.FRAGMENT; -//import static codechicken.lib.render.shader.ShaderObject.ShaderType.VERTEX; + /** * Created by brandon3055 on 6/11/2016. diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileCelestialManipulator.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileCelestialManipulator.java index 96e433572..1c2c37d08 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileCelestialManipulator.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileCelestialManipulator.java @@ -19,15 +19,15 @@ public void render(TileCelestialManipulator te, double x, double y, double z, fl if (player == null) { return; } - EffectTrackerCelestialManipulator.interpPosX = player.lastTickPosX + (player.getPosX() - player.lastTickPosX) * (double) partialTicks; - EffectTrackerCelestialManipulator.interpPosY = player.lastTickPosY + (player.getPosY() - player.lastTickPosY) * (double) partialTicks; - EffectTrackerCelestialManipulator.interpPosZ = player.lastTickPosZ + (player.getPosZ() - player.lastTickPosZ) * (double) partialTicks; + EffectTrackerCelestialManipulator.interpPosX = player.xOld + (player.getX() - player.xOld) * (double) partialTicks; + EffectTrackerCelestialManipulator.interpPosY = player.yOld + (player.getY() - player.yOld) * (double) partialTicks; + EffectTrackerCelestialManipulator.interpPosZ = player.zOld + (player.getZ() - player.zOld) * (double) partialTicks; te.renderEffects(partialTicks); } @Override - public boolean isGlobalRenderer(TileCelestialManipulator te) { + public boolean shouldRenderOffScreen(TileCelestialManipulator te) { return true; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileChaosCrystal.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileChaosCrystal.java index 63cffe932..4820621a0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileChaosCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileChaosCrystal.java @@ -34,7 +34,6 @@ import static codechicken.lib.render.shader.ShaderObject.StandardShaderType.VERTEX; import static com.brandon3055.draconicevolution.DraconicEvolution.MODID; import static net.minecraft.client.renderer.RenderState.*; -import static net.minecraft.client.renderer.RenderState.CULL_DISABLED; /** * Created by brandon3055 on 24/9/2015. @@ -55,7 +54,7 @@ public class RenderTileChaosCrystal extends TileEntityRenderer .uniform("baseColour", UniformType.VEC4) .uniform("tier", UniformType.INT) ) - .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 20)) + .whenUsed(cache -> cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 20)) .build(); public static ShaderProgram chaosShader = ShaderProgramBuilder.builder() @@ -74,35 +73,35 @@ public class RenderTileChaosCrystal extends TileEntityRenderer .whenUsed(cache -> { cache.glUniform1f("alpha", 0.7F); Minecraft mc = Minecraft.getInstance(); - cache.glUniform1f("yaw", (float) ((mc.player.rotationYaw * 2 * Math.PI) / 360.0)); - cache.glUniform1f("pitch", -(float) ((mc.player.rotationPitch * 2 * Math.PI) / 360.0)); - cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 1); + cache.glUniform1f("yaw", (float) ((mc.player.yRot * 2 * Math.PI) / 360.0)); + cache.glUniform1f("pitch", -(float) ((mc.player.xRot * 2 * Math.PI) / 360.0)); + cache.glUniform1f("time", (BCClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 1); }) .build(); - private static RenderType crystalType = RenderType.makeType("crystal_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/chaos_crystal.png"), false, false)) - .transparency(TRANSLUCENT_TRANSPARENCY) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false)); + private static RenderType crystalType = RenderType.create("crystal_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/chaos_crystal.png"), false, false)) + .setTransparencyState(TRANSLUCENT_TRANSPARENCY) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false)); - private static RenderType shieldType = RenderType.makeType("shieldTypse", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .diffuseLighting(DIFFUSE_LIGHTING_ENABLED) - .transparency(TRANSLUCENT_TRANSPARENCY) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .lightmap(LIGHTMAP_ENABLED) - .cull(CULL_DISABLED) - .build(false)); + private static RenderType shieldType = RenderType.create("shieldTypse", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.builder() + .setDiffuseLightingState(DIFFUSE_LIGHTING) + .setTransparencyState(TRANSLUCENT_TRANSPARENCY) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .setLightmapState(LIGHTMAP) + .setCullState(NO_CULL) + .createCompositeState(false)); - public static RenderType chaosType = RenderType.makeType("chaosShaderType", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/chaos_shader.png"), true, false)) - .diffuseLighting(DIFFUSE_LIGHTING_ENABLED) - .transparency(TRANSLUCENT_TRANSPARENCY) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .lightmap(LIGHTMAP_ENABLED) - .cull(CULL_DISABLED) - .build(false)); + public static RenderType chaosType = RenderType.create("chaosShaderType", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/item/equipment/chaos_shader.png"), true, false)) + .setDiffuseLightingState(DIFFUSE_LIGHTING) + .setTransparencyState(TRANSLUCENT_TRANSPARENCY) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .setLightmapState(LIGHTMAP) + .setCullState(NO_CULL) + .createCompositeState(false)); public RenderTileChaosCrystal(TileEntityRendererDispatcher rendererDispatcherIn) { @@ -140,7 +139,7 @@ public void render(TileChaosCrystal te, float partialTicks, MatrixStack mStack, ccrs.bind(new ShaderRenderType(shieldType, shieldShader, uniforms), getter); model.render(ccrs, mat); if (getter instanceof IRenderTypeBuffer.Impl) { - ((IRenderTypeBuffer.Impl) getter).finish(); + ((IRenderTypeBuffer.Impl) getter).endBatch(); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileCraftingInjector.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileCraftingInjector.java index ed98f849a..bcdcc67cd 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileCraftingInjector.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileCraftingInjector.java @@ -28,24 +28,24 @@ public void render(TileCraftingInjector te, float partialTicks, MatrixStack mSta } if (!te.itemHandler.getStackInSlot(0).isEmpty()) { - BlockState state = te.getWorld().getBlockState(te.getPos()); - Direction facing = state.get(CraftingInjector.FACING); - mStack.translate(0.5 + (facing.getXOffset() * 0.45), 0.5 + (facing.getYOffset() * 0.45), 0.5 + (facing.getZOffset() * 0.45)); + BlockState state = te.getLevel().getBlockState(te.getBlockPos()); + Direction facing = state.getValue(CraftingInjector.FACING); + mStack.translate(0.5 + (facing.getStepX() * 0.45), 0.5 + (facing.getStepY() * 0.45), 0.5 + (facing.getStepZ() * 0.45)); mStack.scale(0.5F, 0.5F, 0.5F); if (facing.getAxis() == Direction.Axis.Y) { if (facing == Direction.DOWN) { - mStack.rotate(new Quaternion(180, 0, 0, true)); + mStack.mulPose(new Quaternion(180, 0, 0, true)); } } else { - mStack.rotate(new Quaternion(facing.getZOffset() * 90, 0, facing.getXOffset() * -90, true)); + mStack.mulPose(new Quaternion(facing.getStepZ() * 90, 0, facing.getStepX() * -90, true)); } - mStack.rotate(new Quaternion(0, (ClientEventHandler.elapsedTicks + partialTicks) * -0.8F, 0, true)); + mStack.mulPose(new Quaternion(0, (ClientEventHandler.elapsedTicks + partialTicks) * -0.8F, 0, true)); ItemStack stack = te.itemHandler.getStackInSlot(0); - Minecraft.getInstance().getItemRenderer().renderItem(stack, FIXED, packetLight, packetOverlay, mStack, getter); + Minecraft.getInstance().getItemRenderer().renderStatic(stack, FIXED, packetLight, packetOverlay, mStack, getter); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileDislocatorPedestal.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileDislocatorPedestal.java index acba3e9e4..eafc5c319 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileDislocatorPedestal.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileDislocatorPedestal.java @@ -41,7 +41,7 @@ public RenderTileDislocatorPedestal(TileEntityRendererDispatcher rendererDispatc // @Override public void render(TileDislocatorPedestal te, double x, double y, double z, float partialTicks, int destroyStage) { if (modelQuads == null) { - modelQuads = Minecraft.getInstance().getBlockRendererDispatcher().getModelForState(DEContent.dislocator_pedestal.getDefaultState()).getQuads(DEContent.dislocator_pedestal.getDefaultState(), null, ModelUtils.rand); + modelQuads = Minecraft.getInstance().getBlockRenderer().getBlockModel(DEContent.dislocator_pedestal.defaultBlockState()).getQuads(DEContent.dislocator_pedestal.defaultBlockState(), null, ModelUtils.rand); } RenderSystem.pushMatrix(); @@ -77,16 +77,16 @@ public void render(TileDislocatorPedestal te, double x, double y, double z, floa private void drawNameString(ItemStack item, float rotation, TileDislocatorPedestal te, float f) { ClientPlayerEntity player = Minecraft.getInstance().player; RayTraceResult mop = player.pick(10, f, true); - boolean isCursorOver = mop instanceof BlockRayTraceResult && ((BlockRayTraceResult) mop).getPos().equals(te.getPos()); - boolean isSneaking = player.isSneaking(); + boolean isCursorOver = mop instanceof BlockRayTraceResult && ((BlockRayTraceResult) mop).getBlockPos().equals(te.getBlockPos()); + boolean isSneaking = player.isShiftKeyDown(); if (!isCursorOver && (isSneaking != DEOldConfig.invertDPDSB)) { return; } - String s = item.hasDisplayName() ? item.getDisplayName().getString() : ""; + String s = item.hasCustomHoverName() ? item.getHoverName().getString() : ""; if (item.getItem() instanceof DislocatorAdvanced) { - DislocatorAdvanced.DislocatorTarget location = ((DislocatorAdvanced) item.getItem()).getTargetPos(item, te.getWorld()); + DislocatorAdvanced.DislocatorTarget location = ((DislocatorAdvanced) item.getItem()).getTargetPos(item, te.getLevel()); if (location != null) { s = location.getName(); } @@ -96,7 +96,7 @@ private void drawNameString(ItemStack item, float rotation, TileDislocatorPedest } - FontRenderer fontRenderer = Minecraft.getInstance().fontRenderer; + FontRenderer fontRenderer = Minecraft.getInstance().font; Tessellator tess = Tessellator.getInstance(); RenderSystem.pushMatrix(); @@ -104,32 +104,32 @@ private void drawNameString(ItemStack item, float rotation, TileDislocatorPedest RenderSystem.rotatef(180, 0, 1, 0); RenderSystem.translated(0, -55, 0); - double xDiff = player.getPosX() - (te.getPos().getX() + 0.5); - double yDiff = (player.getPosY() + player.getEyeHeight()) - (te.getPos().getY() + 0.5); - double zDiff = player.getPosZ() - (te.getPos().getZ() + 0.5); + double xDiff = player.getX() - (te.getBlockPos().getX() + 0.5); + double yDiff = (player.getY() + player.getEyeHeight()) - (te.getBlockPos().getY() + 0.5); + double zDiff = player.getZ() - (te.getBlockPos().getZ() + 0.5); double yawAngle = Math.toDegrees(Math.atan2(zDiff, xDiff)); - double pitchAngle = Math.toDegrees(Math.atan2(yDiff, Utils.getDistanceAtoB(player.getPosX(), player.getPosY(), player.getPosZ(), te.getPos().getX() + 0.5, te.getPos().getY() + 0.5, te.getPos().getZ() + 0.5))); + double pitchAngle = Math.toDegrees(Math.atan2(yDiff, Utils.getDistanceAtoB(player.getX(), player.getY(), player.getZ(), te.getBlockPos().getX() + 0.5, te.getBlockPos().getY() + 0.5, te.getBlockPos().getZ() + 0.5))); RenderSystem.rotatef((float) yawAngle + 90 - rotation, 0, 1, 0); RenderSystem.rotatef((float) -pitchAngle, 1, 0, 0); - int xmin = -1 - fontRenderer.getStringWidth(s) / 2; - int xmax = 1 + fontRenderer.getStringWidth(s) / 2; + int xmin = -1 - fontRenderer.width(s) / 2; + int xmax = 1 + fontRenderer.width(s) / 2; int ymin = -1; - int ymax = fontRenderer.FONT_HEIGHT; + int ymax = fontRenderer.lineHeight; RenderSystem.enableBlend(); RenderSystem.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); RenderSystem.color4f(0f, 0f, 0f, 0.5f); RenderSystem.disableTexture(); - BufferBuilder buffer = tess.getBuffer(); + BufferBuilder buffer = tess.getBuilder(); buffer.begin(GL11.GL_QUADS, DefaultVertexFormats.POSITION_TEX); - buffer.pos(xmin, ymax, 0).tex(xmin / 64F, 1).endVertex(); - buffer.pos(xmax, ymax, 0).tex(xmax / 64F, 1).endVertex(); - buffer.pos(xmax, ymin, 0).tex(xmax / 64F, 0.75F).endVertex(); - buffer.pos(xmin, ymin, 0).tex(xmin / 64F, 0.75F).endVertex(); - tess.draw(); + buffer.vertex(xmin, ymax, 0).uv(xmin / 64F, 1).endVertex(); + buffer.vertex(xmax, ymax, 0).uv(xmax / 64F, 1).endVertex(); + buffer.vertex(xmax, ymin, 0).uv(xmax / 64F, 0.75F).endVertex(); + buffer.vertex(xmin, ymin, 0).uv(xmin / 64F, 0.75F).endVertex(); + tess.end(); RenderSystem.enableTexture(); RenderSystem.disableBlend(); @@ -137,7 +137,7 @@ private void drawNameString(ItemStack item, float rotation, TileDislocatorPedest RenderSystem.color4f(1f, 1f, 1f, 1f); RenderSystem.disableLighting(); - fontRenderer.drawString(new MatrixStack(), s, -fontRenderer.getStringWidth(s) / 2F, 0, 0xffffff); + fontRenderer.draw(new MatrixStack(), s, -fontRenderer.width(s) / 2F, 0, 0xffffff); RenderSystem.enableLighting(); RenderSystem.popMatrix(); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileECStabilizer.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileECStabilizer.java index 12f9c1c34..ad46c8fef 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileECStabilizer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileECStabilizer.java @@ -17,7 +17,7 @@ */ public class RenderTileECStabilizer extends TileEntityRenderer { - private static final RenderType modelType = RenderType.getEntitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/stabilizer_large.png")); + private static final RenderType modelType = RenderType.entitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/stabilizer_large.png")); private final ModelLargeECStabilizer model; public RenderTileECStabilizer(TileEntityRendererDispatcher rendererDispatcherIn) { @@ -33,18 +33,18 @@ public void render(TileEnergyCoreStabilizer tile, float partialTicks, MatrixStac if (tile.isCoreActive.get()) { facing = tile.coreDirection.get(); } else { - facing = Direction.getFacingFromAxis(Direction.AxisDirection.POSITIVE, tile.multiBlockAxis.get()); + facing = Direction.get(Direction.AxisDirection.POSITIVE, tile.multiBlockAxis.get()); } - matrixStack.push(); + matrixStack.pushPose(); matrixStack.translate(0.5, 0.5, 0.5); if (facing.getAxis() == Direction.Axis.X || facing.getAxis() == Direction.Axis.Y) { - matrixStack.rotate(new Quaternion(facing.getYOffset() * 90, facing.getXOffset() * -90, 0, true)); + matrixStack.mulPose(new Quaternion(facing.getStepY() * 90, facing.getStepX() * -90, 0, true)); } else if (facing == Direction.SOUTH) { - matrixStack.rotate(new Quaternion(0, 180F, 0, true)); + matrixStack.mulPose(new Quaternion(0, 180F, 0, true)); } - matrixStack.rotate(new Quaternion(0, 0F, tile.rotation + (tile.isCoreActive.get() ? partialTicks : 0), true)); - model.render(matrixStack, getter.getBuffer(modelType), packedLightIn, packedOverlayIn, 1, 1, 1, 1); - matrixStack.pop(); + matrixStack.mulPose(new Quaternion(0, 0F, tile.rotation + (tile.isCoreActive.get() ? partialTicks : 0), true)); + model.renderToBuffer(matrixStack, getter.getBuffer(modelType), packedLightIn, packedOverlayIn, 1, 1, 1, 1); + matrixStack.popPose(); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyCore.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyCore.java index 870a00aeb..3b53075d5 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyCore.java @@ -33,41 +33,41 @@ public class RenderTileEnergyCore extends TileEntityRenderer { private static final double[] SCALES = {1.1, 1.7, 2.3, 3.6, 5.5, 7.1, 8.6, 10.2}; - private static final RenderType innerCoreType = RenderType.getEntitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/energy_core_base.png")); - private static final RenderType outerCoreType = RenderType.makeType("outer_core", DefaultVertexFormats.ENTITY, GL11.GL_QUADS, 256, false, true, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/energy_core_overlay.png"), false, false)) - .transparency(RenderState.TRANSLUCENT_TRANSPARENCY) + private static final RenderType innerCoreType = RenderType.entitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/energy_core_base.png")); + private static final RenderType outerCoreType = RenderType.create("outer_core", DefaultVertexFormats.NEW_ENTITY, GL11.GL_QUADS, 256, false, true, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/energy_core_overlay.png"), false, false)) + .setTransparencyState(RenderState.TRANSLUCENT_TRANSPARENCY) // .writeMask(RenderState.COLOR_WRITE) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); - private static final RenderType innerStabType = RenderType.makeType("inner_stab", DefaultVertexFormats.ENTITY, GL11.GL_QUADS, 256, false, true, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/stabilizer_sphere.png"), false, false)) - .transparency(RenderState.NO_TRANSPARENCY) + private static final RenderType innerStabType = RenderType.create("inner_stab", DefaultVertexFormats.NEW_ENTITY, GL11.GL_QUADS, 256, false, true, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/stabilizer_sphere.png"), false, false)) + .setTransparencyState(RenderState.NO_TRANSPARENCY) // .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + .createCompositeState(false) ); - private static final RenderType outerStabType = RenderType.makeType("outer_stab", DefaultVertexFormats.ENTITY, GL11.GL_QUADS, 256, false, true, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/stabilizer_sphere.png"), false, false)) - .transparency(RenderState.TRANSLUCENT_TRANSPARENCY) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private static final RenderType outerStabType = RenderType.create("outer_stab", DefaultVertexFormats.NEW_ENTITY, GL11.GL_QUADS, 256, false, true, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/stabilizer_sphere.png"), false, false)) + .setTransparencyState(RenderState.TRANSLUCENT_TRANSPARENCY) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); - private static final RenderType beamType = RenderType.makeType("inner_beam", DefaultVertexFormats.POSITION_TEX, GL11.GL_QUADS, 256, false, true, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/stabilizer_beam.png"), false, false)) - .transparency(RenderState.NO_TRANSPARENCY) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private static final RenderType beamType = RenderType.create("inner_beam", DefaultVertexFormats.POSITION_TEX, GL11.GL_QUADS, 256, false, true, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/stabilizer_beam.png"), false, false)) + .setTransparencyState(RenderState.NO_TRANSPARENCY) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); - private static final RenderType outerBeamType = RenderType.makeType("outer_beam", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_TRIANGLE_STRIP, 256, false, false, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/stabilizer_beam.png"), false, false)) - .transparency(RenderState.TRANSLUCENT_TRANSPARENCY) - .writeMask(RenderState.COLOR_WRITE) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private static final RenderType outerBeamType = RenderType.create("outer_beam", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_TRIANGLE_STRIP, 256, false, false, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/core/stabilizer_beam.png"), false, false)) + .setTransparencyState(RenderState.TRANSLUCENT_TRANSPARENCY) + .setWriteMaskState(RenderState.COLOR_WRITE) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); private final CCModel modelStabilizerSphere; @@ -189,9 +189,9 @@ private void renderStabilizers(TileEnergyCore te, CCRenderState ccrs, Matrix4 ma Matrix4 mat = matrix4.copy(); mat.translate(-vec3I.get().x + 0.5, -vec3I.get().y + 0.5, -vec3I.get().z + 0.5); - Direction facing = Direction.getFacingFromVector(vec3I.get().x, vec3I.get().y, vec3I.get().z);//Direction.getFacingFromAxis(Direction.AxisDirection.POSITIVE, te.multiBlockAxis); + Direction facing = Direction.getNearest(vec3I.get().x, vec3I.get().y, vec3I.get().z);//Direction.getFacingFromAxis(Direction.AxisDirection.POSITIVE, te.multiBlockAxis); if (facing.getAxis() == Direction.Axis.X || facing.getAxis() == Direction.Axis.Y) { - mat.rotate(-90F * MathHelper.torad, new Vector3(-facing.getYOffset(), facing.getXOffset(), 0).normalize()); + mat.rotate(-90F * MathHelper.torad, new Vector3(-facing.getStepY(), facing.getStepX(), 0).normalize()); } else if (facing == Direction.SOUTH) { mat.rotate(180F * MathHelper.torad, new Vector3(0, 1, 0).normalize()); } @@ -253,25 +253,25 @@ private void renderStabilizerBeam(TileEnergyCore te, Matrix4 matrix4, IRenderTyp } innerMat.translate(-0.5, 0, -0.5); - builder.pos(d7, beamLength, d9).tex(texXMax, texHeight).endVertex(); - builder.pos(d7, 0, d9).tex(texXMax, d28).endVertex(); - builder.pos(d11, 0, d13).tex(texXMin, d28).endVertex(); - builder.pos(d11, beamLength, d13).tex(texXMin, texHeight).endVertex(); + builder.vertex(d7, beamLength, d9).uv(texXMax, texHeight).endVertex(); + builder.vertex(d7, 0, d9).uv(texXMax, d28).endVertex(); + builder.vertex(d11, 0, d13).uv(texXMin, d28).endVertex(); + builder.vertex(d11, beamLength, d13).uv(texXMin, texHeight).endVertex(); - builder.pos(d19, beamLength, d21).tex(texXMax, texHeight).endVertex(); - builder.pos(d19, 0, d21).tex(texXMax, d28).endVertex(); - builder.pos(d15, 0, d17).tex(texXMin, d28).endVertex(); - builder.pos(d15, beamLength, d17).tex(texXMin, texHeight).endVertex(); + builder.vertex(d19, beamLength, d21).uv(texXMax, texHeight).endVertex(); + builder.vertex(d19, 0, d21).uv(texXMax, d28).endVertex(); + builder.vertex(d15, 0, d17).uv(texXMin, d28).endVertex(); + builder.vertex(d15, beamLength, d17).uv(texXMin, texHeight).endVertex(); - builder.pos(d11, beamLength, d13).tex(texXMax, texHeight).endVertex(); - builder.pos(d11, 0, d13).tex(texXMax, d28).endVertex(); - builder.pos(d19, 0, d21).tex(texXMin, d28).endVertex(); - builder.pos(d19, beamLength, d21).tex(texXMin, texHeight).endVertex(); + builder.vertex(d11, beamLength, d13).uv(texXMax, texHeight).endVertex(); + builder.vertex(d11, 0, d13).uv(texXMax, d28).endVertex(); + builder.vertex(d19, 0, d21).uv(texXMin, d28).endVertex(); + builder.vertex(d19, beamLength, d21).uv(texXMin, texHeight).endVertex(); - builder.pos(d15, beamLength, d17).tex(texXMax, texHeight).endVertex(); - builder.pos(d15, 0, d17).tex(texXMax, d28).endVertex(); - builder.pos(d7, 0, d9).tex(texXMin, d28).endVertex(); - builder.pos(d7, beamLength, d9).tex(texXMin, texHeight).endVertex(); + builder.vertex(d15, beamLength, d17).uv(texXMax, texHeight).endVertex(); + builder.vertex(d15, 0, d17).uv(texXMax, d28).endVertex(); + builder.vertex(d7, 0, d9).uv(texXMin, d28).endVertex(); + builder.vertex(d7, beamLength, d9).uv(texXMin, texHeight).endVertex(); rotation += 0.77f; d7 = 0.5F + (float) Math.cos(rotation + 2.356194490192345F) * scale; @@ -286,25 +286,25 @@ private void renderStabilizerBeam(TileEnergyCore te, Matrix4 matrix4, IRenderTyp d28 = (-1F + (beamMotion * 1)); texHeight = beamLength * (0.5F / scale) + d28; - builder.pos(d7, beamLength, d9).tex(texXMax, texHeight).endVertex(); - builder.pos(d7, 0, d9).tex(texXMax, d28).endVertex(); - builder.pos(d11, 0, d13).tex(texXMin, d28).endVertex(); - builder.pos(d11, beamLength, d13).tex(texXMin, texHeight).endVertex(); - - builder.pos(d19, beamLength, d21).tex(texXMax, texHeight).endVertex(); - builder.pos(d19, 0, d21).tex(texXMax, d28).endVertex(); - builder.pos(d15, 0, d17).tex(texXMin, d28).endVertex(); - builder.pos(d15, beamLength, d17).tex(texXMin, texHeight).endVertex(); - - builder.pos(d11, beamLength, d13).tex(texXMax, texHeight).endVertex(); - builder.pos(d11, 0, d13).tex(texXMax, d28).endVertex(); - builder.pos(d19, 0, d21).tex(texXMin, d28).endVertex(); - builder.pos(d19, beamLength, d21).tex(texXMin, texHeight).endVertex(); - - builder.pos(d15, beamLength, d17).tex(texXMax, texHeight).endVertex(); - builder.pos(d15, 0, d17).tex(texXMax, d28).endVertex(); - builder.pos(d7, 0, d9).tex(texXMin, d28).endVertex(); - builder.pos(d7, beamLength, d9).tex(texXMin, texHeight).endVertex(); + builder.vertex(d7, beamLength, d9).uv(texXMax, texHeight).endVertex(); + builder.vertex(d7, 0, d9).uv(texXMax, d28).endVertex(); + builder.vertex(d11, 0, d13).uv(texXMin, d28).endVertex(); + builder.vertex(d11, beamLength, d13).uv(texXMin, texHeight).endVertex(); + + builder.vertex(d19, beamLength, d21).uv(texXMax, texHeight).endVertex(); + builder.vertex(d19, 0, d21).uv(texXMax, d28).endVertex(); + builder.vertex(d15, 0, d17).uv(texXMin, d28).endVertex(); + builder.vertex(d15, beamLength, d17).uv(texXMin, texHeight).endVertex(); + + builder.vertex(d11, beamLength, d13).uv(texXMax, texHeight).endVertex(); + builder.vertex(d11, 0, d13).uv(texXMax, d28).endVertex(); + builder.vertex(d19, 0, d21).uv(texXMin, d28).endVertex(); + builder.vertex(d19, beamLength, d21).uv(texXMin, texHeight).endVertex(); + + builder.vertex(d15, beamLength, d17).uv(texXMax, texHeight).endVertex(); + builder.vertex(d15, 0, d17).uv(texXMax, d28).endVertex(); + builder.vertex(d7, 0, d9).uv(texXMin, d28).endVertex(); + builder.vertex(d7, beamLength, d9).uv(texXMin, texHeight).endVertex(); //endregion Matrix4 outerMat = matrix4.copy(); @@ -328,14 +328,14 @@ private void renderStabilizerBeam(TileEnergyCore te, Matrix4 matrix4, IRenderTyp for (int i = 0; i <= sides; i++) { float verX = (float) Math.sin((float) (i % sides) * (float) Math.PI * 2F / (float) sides) * 1F; float verY = (float) Math.cos((float) (i % sides) * (float) Math.PI * 2F / (float) sides) * 1F; - builder.pos(verX * 0.35F, verY * 0.35F, 0.0D).color(255, 255, 255, 32).tex(i, (beamMotion * 2)).endVertex(); - builder.pos(verX * enlarge, verY * enlarge, beamLength).color(255, 255, 255, 32).tex(i, beamLength + (beamMotion * 2)).endVertex(); + builder.vertex(verX * 0.35F, verY * 0.35F, 0.0D).color(255, 255, 255, 32).uv(i, (beamMotion * 2)).endVertex(); + builder.vertex(verX * enlarge, verY * enlarge, beamLength).color(255, 255, 255, 32).uv(i, beamLength + (beamMotion * 2)).endVertex(); } } @Override - public boolean isGlobalRenderer(TileEnergyCore p_188185_1_) { + public boolean shouldRenderOffScreen(TileEnergyCore p_188185_1_) { return true; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyCrystal.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyCrystal.java index ac4e1a751..c392a1492 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyCrystal.java @@ -62,17 +62,17 @@ public class RenderTileEnergyCrystal extends TileEntityRenderer .uniform("type", UniformType.INT) .uniform("angle", UniformType.VEC2) ) - .whenUsed(cache -> cache.glUniform1f("time", (ClientEventHandler.elapsedTicks + Minecraft.getInstance().getRenderPartialTicks()) / 50)) + .whenUsed(cache -> cache.glUniform1f("time", (ClientEventHandler.elapsedTicks + Minecraft.getInstance().getFrameTime()) / 50)) .build(); - private static final RenderType fallBackType = RenderType.makeType("fall_back_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_no_shader.png"), false, false)) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private static final RenderType fallBackType = RenderType.create("fall_back_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_no_shader.png"), false, false)) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); - private static final RenderType fallBackOverlayType = RenderType.getEntityTranslucent(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_base.png")); - private static final RenderType crystalBaseType = RenderType.getEntitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_base.png")); + private static final RenderType fallBackOverlayType = RenderType.entityTranslucent(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_base.png")); + private static final RenderType crystalBaseType = RenderType.entitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/models/crystal_base.png")); private final CCModel crystalFull; private final CCModel crystalHalf; @@ -98,20 +98,20 @@ public void render(TileCrystalBase te, float partialTicks, MatrixStack mStack, I ccrs.overlay = packedOverlay; PlayerEntity player = Minecraft.getInstance().player; - double x = player.getPosX() - (te.getPos().getX() + 0.5); - double y = player.getPosY() - (te.getPos().getY() + 0.5); - double z = player.getPosZ() - (te.getPos().getZ() + 0.5); - BlockPos pos = te.getPos(); + double x = player.getX() - (te.getBlockPos().getX() + 0.5); + double y = player.getY() - (te.getBlockPos().getY() + 0.5); + double z = player.getZ() - (te.getBlockPos().getZ() + 0.5); + BlockPos pos = te.getBlockPos(); double mm = MathHelper.clip((((x * x) + (y * y) + (z * z) - 5) / 512), 0, 1); float xrot = (float) Math.atan2(x + 0.5, z + 0.5); - float dist = (float) Utils.getDistanceAtoB(Vec3D.getCenter(pos).x, Vec3D.getCenter(pos).z, Minecraft.getInstance().player.getPosX(), Minecraft.getInstance().player.getPosZ()); + float dist = (float) Utils.getDistanceAtoB(Vec3D.getCenter(pos).x, Vec3D.getCenter(pos).z, Minecraft.getInstance().player.getX(), Minecraft.getInstance().player.getZ()); float yrot = (float) net.minecraft.util.math.MathHelper.atan2(dist, y + 0.5); if (te instanceof TileCrystalDirectIO) { ccrs.bind(crystalBaseType, getter); mat.translate(0.5, 1, 0.5); mat.scale(-0.5); - mat.apply(Rotation.sideOrientation(((TileCrystalDirectIO) te).facing.get().getOpposite().getIndex(), 0).at(new Vector3(0, 1, 0))); + mat.apply(Rotation.sideOrientation(((TileCrystalDirectIO) te).facing.get().getOpposite().get3DDataValue(), 0).at(new Vector3(0, 1, 0))); crystalBase.render(ccrs, mat); mat.rotate((ClientEventHandler.elapsedTicks + partialTicks) / 400F, new Vector3(0, 1, 0)); @@ -153,7 +153,7 @@ public void render(TileCrystalBase te, float partialTicks, MatrixStack mStack, I } if (getter instanceof IRenderTypeBuffer.Impl) { - ((IRenderTypeBuffer.Impl) getter).finish(); + ((IRenderTypeBuffer.Impl) getter).endBatch(); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyPylon.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyPylon.java index 96fc7c3e4..b9982336c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyPylon.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyPylon.java @@ -31,13 +31,13 @@ */ public class RenderTileEnergyPylon extends TileEntityRenderer { - private static RenderType modelType = RenderType.getEntitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/pylon_sphere_texture.png")); - private static RenderType shelType = RenderType.makeType("pylon_sphere22", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/pylon_sphere_texture.png"), false, false)) - .transparency(RenderState.LIGHTNING_TRANSPARENCY) - .writeMask(RenderState.COLOR_WRITE) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private static RenderType modelType = RenderType.entitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/pylon_sphere_texture.png")); + private static RenderType shelType = RenderType.create("pylon_sphere22", DefaultVertexFormats.POSITION_COLOR_TEX, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/pylon_sphere_texture.png"), false, false)) + .setTransparencyState(RenderState.LIGHTNING_TRANSPARENCY) + .setWriteMaskState(RenderState.COLOR_WRITE) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); private final CCModel model; diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyTransfuser.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyTransfuser.java index bf69e4991..67f311d00 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyTransfuser.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileEnergyTransfuser.java @@ -29,12 +29,12 @@ */ public class RenderTileEnergyTransfuser extends TileEntityRenderer { - private static final Style GALACTIC_STYLE = Style.EMPTY.setFontId(Minecraft.standardGalacticFontRenderer); + private static final Style GALACTIC_STYLE = Style.EMPTY.withFont(Minecraft.ALT_FONT); public static final ITextComponent[] TEXT = { - new StringTextComponent("N").mergeStyle(GALACTIC_STYLE), - new StringTextComponent("E").mergeStyle(GALACTIC_STYLE), - new StringTextComponent("S").mergeStyle(GALACTIC_STYLE), - new StringTextComponent("W").mergeStyle(GALACTIC_STYLE) + new StringTextComponent("N").withStyle(GALACTIC_STYLE), + new StringTextComponent("E").withStyle(GALACTIC_STYLE), + new StringTextComponent("S").withStyle(GALACTIC_STYLE), + new StringTextComponent("W").withStyle(GALACTIC_STYLE) }; private static final Direction[] DIR_MAP = {NORTH, EAST, SOUTH, WEST}; @@ -49,27 +49,27 @@ public void render(TileEnergyTransfuser tile, float partialTicks, MatrixStack mS mStack.translate(0.5, 0.5, 0.5); for (int i = 0; i < 4; i++) { Direction dir = DIR_MAP[i]; - mStack.push(); - mStack.translate(0.5 * dir.getXOffset(), 0, 0.5 * dir.getZOffset()); - mStack.rotate(dir.getRotation()); + mStack.pushPose(); + mStack.translate(0.5 * dir.getStepX(), 0, 0.5 * dir.getStepZ()); + mStack.mulPose(dir.getRotation()); - mStack.push(); - mStack.rotate(new Quaternion(90, 0, 0, true)); + mStack.pushPose(); + mStack.mulPose(new Quaternion(90, 0, 0, true)); double xOffset = dir == NORTH ? 2 : dir == SOUTH ? 1 : 2.5; mStack.translate(0.0625 * -xOffset, 0.0625 * -3.5, 0.0625 * 1.375); mStack.scale(0.0625F, 0.0625F, 0.0625F); - mc.fontRenderer.func_238422_b_(mStack, TEXT[i].func_241878_f(), 0, 0, tile.ioModes[i].get().getColour()); - mStack.pop(); + mc.font.draw(mStack, TEXT[i].getVisualOrderText(), 0, 0, tile.ioModes[i].get().getColour()); + mStack.popPose(); ItemStack stack = tile.itemsCombined.getStackInSlot(i); if (!stack.isEmpty()) { - mStack.rotate(new Quaternion(90, 0, 180, true)); + mStack.mulPose(new Quaternion(90, 0, 180, true)); mStack.translate(0, 0, 0.0625 * (1.5 / 2)); mStack.scale(0.5F, 0.5F, 0.5F); - Minecraft.getInstance().getItemRenderer().renderItem(stack, FIXED, packedLight, OverlayTexture.NO_OVERLAY, mStack, getter); + Minecraft.getInstance().getItemRenderer().renderStatic(stack, FIXED, packedLight, OverlayTexture.NO_OVERLAY, mStack, getter); } - mStack.pop(); + mStack.popPose(); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileFusionCraftingCore.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileFusionCraftingCore.java index b016147f2..fdd9aabce 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileFusionCraftingCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileFusionCraftingCore.java @@ -27,12 +27,12 @@ public void render(TileCraftingCore te, float partialTicks, MatrixStack mStack, ItemStack stack = !te.getStackInCore(1).isEmpty() ? te.getStackInCore(1) : te.getStackInCore(0); Minecraft mc = Minecraft.getInstance(); if (!stack.isEmpty()) { - mStack.push(); + mStack.pushPose(); mStack.translate(0.5, 0.5, 0.5); mStack.scale(0.5F, 0.5F, 0.5F); - mStack.rotate(new Quaternion(0, (ClientEventHandler.elapsedTicks + partialTicks) * 0.8F, 0, true)); - mc.getItemRenderer().renderItem(stack, FIXED, packetLight, packetOverlay, mStack, getter); - mStack.pop(); + mStack.mulPose(new Quaternion(0, (ClientEventHandler.elapsedTicks + partialTicks) * 0.8F, 0, true)); + mc.getItemRenderer().renderStatic(stack, FIXED, packetLight, packetOverlay, mStack, getter); + mStack.popPose(); } ClientPlayerEntity player = mc.player; @@ -43,9 +43,9 @@ public void render(TileCraftingCore te, float partialTicks, MatrixStack mStack, mStack.translate(0.5, -1, 0.5); RenderSystem.pushMatrix(); new Matrix4(mStack).glApply(); - EffectTrackerFusionCrafting.interpPosX = player.lastTickPosX + (player.getPosX() - player.lastTickPosX) * (double) partialTicks; - EffectTrackerFusionCrafting.interpPosY = player.lastTickPosY + (player.getPosY() - player.lastTickPosY) * (double) partialTicks; - EffectTrackerFusionCrafting.interpPosZ = player.lastTickPosZ + (player.getPosZ() - player.lastTickPosZ) * (double) partialTicks; + EffectTrackerFusionCrafting.interpPosX = player.xOld + (player.getX() - player.xOld) * (double) partialTicks; + EffectTrackerFusionCrafting.interpPosY = player.yOld + (player.getY() - player.yOld) * (double) partialTicks; + EffectTrackerFusionCrafting.interpPosZ = player.zOld + (player.getZ() - player.zOld) * (double) partialTicks; // te.renderEffects(partialTicks); RenderSystem.popMatrix(); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileGenerator.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileGenerator.java index e3e6893cc..9dec0b96f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileGenerator.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileGenerator.java @@ -25,7 +25,7 @@ */ public class RenderTileGenerator extends TileEntityRenderer { - private static RenderType modelType = RenderType.getSolid(); + private static RenderType modelType = RenderType.solid(); private final CCModel fanModel; public RenderTileGenerator(TileEntityRendererDispatcher rendererDispatcherIn) { @@ -46,7 +46,7 @@ public void render(TileGenerator tile, float partialTicks, MatrixStack mStack, I ccrs.bind(modelType, getter); mat.translate(Vector3.CENTER); - mat.apply(new Rotation(tile.getBlockState().get(Generator.FACING).getOpposite().getHorizontalAngle() * -MathHelper.torad, 0, 1, 0)); + mat.apply(new Rotation(tile.getBlockState().getValue(Generator.FACING).getOpposite().toYRot() * -MathHelper.torad, 0, 1, 0)); mat.apply(new Scale(0.0625)); mat.apply(new Rotation((tile.rotation + (tile.rotationSpeed * partialTicks)), 1, 0, 0).at(new Vector3(0, -1.5, -4.5))); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileGrinder.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileGrinder.java index 0752de6ea..bc3638d54 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileGrinder.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileGrinder.java @@ -36,22 +36,22 @@ */ public class RenderTileGrinder extends TileEntityRenderer { private static final double[] ROTATION_MAP = new double[]{0, 180, 90, -90}; - private static final RenderType swordType = RenderType.getEntitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/grinder.png")); - private static final RenderType fanType = RenderType.getEntitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/parts/machine_fan.png")); - private static final RenderType aoeOutlineType = RenderType.makeType("aoe", DefaultVertexFormats.POSITION_COLOR, GL11.GL_LINES, 256, RenderType.State.getBuilder() - .transparency(RenderState.TRANSLUCENT_TRANSPARENCY) - .cull(RenderState.CULL_DISABLED) - .writeMask(RenderState.COLOR_WRITE) - .line(new RenderState.LineState(OptionalDouble.of(4.0))) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private static final RenderType swordType = RenderType.entitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/grinder.png")); + private static final RenderType fanType = RenderType.entitySolid(new ResourceLocation(DraconicEvolution.MODID, "textures/block/parts/machine_fan.png")); + private static final RenderType aoeOutlineType = RenderType.create("aoe", DefaultVertexFormats.POSITION_COLOR, GL11.GL_LINES, 256, RenderType.State.builder() + .setTransparencyState(RenderState.TRANSLUCENT_TRANSPARENCY) + .setCullState(RenderState.NO_CULL) + .setWriteMaskState(RenderState.COLOR_WRITE) + .setLineState(new RenderState.LineState(OptionalDouble.of(4.0))) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); - private static final RenderType aoeSolidType = RenderType.makeType("aoe_solid", DefaultVertexFormats.POSITION_COLOR, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .transparency(RenderState.TRANSLUCENT_TRANSPARENCY) - .cull(RenderState.CULL_DISABLED) - .writeMask(RenderState.COLOR_WRITE) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private static final RenderType aoeSolidType = RenderType.create("aoe_solid", DefaultVertexFormats.POSITION_COLOR, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTransparencyState(RenderState.TRANSLUCENT_TRANSPARENCY) + .setCullState(RenderState.NO_CULL) + .setWriteMaskState(RenderState.COLOR_WRITE) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); @@ -74,9 +74,9 @@ public RenderTileGrinder(TileEntityRendererDispatcher rendererDispatcherIn) { @Override public void render(TileGrinder tile, float partialTicks, MatrixStack mStack, IRenderTypeBuffer getter, int packedLight, int packedOverlay) { - BlockState state = tile.getWorld().getBlockState(tile.getPos()); + BlockState state = tile.getLevel().getBlockState(tile.getBlockPos()); if (state.getBlock() != DEContent.grinder) return; - Direction facing = state.get(Grinder.FACING); + Direction facing = state.getValue(Grinder.FACING); Matrix4 mat = new Matrix4(mStack); CCRenderState ccrs = CCRenderState.instance(); @@ -97,7 +97,7 @@ public void render(TileGrinder tile, float partialTicks, MatrixStack mStack, IRe ccrs.bind(fanType, getter); Matrix4 fanMat = mat.copy(); fanMat.translate(Vector3.CENTER); - fanMat.apply(new Rotation(facing.getHorizontalAngle() * -MathHelper.torad, 0, 1, 0)); + fanMat.apply(new Rotation(facing.toYRot() * -MathHelper.torad, 0, 1, 0)); fanMat.apply(new Scale(-0.0625)); fanMat.apply(new Rotation((tile.fanRotation + (tile.fanSpeed * partialTicks)), 0, 0, 1)); fanModel.render(ccrs, fanMat); @@ -105,7 +105,7 @@ public void render(TileGrinder tile, float partialTicks, MatrixStack mStack, IRe if (tile.aoeDisplay > 0.51) { tile.validateKillZone(true); IVertexBuilder builder = new TransformingVertexBuilder(getter.getBuffer(aoeOutlineType), mat); - Cuboid6 box = new Cuboid6(tile.killZone.offset(Vector3.fromTile(tile).multiply(-1).pos()).shrink(0.01).shrink(tile.aoe.get() - tile.aoeDisplay)); + Cuboid6 box = new Cuboid6(tile.killZone.move(Vector3.fromTile(tile).multiply(-1).pos()).deflate(0.01).deflate(tile.aoe.get() - tile.aoeDisplay)); RenderUtils.bufferCuboidOutline(builder, box, 0F, 0F, 0F, 1F); builder = new TransformingVertexBuilder(getter.getBuffer(aoeSolidType), mat); RenderUtils.bufferCuboidSolid(builder, box, 0F, 1F, 1F, 0.2F); @@ -145,7 +145,7 @@ private void renderSword(CCRenderState ccrs, Direction tileFacing, double sideOf attackAnimTime *= 2; double yoyo = attackAnimTime > 1D ? 1D - (attackAnimTime - 1D) : attackAnimTime; sideOffset *= 1D - yoyo; - double sideAngle = ROTATION_MAP[tileFacing.getIndex() - 2] * MathHelper.torad; + double sideAngle = ROTATION_MAP[tileFacing.get3DDataValue() - 2] * MathHelper.torad; Transformation rotation = new Rotation(yoyo * Math.PI * -2.8, 1, 0, 0).at(new Vector3(0, -0.2, 0)); Vector3 handPos = new Vector3(0.4975 + sideOffset, 0.5, 0.125 + (yoyo * (0.375))); @@ -166,8 +166,8 @@ private void renderSword(CCRenderState ccrs, Direction tileFacing, double sideOf } private Vector3 getEntityMovingVec(Entity entity, float partialTicks) { - Vector3 vec = new Vector3(entity.lastTickPosX, entity.lastTickPosY - entity.getYOffset() + (double) (entity.getHeight() / 2.0F), entity.lastTickPosZ); - vec.add(Vector3.fromEntityCenter(entity).subtract(entity.lastTickPosX, entity.lastTickPosY - entity.getYOffset() + (double) (entity.getHeight() / 2.0F), entity.lastTickPosZ).multiply(partialTicks)); + Vector3 vec = new Vector3(entity.xOld, entity.yOld - entity.getMyRidingOffset() + (double) (entity.getBbHeight() / 2.0F), entity.zOld); + vec.add(Vector3.fromEntityCenter(entity).subtract(entity.xOld, entity.yOld - entity.getMyRidingOffset() + (double) (entity.getBbHeight() / 2.0F), entity.zOld).multiply(partialTicks)); return vec; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTilePlacedItem.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTilePlacedItem.java index 0705ba0fe..cbbb72d47 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTilePlacedItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTilePlacedItem.java @@ -32,14 +32,14 @@ public void render(TilePlacedItem te, double x, double y, double z, float partia // GlStateTracker.pushState(); RenderSystem.translated(x + 0.5, y + 0.5, z + 0.5); - ItemStack[] stacks = new ItemStack[]{te.inventory.getStackInSlot(0), te.inventory.getStackInSlot(1), te.inventory.getStackInSlot(2), te.inventory.getStackInSlot(3)}; + ItemStack[] stacks = new ItemStack[]{te.inventory.getItem(0), te.inventory.getItem(1), te.inventory.getItem(2), te.inventory.getItem(3)}; int index = 0; List cuboids = te.getCachedRenderCuboids(); for (IndexedCuboid6 cuboid : cuboids) { if (index == 4) { - LogHelper.bigError("Detected illegal render state for placed item at " + te.getPos() + " Index: " + index); - LogHelper.error("Tile NBT Dump: " + te.write(new CompoundNBT())); + LogHelper.bigError("Detected illegal render state for placed item at " + te.getBlockPos() + " Index: " + index); + LogHelper.error("Tile NBT Dump: " + te.save(new CompoundNBT())); LogHelper.error("Cuboid List: " + cuboids.size() + " " + Joiner.on(", ").join(cuboids)); LogHelper.error("Thread: " + Thread.currentThread().getName()); index = 3; @@ -52,10 +52,10 @@ public void render(TilePlacedItem te, double x, double y, double z, float partia RenderSystem.translated(center.x - 0.5, center.y - 0.5, center.z - 0.5); if (te.facing.getAxis() == Direction.Axis.Y) { - RenderSystem.rotatef(90, te.facing.getYOffset(), 0, 0); + RenderSystem.rotatef(90, te.facing.getStepY(), 0, 0); } else if (te.facing.getAxis() == Direction.Axis.X) { - RenderSystem.rotatef(90, 0, -te.facing.getXOffset(), 0); + RenderSystem.rotatef(90, 0, -te.facing.getStepX(), 0); } else if (te.facing == Direction.SOUTH) { RenderSystem.rotatef(180, 0, 1, 0); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTilePotentiometer.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTilePotentiometer.java index 7c30b88e8..0f83c34eb 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTilePotentiometer.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTilePotentiometer.java @@ -75,13 +75,13 @@ public void render(TilePotentiometer te, float partialTicks, MatrixStack matrixS UVTransformation iconTransform = new IconTransformation(stoneTex); CCRenderState state = CCRenderState.instance(); state.reset(); - state.bind(RenderType.getSolid(), buffer); + state.bind(RenderType.solid(), buffer); state.brightness = combinedLightIn; state.overlay = combinedOverlayIn; double pxl = 1D / 16D; Matrix4 mat = new Matrix4(matrixStackIn); - mat.apply(Rotation.sideOrientation(te.getBlockState().get(Potentiometer.FACING).getOpposite().getIndex(), 0).at(Vector3.CENTER)); + mat.apply(Rotation.sideOrientation(te.getBlockState().getValue(Potentiometer.FACING).getOpposite().get3DDataValue(), 0).at(Vector3.CENTER)); mat.apply(new Translation(6 * pxl, pxl, 6 * pxl)); mat.apply(new Rotation(te.power.get() * 22.5D * -MathHelper.torad, 0, 1, 0).at(new Vector3(pxl * 2, 0, pxl * 2))); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileReactorComponent.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileReactorComponent.java index f99d0be9c..ab412b190 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileReactorComponent.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileReactorComponent.java @@ -29,24 +29,24 @@ public RenderTileReactorComponent(TileEntityRendererDispatcher rendererDispatche public static final ResourceLocation REACTOR_STABILIZER_RING = new ResourceLocation(DraconicEvolution.MODID, "textures/block/reactor/reactor_stabilizer_ring.png"); public static final ResourceLocation REACTOR_INJECTOR = new ResourceLocation(DraconicEvolution.MODID, "textures/block/reactor/model_reactor_power_injector.png"); - public static ModelReactorStabilizerCore stabilizerModel = new ModelReactorStabilizerCore(RenderType::getEntitySolid); - public static ModelReactorStabilizerRing stabilizerRingModel = new ModelReactorStabilizerRing(RenderType::getEntitySolid); - public static ModelReactorEnergyInjector injectorModel = new ModelReactorEnergyInjector(RenderType::getEntitySolid); + public static ModelReactorStabilizerCore stabilizerModel = new ModelReactorStabilizerCore(RenderType::entitySolid); + public static ModelReactorStabilizerRing stabilizerRingModel = new ModelReactorStabilizerRing(RenderType::entitySolid); + public static ModelReactorEnergyInjector injectorModel = new ModelReactorEnergyInjector(RenderType::entitySolid); @Override public void render(TileReactorComponent te, float partialTicks, MatrixStack matrix, IRenderTypeBuffer getter, int packedLight, int packedOverlay) { matrix.translate(0.5, 0.5, 0.5); if (te.facing.get() == Direction.SOUTH) { - matrix.rotate(new Quaternion(0, 180, 0, true)); + matrix.mulPose(new Quaternion(0, 180, 0, true)); } else if (te.facing.get() == Direction.EAST) { - matrix.rotate(new Quaternion(0, -90, 0, true)); + matrix.mulPose(new Quaternion(0, -90, 0, true)); } else if (te.facing.get() == Direction.WEST) { - matrix.rotate(new Quaternion(0, 90, 0, true)); + matrix.mulPose(new Quaternion(0, 90, 0, true)); } else if (te.facing.get() == Direction.UP) { - matrix.rotate(new Quaternion(90, 0, 0, true)); + matrix.mulPose(new Quaternion(90, 0, 0, true)); } else if (te.facing.get() == Direction.DOWN) { - matrix.rotate(new Quaternion(-90, 0, 0, true)); + matrix.mulPose(new Quaternion(-90, 0, 0, true)); } if (te instanceof TileReactorStabilizer) { @@ -62,19 +62,19 @@ public static void renderStabilizer(MatrixStack matrix, IRenderTypeBuffer getter float ringRotation = coreRotation * -0.5F;//Remember Partial Ticks here stabilizerModel.brightness = brightness; stabilizerModel.rotation = coreRotation; - stabilizerModel.render(matrix, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER)), packedLight, packedOverlay, 1F, 1F, 1F, 1F); - matrix.rotate(new Quaternion(90, 0, 0, true)); + stabilizerModel.renderToBuffer(matrix, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER)), packedLight, packedOverlay, 1F, 1F, 1F, 1F); + matrix.mulPose(new Quaternion(90, 0, 0, true)); matrix.translate(0, -0.58, 0); // matrix.scale(0.95F, 0.95F, 0.95F); - matrix.rotate(new Quaternion(0, ringRotation, 0, true)); + matrix.mulPose(new Quaternion(0, ringRotation, 0, true)); stabilizerRingModel.brightness = brightness; stabilizerRingModel.embitterRotation = 70F; - stabilizerRingModel.render(matrix, getter.getBuffer(stabilizerModel.getRenderType(REACTOR_STABILIZER_RING)), packedLight, packedOverlay, 1F, 1F, 1F, 1F); + stabilizerRingModel.renderToBuffer(matrix, getter.getBuffer(stabilizerModel.renderType(REACTOR_STABILIZER_RING)), packedLight, packedOverlay, 1F, 1F, 1F, 1F); } public static void renderInjector(MatrixStack matrix, IRenderTypeBuffer getter, float brightness, int packedLight, int packedOverlay) { injectorModel.brightness = brightness; - injectorModel.render(matrix, getter.getBuffer(injectorModel.getRenderType(REACTOR_INJECTOR)), packedLight, packedOverlay, 1F, 1F, 1F, 1F); + injectorModel.renderToBuffer(matrix, getter.getBuffer(injectorModel.renderType(REACTOR_INJECTOR)), packedLight, packedOverlay, 1F, 1F, 1F, 1F); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileReactorCore.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileReactorCore.java index c78f8215c..1cf0f427f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileReactorCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileReactorCore.java @@ -78,17 +78,17 @@ public class RenderTileReactorCore extends TileEntityRenderer { .build(); - private static RenderType fallBackType = RenderType.makeType("fall_back_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/reactor/reactor_core.png"), false, false)) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private static RenderType fallBackType = RenderType.create("fall_back_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/reactor/reactor_core.png"), false, false)) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); - private static RenderType fallBackShieldType = RenderType.makeType("fall_back_shield_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.getBuilder() - .transparency(RenderState.TRANSLUCENT_TRANSPARENCY) - .texture(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/reactor/reactor_shield.png"), false, false)) - .texturing(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) - .build(false) + private static RenderType fallBackShieldType = RenderType.create("fall_back_shield_type", DefaultVertexFormats.POSITION_COLOR_TEX_LIGHTMAP, GL11.GL_QUADS, 256, RenderType.State.builder() + .setTransparencyState(RenderState.TRANSLUCENT_TRANSPARENCY) + .setTextureState(new RenderState.TextureState(new ResourceLocation(DraconicEvolution.MODID, "textures/block/reactor/reactor_shield.png"), false, false)) + .setTexturingState(new RenderState.TexturingState("lighting", RenderSystem::disableLighting, SneakyUtils.none())) + .createCompositeState(false) ); public RenderTileReactorCore(TileEntityRendererDispatcher rendererDispatcherIn) { @@ -171,7 +171,7 @@ public static void renderCore(Matrix4 mat, CCRenderState ccrs, float animation, ccrs.bind(fallBackType, getter); model_no_shade.render(ccrs, mat); if (getter instanceof IRenderTypeBuffer.Impl) { - ((IRenderTypeBuffer.Impl) getter).finish(); + ((IRenderTypeBuffer.Impl) getter).endBatch(); } mat.scale(1.05); @@ -195,22 +195,22 @@ public static void renderGUI(TileReactorCore te, int x, int y) { float shieldPower = (float) (te.maxShieldCharge.get() > 0 ? te.shieldCharge.get() / te.maxShieldCharge.get() : 0); MatrixStack stack = new MatrixStack(); Minecraft mc = Minecraft.getInstance(); - IRenderTypeBuffer.Impl getter = mc.getRenderTypeBuffers().getBufferSource(); + IRenderTypeBuffer.Impl getter = mc.renderBuffers().bufferSource(); Matrix4 mat = new Matrix4(stack); mat.scale(diameter); - mat.rotate((ClientEventHandler.elapsedTicks + mc.getRenderPartialTicks()) / 400F, Vector3.Y_POS); + mat.rotate((ClientEventHandler.elapsedTicks + mc.getFrameTime()) / 400F, Vector3.Y_POS); CCRenderState ccrs = CCRenderState.instance(); ccrs.reset(); RenderSystem.translated(x, y, 100); RenderSystem.depthMask(false); - renderCore(mat, ccrs, animation, te.shaderAnimationState.get(), intensity, shieldPower, mc.getRenderPartialTicks(), getter); - getter.finish(); + renderCore(mat, ccrs, animation, te.shaderAnimationState.get(), intensity, shieldPower, mc.getFrameTime(), getter); + getter.endBatch(); RenderSystem.depthMask(true); RenderSystem.popMatrix(); } @Override - public boolean isGlobalRenderer(TileReactorCore te) { + public boolean shouldRenderOffScreen(TileReactorCore te) { return true; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileStabilizedSpawner.java b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileStabilizedSpawner.java index 7be648c54..3a86aaffc 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileStabilizedSpawner.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/render/tile/RenderTileStabilizedSpawner.java @@ -1 +1,75 @@ -package com.brandon3055.draconicevolution.client.render.tile; import codechicken.lib.texture.TextureUtils; import com.brandon3055.brandonscore.client.render.TESRBase; import com.brandon3055.brandonscore.utils.ModelUtils; import com.brandon3055.draconicevolution.init.DEContent; import com.brandon3055.draconicevolution.blocks.tileentity.StabilizedSpawnerLogic; import com.brandon3055.draconicevolution.blocks.tileentity.TileStabilizedSpawner; import com.brandon3055.draconicevolution.utils.ResourceHelperDE; import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.IRenderTypeBuffer; import net.minecraft.client.renderer.model.BakedQuad; import net.minecraft.client.renderer.model.IBakedModel; import net.minecraft.client.renderer.tileentity.TileEntityRenderer; import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; import net.minecraft.util.Util; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.vector.Quaternion; import net.minecraft.util.math.vector.Vector3f; import net.minecraft.world.spawner.AbstractSpawner; import java.util.List; import static net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType.FIXED; /** * Created by brandon3055 on 20/05/2016. */ public class RenderTileStabilizedSpawner extends TileEntityRenderer { private static ItemStack[] CORE_RENDER_ITEMS = new ItemStack[]{new ItemStack(DEContent.core_draconium), new ItemStack(DEContent.core_wyvern), new ItemStack(DEContent.core_awakened), new ItemStack(DEContent.core_chaotic)}; public RenderTileStabilizedSpawner(TileEntityRendererDispatcher rendererDispatcherIn) { super(rendererDispatcherIn); } @Override public void render(TileStabilizedSpawner tile, float partialTicks, MatrixStack mStack, IRenderTypeBuffer getter, int packedLight, int packedOverlay) { StabilizedSpawnerLogic spawnerLogic = tile.spawnerLogic; mStack.push(); mStack.translate(0.5D, 0.0D, 0.5D); Entity entity = spawnerLogic.getCachedEntity(); if (entity != null) { float f = 0.53125F; float f1 = Math.max(entity.getWidth(), entity.getHeight()); if ((double) f1 > 1.0D) { f /= f1; } mStack.translate(0.0D, (double) 0.4F, 0.0D); mStack.rotate(Vector3f.YP.rotationDegrees((float) MathHelper.lerp((double) partialTicks, spawnerLogic.getPrevMobRotation(), spawnerLogic.getMobRotation()) * 10.0F)); mStack.translate(0.0D, (double) -0.2F, 0.0D); mStack.rotate(Vector3f.XP.rotationDegrees(-30.0F)); mStack.scale(f, f, f); Minecraft.getInstance().getRenderManager().renderEntityStatic(entity, 0.0D, 0.0D, 0.0D, 0.0F, partialTicks, mStack, getter, packedLight); } mStack.pop(); mStack.translate(0.5, 1F-(1F/32F), 0.5); mStack.scale(0.75F, 0.75F, 0.75F); mStack.rotate(new Quaternion(90, 0, 0, true)); ItemStack stack = CORE_RENDER_ITEMS[tile.spawnerTier.get().ordinal()]; Minecraft.getInstance().getItemRenderer().renderItem(stack, FIXED, packedLight, packedOverlay, mStack, getter); } } \ No newline at end of file +package com.brandon3055.draconicevolution.client.render.tile; + +import codechicken.lib.texture.TextureUtils; +import com.brandon3055.brandonscore.client.render.TESRBase; +import com.brandon3055.brandonscore.utils.ModelUtils; +import com.brandon3055.draconicevolution.init.DEContent; +import com.brandon3055.draconicevolution.blocks.tileentity.StabilizedSpawnerLogic; +import com.brandon3055.draconicevolution.blocks.tileentity.TileStabilizedSpawner; +import com.brandon3055.draconicevolution.utils.ResourceHelperDE; +import com.mojang.blaze3d.matrix.MatrixStack; +import com.mojang.blaze3d.systems.RenderSystem; +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.IRenderTypeBuffer; +import net.minecraft.client.renderer.model.BakedQuad; +import net.minecraft.client.renderer.model.IBakedModel; +import net.minecraft.client.renderer.tileentity.TileEntityRenderer; +import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher; +import net.minecraft.entity.Entity; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Util; +import net.minecraft.util.math.MathHelper; +import net.minecraft.util.math.vector.Quaternion; +import net.minecraft.util.math.vector.Vector3f; +import net.minecraft.world.spawner.AbstractSpawner; + +import java.util.List; + +import static net.minecraft.client.renderer.model.ItemCameraTransforms.TransformType.FIXED; + +/** + * Created by brandon3055 on 20/05/2016. + */ +public class RenderTileStabilizedSpawner extends TileEntityRenderer { + + private static ItemStack[] CORE_RENDER_ITEMS = new ItemStack[]{new ItemStack(DEContent.core_draconium), new ItemStack(DEContent.core_wyvern), new ItemStack(DEContent.core_awakened), new ItemStack(DEContent.core_chaotic)}; + + public RenderTileStabilizedSpawner(TileEntityRendererDispatcher rendererDispatcherIn) { + super(rendererDispatcherIn); + } + + @Override + public void render(TileStabilizedSpawner tile, float partialTicks, MatrixStack mStack, IRenderTypeBuffer getter, int packedLight, int packedOverlay) { + StabilizedSpawnerLogic spawnerLogic = tile.spawnerLogic; + + mStack.pushPose(); + mStack.translate(0.5D, 0.0D, 0.5D); + Entity entity = spawnerLogic.getOrCreateDisplayEntity(); + if (entity != null) { + float f = 0.53125F; + float f1 = Math.max(entity.getBbWidth(), entity.getBbHeight()); + if ((double) f1 > 1.0D) { + f /= f1; + } + + + + + + mStack.translate(0.0D, (double) 0.4F, 0.0D); + mStack.mulPose(Vector3f.YP.rotationDegrees((float)MathHelper.lerp((double)partialTicks, spawnerLogic.getoSpin(), spawnerLogic.getSpin()) * 10.0F)); + mStack.translate(0.0D, (double) -0.2F, 0.0D); + mStack.mulPose(Vector3f.XP.rotationDegrees(-30.0F)); + mStack.scale(f, f, f); + Minecraft.getInstance().getEntityRenderDispatcher().render(entity, 0.0D, 0.0D, 0.0D, 0.0F, partialTicks, mStack, getter, packedLight); + } + mStack.popPose(); + + mStack.translate(0.5, 1F-(1F/32F), 0.5); + mStack.scale(0.75F, 0.75F, 0.75F); + mStack.mulPose(Vector3f.XP.rotationDegrees(90.0F)); + + ItemStack stack = CORE_RENDER_ITEMS[tile.spawnerTier.get().ordinal()]; + Minecraft.getInstance().getItemRenderer().renderStatic(stack, FIXED, packedLight, packedOverlay, mStack, getter); + } +} diff --git a/src/main/java/com/brandon3055/draconicevolution/client/sound/CelestialModifierSound.java b/src/main/java/com/brandon3055/draconicevolution/client/sound/CelestialModifierSound.java index 920f98656..8f610535a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/sound/CelestialModifierSound.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/sound/CelestialModifierSound.java @@ -17,7 +17,7 @@ public class CelestialModifierSound extends SimpleSound implements ITickableSoun public CelestialModifierSound(SoundEvent soundEvent, BlockPos pos) { super(soundEvent, SoundCategory.BLOCKS, 1, 1, pos); - repeat = true; + looping = true; } public void updateSound(Vec3D pos, float volume, float pitch) { @@ -34,7 +34,7 @@ public void kill() { } @Override - public boolean isDonePlaying() { + public boolean isStopped() { return done || timer > 20; } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/sound/FusionRotationSound.java b/src/main/java/com/brandon3055/draconicevolution/client/sound/FusionRotationSound.java index a41a163e8..5cd9bae66 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/sound/FusionRotationSound.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/sound/FusionRotationSound.java @@ -13,13 +13,13 @@ public class FusionRotationSound extends SimpleSound implements ITickableSound { private TileCraftingCore tile; public FusionRotationSound(TileCraftingCore tile) { - super(DESounds.fusionRotation, SoundCategory.BLOCKS, 1.5F, 1, tile.getPos()); + super(DESounds.fusionRotation, SoundCategory.BLOCKS, 1.5F, 1, tile.getBlockPos()); this.tile = tile; - repeat = true; + looping = true; } @Override - public boolean isDonePlaying() { + public boolean isStopped() { return tile.isRemoved() || !tile.craftingInProgress(); } diff --git a/src/main/java/com/brandon3055/draconicevolution/client/sound/GeneratorSoundHandler.java b/src/main/java/com/brandon3055/draconicevolution/client/sound/GeneratorSoundHandler.java index d68dfc02e..1ae48e169 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/sound/GeneratorSoundHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/sound/GeneratorSoundHandler.java @@ -32,7 +32,7 @@ public void tick() { if (!tile.active.get()) { if (activeSound != null) { activeSound.fadeDown = true; - if (activeSound.isDonePlaying()) { + if (activeSound.isStopped()) { activeSound = null; } } @@ -40,15 +40,15 @@ public void tick() { } TileGenerator.Mode mode = tile.mode.get(); - if (activeSound == null || activeSound.isDonePlaying()) { + if (activeSound == null || activeSound.isStopped()) { if (mode.index >= 2) { activeSound = new GeneratorSound(tile, DESounds.generator2, startHigh ? 1.5F : 0.5F); - Minecraft.getInstance().getSoundHandler().play(activeSound); + Minecraft.getInstance().getSoundManager().play(activeSound); currentHigh = true; } else { activeSound = new GeneratorSound(tile, DESounds.generator1, startHigh ? 1F : 0.5F); - Minecraft.getInstance().getSoundHandler().play(activeSound); + Minecraft.getInstance().getSoundManager().play(activeSound); currentHigh = false; } } @@ -81,23 +81,23 @@ public class GeneratorSound extends SimpleSound implements ITickableSound { boolean fadeDown = false; public GeneratorSound(TileGenerator tile, SoundEvent sound, float startPitch) { - super(sound, SoundCategory.BLOCKS, 0.3F, 1F, tile.getPos()); + super(sound, SoundCategory.BLOCKS, 0.3F, 1F, tile.getBlockPos()); this.tile = tile; - this.repeat = true; + this.looping = true; this.pitch = startPitch; this.targetPitch = startPitch; } @Override - public boolean isDonePlaying() { + public boolean isStopped() { return donePlaying; } @Override public void tick() { - x = (float) tile.getPos().getX() + 0.5F; - y = (float) tile.getPos().getY() + 0.5F; - z = (float) tile.getPos().getZ() + 0.5F; + x = (float) tile.getBlockPos().getX() + 0.5F; + y = (float) tile.getBlockPos().getY() + 0.5F; + z = (float) tile.getBlockPos().getZ() + 0.5F; if (fadeUp) { targetPitch = 1.5F; @@ -108,7 +108,7 @@ else if (fadeDown) { if (((fadeUp && pitch >= 1) || (fadeDown && pitch <= 0.55)) || tile.isRemoved()) { donePlaying = true; - repeat = false; + looping = false; } pitch = (float) MathHelper.approachExp(pitch, targetPitch, 0.05); diff --git a/src/main/java/com/brandon3055/draconicevolution/client/sound/ReactorSound.java b/src/main/java/com/brandon3055/draconicevolution/client/sound/ReactorSound.java index 8e253c27f..6f16481ba 100644 --- a/src/main/java/com/brandon3055/draconicevolution/client/sound/ReactorSound.java +++ b/src/main/java/com/brandon3055/draconicevolution/client/sound/ReactorSound.java @@ -23,14 +23,14 @@ public class ReactorSound extends SimpleSound implements ITickableSound { private int stopTimer = 0; public ReactorSound(TileReactorCore tile) { - super(DESounds.coreSound, SoundCategory.BLOCKS, tile.reactorState.get() == BEYOND_HOPE ? 10F : 1.5F, 1, tile.getPos()); + super(DESounds.coreSound, SoundCategory.BLOCKS, tile.reactorState.get() == BEYOND_HOPE ? 10F : 1.5F, 1, tile.getBlockPos()); this.tile = tile; - this.repeat = true; + this.looping = true; this.targetPitch = 1F; } @Override - public boolean isDonePlaying() { + public boolean isStopped() { return donePlaying; } @@ -42,9 +42,9 @@ public void tick() { z = (float) tile.roller.pos.z; } else { - x = (float) tile.getPos().getX() + 0.5F; - y = (float) tile.getPos().getY() + 0.5F; - z = (float) tile.getPos().getZ() + 0.5F; + x = (float) tile.getBlockPos().getX() + 0.5F; + y = (float) tile.getBlockPos().getY() + 0.5F; + z = (float) tile.getBlockPos().getZ() + 0.5F; } @@ -59,17 +59,17 @@ else if (tile.reactorState.get() == BEYOND_HOPE) { if (volume == 1.5F) { donePlaying = true; } - if (tile.getWorld().rand.nextInt(10) == 0) { - targetPitch = 1F + (tile.getWorld().rand.nextFloat() / 2F); + if (tile.getLevel().random.nextInt(10) == 0) { + targetPitch = 1F + (tile.getLevel().random.nextFloat() / 2F); } } PlayerEntity player = Minecraft.getInstance().player; - if (tile.isRemoved() || player == null || player.getDistanceSq(Vector3d.copy(tile.getPos())) > (volume > 1.5F ? 4096 : 512)){ + if (tile.isRemoved() || player == null || player.distanceToSqr(Vector3d.atLowerCornerOf(tile.getBlockPos())) > (volume > 1.5F ? 4096 : 512)){ // if (stopTimer++ == 60) { donePlaying = true; - repeat = false; + looping = false; // } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/command/CommandKaboom.java b/src/main/java/com/brandon3055/draconicevolution/command/CommandKaboom.java index 7627b0072..79d43eef4 100644 --- a/src/main/java/com/brandon3055/draconicevolution/command/CommandKaboom.java +++ b/src/main/java/com/brandon3055/draconicevolution/command/CommandKaboom.java @@ -32,24 +32,24 @@ public class CommandKaboom { public static void register(CommandDispatcher dispatcher) { dispatcher.register( Commands.literal("de_kaboom") - .requires(cs -> cs.hasPermissionLevel(3)) + .requires(cs -> cs.hasPermission(3)) .then(Commands.argument("radius", IntegerArgumentType.integer(10, 50000)) // .executes(ctx -> calculate(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), new BlockPos(ctx.getSource().getPos()), false)) .then(Commands.argument("position", BlockPosArgument.blockPos()) - .executes(ctx -> calculate(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getBlockPos(ctx, "position"), false, true)) + .executes(ctx -> calculate(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getOrLoadBlockPos(ctx, "position"), false, true)) .then(Commands.literal("effect_only") - .executes(ctx -> effect(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getBlockPos(ctx, "position"), false)) + .executes(ctx -> effect(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getOrLoadBlockPos(ctx, "position"), false)) .then(Commands.literal("flash") - .executes(ctx -> effect(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getBlockPos(ctx, "position"), true)) + .executes(ctx -> effect(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getOrLoadBlockPos(ctx, "position"), true)) )) .then(Commands.literal("prime") - .executes(ctx -> calculate(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getBlockPos(ctx, "position"), true, true)) + .executes(ctx -> calculate(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getOrLoadBlockPos(ctx, "position"), true, true)) .then(Commands.literal("no_effect") - .executes(ctx -> calculate(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getBlockPos(ctx, "position"), true, false)) + .executes(ctx -> calculate(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getOrLoadBlockPos(ctx, "position"), true, false)) ) ) .then(Commands.literal("no_effect") - .executes(ctx -> calculate(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getBlockPos(ctx, "position"), false, false)) + .executes(ctx -> calculate(ctx.getSource(), IntegerArgumentType.getInteger(ctx, "radius"), BlockPosArgument.getOrLoadBlockPos(ctx, "position"), false, false)) ) ) // .then(Commands.literal("effect_only") @@ -69,16 +69,16 @@ public static void register(CommandDispatcher dispatcher) { private static int calculate(CommandSource source, int radius, Vector3i pos, boolean prime, boolean effect) { if (explosionProcess != null && !explosionProcess.isDead()) { - source.sendErrorMessage(new StringTextComponent("Explosion already in progress")); + source.sendFailure(new StringTextComponent("Explosion already in progress")); return 1; } LogHelper.dev("calculate Rad: " + radius + ", Pos: " + pos + ", Prime: " + prime); - explosionProcess = new ProcessExplosion(new BlockPos(pos), radius, source.getWorld(), prime ? -1 : 0); + explosionProcess = new ProcessExplosion(new BlockPos(pos), radius, source.getLevel(), prime ? -1 : 0); explosionProcess.enableEffect = effect; explosionProcess.progressMon = progress -> { if (TimeKeeper.getServerTick() % 20 == 0) { - source.sendFeedback(new StringTextComponent("Calculating: " + Math.round(progress * 100D) + "%"), true); + source.sendSuccess(new StringTextComponent("Calculating: " + Math.round(progress * 100D) + "%"), true); } }; ProcessHandler.addProcess(explosionProcess); @@ -89,7 +89,7 @@ private static int effect(CommandSource source, int radius, Vector3i pos, boolea if (flash) { ClientEventHandler.triggerExplosionEffect(new BlockPos(pos)); } else { - DraconicNetwork.sendExplosionEffect(source.getWorld().getDimensionKey(), new BlockPos(pos), radius, false); + DraconicNetwork.sendExplosionEffect(source.getLevel().dimension(), new BlockPos(pos), radius, false); } return 0; } @@ -106,7 +106,7 @@ private static int detonate() { } private static int abort(CommandContext ctx) throws CommandSyntaxException { - ServerPlayerEntity player = ctx.getSource().asPlayer(); + ServerPlayerEntity player = ctx.getSource().getPlayerOrException(); // try { //// DraconicGuardianEntity guardian = DEContent.draconicGuardian.create(player.world); @@ -155,18 +155,18 @@ private static int abort(CommandContext ctx) throws CommandSyntax } private static int relight(CommandSource source) { - BlockPos pos = new BlockPos(source.getPos()); - ServerWorld world = source.getWorld(); - while (world.isAirBlock(pos)) pos = pos.down(); + BlockPos pos = new BlockPos(source.getPosition()); + ServerWorld world = source.getLevel(); + while (world.isEmptyBlock(pos)) pos = pos.below(); // world.setBlockState(pos, Blocks.GLASS.getDefaultState()); - BlockPos.getAllInBox(pos.add(-10, -10, -10), pos.add(10, 10, 10)).forEach(e -> { - world.getLightManager().checkBlock(e); + BlockPos.betweenClosedStream(pos.offset(-10, -10, -10), pos.offset(10, 10, 10)).forEach(e -> { + world.getLightEngine().checkBlock(e); Chunk chunk = world.getChunkAt(e); // SUpdateLightPacket packet = new SUpdateLightPacket(chunk.getPos(), world.getLightManager()); // world.getChunkProvider().chunkManager.getTrackingPlayers(chunk.getPos(), false).forEach(f -> f.connection.sendPacket(packet)); -// world.getLightManager().func_215567_a(e, true); +// world.getLightManager().updateSectionStatus(e, true); }); return 0; diff --git a/src/main/java/com/brandon3055/draconicevolution/command/CommandMakeRecipe.java b/src/main/java/com/brandon3055/draconicevolution/command/CommandMakeRecipe.java index 368aa56d3..7cd6fd26e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/command/CommandMakeRecipe.java +++ b/src/main/java/com/brandon3055/draconicevolution/command/CommandMakeRecipe.java @@ -75,7 +75,7 @@ public class CommandMakeRecipe { public static void register(CommandDispatcher dispatcher) { dispatcher.register( Commands.literal("gen_recipe") - .requires(cs -> cs.hasPermissionLevel(3)) + .requires(cs -> cs.hasPermission(3)) .then(Commands.literal("fusion") .executes(CommandMakeRecipe::genFusion)) .then(Commands.literal("crafting") @@ -84,20 +84,20 @@ public static void register(CommandDispatcher dispatcher) { } private static int genFusion(CommandContext ctx) throws CommandSyntaxException { - ServerPlayerEntity player = ctx.getSource().asPlayer(); + ServerPlayerEntity player = ctx.getSource().getPlayerOrException(); BlockRayTraceResult result = RayTracer.retrace(player, 10, RayTraceContext.BlockMode.OUTLINE); if (result.getType() != RayTraceResult.Type.BLOCK) { throw new CommandException(new StringTextComponent("No chest found.\nYou must be looking at a single chest with the recipe laid out on the far left and the result in the center slot.\nFor fusion recipes all slots other than center are ingredients except row 2, slot 2 which is the catalyst.")); } - BlockPos pos = result.getPos(); - IItemHandler handler = getInventory(player.world, pos); + BlockPos pos = result.getBlockPos(); + IItemHandler handler = getInventory(player.level, pos); String recipe = getFusionRecipe(handler); - while (player.getHeldItemOffhand().getItem() == Items.GOLDEN_APPLE) { - pos = pos.up(); - if (player.world.getTileEntity(pos) instanceof ChestTileEntity) { - handler = getInventory(player.world, pos); + while (player.getOffhandItem().getItem() == Items.GOLDEN_APPLE) { + pos = pos.above(); + if (player.level.getBlockEntity(pos) instanceof ChestTileEntity) { + handler = getInventory(player.level, pos); recipe += "\n\n" + getFusionRecipe(handler); } else { break; @@ -110,7 +110,7 @@ private static int genFusion(CommandContext ctx) throws CommandSy } private static int genCrafting(CommandContext ctx) throws CommandSyntaxException { - ServerPlayerEntity player = ctx.getSource().asPlayer(); + ServerPlayerEntity player = ctx.getSource().getPlayerOrException(); // IItemHandler handler = getInventory(player.); return 0; } @@ -277,7 +277,7 @@ public static String getIngredient(ItemStack stack) { } private static IItemHandler getInventory(World world, BlockPos pos) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof ChestTileEntity) { LazyOptional optional = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY); if (optional.isPresent()) { diff --git a/src/main/java/com/brandon3055/draconicevolution/datagen/BlockStateGenerator.java b/src/main/java/com/brandon3055/draconicevolution/datagen/BlockStateGenerator.java index 01c427b19..062ada23f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/datagen/BlockStateGenerator.java +++ b/src/main/java/com/brandon3055/draconicevolution/datagen/BlockStateGenerator.java @@ -81,15 +81,15 @@ protected void registerStatesAndModels() { dummyBlock(DEContent.chaos_crystal_part); - getVariantBuilder(DEContent.energy_pylon).forAllStates(state -> ConfiguredModel.builder().modelFile(models().cubeBottomTop(state.get(EnergyPylon.OUTPUT) ? "energy_pylon_output" : "energy_pylon_input", modLoc("block/energy_pylon/energy_pylon_" + (state.get(EnergyPylon.OUTPUT) ? "output" : "input")), modLoc("block/energy_pylon/energy_pylon_active_face"), modLoc("block/energy_pylon/energy_pylon_active_face"))).build()); + getVariantBuilder(DEContent.energy_pylon).forAllStates(state -> ConfiguredModel.builder().modelFile(models().cubeBottomTop(state.getValue(EnergyPylon.OUTPUT) ? "energy_pylon_output" : "energy_pylon_input", modLoc("block/energy_pylon/energy_pylon_" + (state.getValue(EnergyPylon.OUTPUT) ? "output" : "input")), modLoc("block/energy_pylon/energy_pylon_active_face"), modLoc("block/energy_pylon/energy_pylon_active_face"))).build()); //Generator ModelFile modelGenerator = models().getExistingFile(modLoc("block/generator/generator")); ModelFile modelGeneratorFlame = models().getExistingFile(modLoc("block/generator/generator_flame")); MultiPartBlockStateBuilder generatorBuilder = getMultipartBuilder(DEContent.generator); - for (Direction dir : FenceGateBlock.HORIZONTAL_FACING.getAllowedValues()) { - int angle = (int) dir.getOpposite().getHorizontalAngle(); + for (Direction dir : FenceGateBlock.FACING.getPossibleValues()) { + int angle = (int) dir.getOpposite().toYRot(); generatorBuilder.part().modelFile(modelGenerator).rotationY(angle).addModel().condition(Generator.FACING, dir).end() .part().modelFile(modelGeneratorFlame).rotationY(angle).addModel().condition(Generator.FACING, dir).condition(Generator.ACTIVE, true).end(); } @@ -98,8 +98,8 @@ protected void registerStatesAndModels() { ModelFile modelGrinder = models().getExistingFile(modLoc("block/grinder/grinder")); ModelFile modelGrinderActive = models().getExistingFile(modLoc("block/grinder/grinder_eyes")); MultiPartBlockStateBuilder grinderBuilder = getMultipartBuilder(DEContent.grinder); - for (Direction dir : Direction.BY_HORIZONTAL_INDEX) { - int angle = (int) dir.getOpposite().getHorizontalAngle(); + for (Direction dir : Direction.BY_2D_DATA) { + int angle = (int) dir.getOpposite().toYRot(); grinderBuilder.part().modelFile(modelGrinder).rotationY(angle).addModel().condition(Grinder.FACING, dir).end() .part().modelFile(modelGrinderActive).rotationY(angle).addModel().condition(Grinder.FACING, dir).condition(Grinder.ACTIVE, true).end(); } @@ -117,11 +117,11 @@ protected void registerStatesAndModels() { ModelFile birchFenceGateWallOpen = models().fenceGateWallOpen("birch_fence_gate_wall_open", mcLoc("block/birch_planks")); ModelFile invisbleModel = new ModelFile.UncheckedModelFile(new ResourceLocation("builtin/generated")); VariantBlockStateBuilder builder = getVariantBuilder(Blocks.BIRCH_FENCE_GATE); - for (Direction dir : FenceGateBlock.HORIZONTAL_FACING.getAllowedValues()) { - int angle = (int) dir.getHorizontalAngle(); + for (Direction dir : FenceGateBlock.FACING.getPossibleValues()) { + int angle = (int) dir.toYRot(); builder .partialState() - .with(FenceGateBlock.HORIZONTAL_FACING, dir) + .with(FenceGateBlock.FACING, dir) .with(FenceGateBlock.IN_WALL, false) .with(FenceGateBlock.OPEN, false) .modelForState() @@ -133,7 +133,7 @@ protected void registerStatesAndModels() { .weight(100) .addModel() .partialState() - .with(FenceGateBlock.HORIZONTAL_FACING, dir) + .with(FenceGateBlock.FACING, dir) .with(FenceGateBlock.IN_WALL, false) .with(FenceGateBlock.OPEN, true) .modelForState() @@ -142,7 +142,7 @@ protected void registerStatesAndModels() { .uvLock(true) .addModel() .partialState() - .with(FenceGateBlock.HORIZONTAL_FACING, dir) + .with(FenceGateBlock.FACING, dir) .with(FenceGateBlock.IN_WALL, true) .with(FenceGateBlock.OPEN, false) .modelForState() @@ -151,7 +151,7 @@ protected void registerStatesAndModels() { .uvLock(true) .addModel() .partialState() - .with(FenceGateBlock.HORIZONTAL_FACING, dir) + .with(FenceGateBlock.FACING, dir) .with(FenceGateBlock.IN_WALL, true) .with(FenceGateBlock.OPEN, true) .modelForState() @@ -198,21 +198,21 @@ protected void registerStatesAndModels() { models().getBuilder("cube") .parent(block) .element() - .allFaces((dir, face) -> face.texture("#" + dir.getString()).cullface(dir)); + .allFaces((dir, face) -> face.texture("#" + dir.getSerializedName()).cullface(dir)); ModelFile furnace = models().orientable("furnace", mcLoc("block/furnace_side"), mcLoc("block/furnace_front"), mcLoc("block/furnace_top")); ModelFile furnaceLit = models().orientable("furnace_on", mcLoc("block/furnace_side"), mcLoc("block/furnace_front_on"), mcLoc("block/furnace_top")); getVariantBuilder(Blocks.FURNACE) .forAllStates(state -> ConfiguredModel.builder() - .modelFile(state.get(FurnaceBlock.LIT) ? furnaceLit : furnace) - .rotationY((int) state.get(FurnaceBlock.FACING).getOpposite().getHorizontalAngle()) + .modelFile(state.getValue(FurnaceBlock.LIT) ? furnaceLit : furnace) + .rotationY((int) state.getValue(FurnaceBlock.FACING).getOpposite().toYRot()) .build() ); ModelFile barrel = models().cubeBottomTop("barrel", mcLoc("block/barrel_side"), mcLoc("block/barrel_bottom"), mcLoc("block/barrel_top")); ModelFile barrelOpen = models().cubeBottomTop("barrel_open", mcLoc("block/barrel_side"), mcLoc("block/barrel_bottom"), mcLoc("block/barrel_top_open")); - directionalBlock(Blocks.BARREL, state -> state.get(BarrelBlock.PROPERTY_OPEN) ? barrelOpen : barrel); // Testing custom state interpreter + directionalBlock(Blocks.BARREL, state -> state.getValue(BarrelBlock.OPEN) ? barrelOpen : barrel); // Testing custom state interpreter // logBlock((LogBlock) Blocks.ACACIA_LOG); @@ -257,11 +257,11 @@ public void directionalFromNorth(Block block, Function mo public void directionalFromNorth(Block block, Function modelFunc, int angleOffset) { getVariantBuilder(block) .forAllStates(state -> { - Direction dir = state.get(BlockStateProperties.FACING); + Direction dir = state.getValue(BlockStateProperties.FACING); return ConfiguredModel.builder() .modelFile(modelFunc.apply(state)) .rotationX(dir == Direction.DOWN ? 90 : dir == Direction.UP ? -90 : 0) - .rotationY(dir.getAxis().isVertical() ? 0 : (((int) dir.getHorizontalAngle()) + angleOffset) % 360) + .rotationY(dir.getAxis().isVertical() ? 0 : (((int) dir.toYRot()) + angleOffset) % 360) .build(); }); } diff --git a/src/main/java/com/brandon3055/draconicevolution/datagen/DataGenEventHandler.java b/src/main/java/com/brandon3055/draconicevolution/datagen/DataGenEventHandler.java index c51708fc3..844802140 100644 --- a/src/main/java/com/brandon3055/draconicevolution/datagen/DataGenEventHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/datagen/DataGenEventHandler.java @@ -53,29 +53,29 @@ public ItemTagGenerator(DataGenerator dataGenerator, BlockTagsProvider blockTagP } @Override - protected void registerTags() { - getOrCreateBuilder(DETags.Items.DUSTS_DRACONIUM).add(DEContent.dust_draconium); - getOrCreateBuilder(DETags.Items.DUSTS_DRACONIUM_AWAKENED).add(DEContent.dust_draconium_awakened); - getOrCreateBuilder(Tags.Items.DUSTS).addTags(DETags.Items.DUSTS_DRACONIUM_AWAKENED, DETags.Items.DUSTS_DRACONIUM); + protected void addTags() { + tag(DETags.Items.DUSTS_DRACONIUM).add(DEContent.dust_draconium); + tag(DETags.Items.DUSTS_DRACONIUM_AWAKENED).add(DEContent.dust_draconium_awakened); + tag(Tags.Items.DUSTS).addTags(DETags.Items.DUSTS_DRACONIUM_AWAKENED, DETags.Items.DUSTS_DRACONIUM); - getOrCreateBuilder(DETags.Items.NUGGETS_DRACONIUM).add(DEContent.nugget_draconium); - getOrCreateBuilder(DETags.Items.NUGGETS_DRACONIUM_AWAKENED).add(DEContent.nugget_draconium_awakened); - getOrCreateBuilder(Tags.Items.NUGGETS).addTags(DETags.Items.NUGGETS_DRACONIUM_AWAKENED, DETags.Items.NUGGETS_DRACONIUM); + tag(DETags.Items.NUGGETS_DRACONIUM).add(DEContent.nugget_draconium); + tag(DETags.Items.NUGGETS_DRACONIUM_AWAKENED).add(DEContent.nugget_draconium_awakened); + tag(Tags.Items.NUGGETS).addTags(DETags.Items.NUGGETS_DRACONIUM_AWAKENED, DETags.Items.NUGGETS_DRACONIUM); - getOrCreateBuilder(DETags.Items.INGOTS_DRACONIUM).add(DEContent.ingot_draconium); - getOrCreateBuilder(DETags.Items.INGOTS_DRACONIUM_AWAKENED).add(DEContent.ingot_draconium_awakened); - getOrCreateBuilder(Tags.Items.INGOTS).addTags(DETags.Items.INGOTS_DRACONIUM_AWAKENED, DETags.Items.INGOTS_DRACONIUM); + tag(DETags.Items.INGOTS_DRACONIUM).add(DEContent.ingot_draconium); + tag(DETags.Items.INGOTS_DRACONIUM_AWAKENED).add(DEContent.ingot_draconium_awakened); + tag(Tags.Items.INGOTS).addTags(DETags.Items.INGOTS_DRACONIUM_AWAKENED, DETags.Items.INGOTS_DRACONIUM); - getOrCreateBuilder(DETags.Items.STORAGE_BLOCKS_DRACONIUM).add(DEContent.block_draconium.asItem()); - getOrCreateBuilder(DETags.Items.STORAGE_BLOCKS_DRACONIUM_AWAKENED).add(DEContent.block_draconium_awakened.asItem()); - getOrCreateBuilder(Tags.Items.STORAGE_BLOCKS).addTags(DETags.Items.STORAGE_BLOCKS_DRACONIUM, DETags.Items.STORAGE_BLOCKS_DRACONIUM_AWAKENED); + tag(DETags.Items.STORAGE_BLOCKS_DRACONIUM).add(DEContent.block_draconium.asItem()); + tag(DETags.Items.STORAGE_BLOCKS_DRACONIUM_AWAKENED).add(DEContent.block_draconium_awakened.asItem()); + tag(Tags.Items.STORAGE_BLOCKS).addTags(DETags.Items.STORAGE_BLOCKS_DRACONIUM, DETags.Items.STORAGE_BLOCKS_DRACONIUM_AWAKENED); - getOrCreateBuilder(DETags.Items.ORES_DRACONIUM).add(DEContent.ore_draconium_end.asItem(), DEContent.ore_draconium_nether.asItem(), DEContent.ore_draconium_overworld.asItem()); - getOrCreateBuilder(Tags.Items.ORES).addTag(DETags.Items.ORES_DRACONIUM); + tag(DETags.Items.ORES_DRACONIUM).add(DEContent.ore_draconium_end.asItem(), DEContent.ore_draconium_nether.asItem(), DEContent.ore_draconium_overworld.asItem()); + tag(Tags.Items.ORES).addTag(DETags.Items.ORES_DRACONIUM); if (ModList.get().isLoaded("curios")) { - CuriosIntegration.generateTags(this::getOrCreateBuilder); + CuriosIntegration.generateTags(this::tag); } } } @@ -86,13 +86,13 @@ public BlockTagGenerator(DataGenerator generatorIn, String modId, @Nullable Exis } @Override - protected void registerTags() { - getOrCreateBuilder(DETags.Blocks.STORAGE_BLOCKS_DRACONIUM).add(DEContent.block_draconium); - getOrCreateBuilder(DETags.Blocks.STORAGE_BLOCKS_DRACONIUM_AWAKENED).add(DEContent.block_draconium_awakened); - getOrCreateBuilder(Tags.Blocks.STORAGE_BLOCKS).add(DEContent.block_draconium, DEContent.block_draconium_awakened); + protected void addTags() { + tag(DETags.Blocks.STORAGE_BLOCKS_DRACONIUM).add(DEContent.block_draconium); + tag(DETags.Blocks.STORAGE_BLOCKS_DRACONIUM_AWAKENED).add(DEContent.block_draconium_awakened); + tag(Tags.Blocks.STORAGE_BLOCKS).add(DEContent.block_draconium, DEContent.block_draconium_awakened); - getOrCreateBuilder(DETags.Blocks.ORES_DRACONIUM).add(DEContent.ore_draconium_end, DEContent.ore_draconium_nether, DEContent.ore_draconium_overworld); - getOrCreateBuilder(Tags.Blocks.ORES).add(DEContent.ore_draconium_end, DEContent.ore_draconium_nether, DEContent.ore_draconium_overworld); + tag(DETags.Blocks.ORES_DRACONIUM).add(DEContent.ore_draconium_end, DEContent.ore_draconium_nether, DEContent.ore_draconium_overworld); + tag(Tags.Blocks.ORES).add(DEContent.ore_draconium_end, DEContent.ore_draconium_nether, DEContent.ore_draconium_overworld); } } @@ -114,7 +114,7 @@ private void aggAdvancements(Consumer consumer) { } @Override - public void act(DirectoryCache cache) throws IOException { + public void run(DirectoryCache cache) throws IOException { Path path = this.generator.getOutputFolder(); Set set = Sets.newHashSet(); Consumer consumer = (advancement) -> { @@ -124,7 +124,7 @@ public void act(DirectoryCache cache) throws IOException { Path path1 = makePath(advancement.getId()); try { - IDataProvider.save(GSON, cache, advancement.copy().serialize(), path1); + IDataProvider.save(GSON, cache, advancement.deconstruct().serializeToJson(), path1); } catch (IOException ioexception) { DraconicEvolution.LOGGER.error("Couldn't save advancement {}", path1, ioexception); } diff --git a/src/main/java/com/brandon3055/draconicevolution/datagen/FusionRecipeBuilder.java b/src/main/java/com/brandon3055/draconicevolution/datagen/FusionRecipeBuilder.java index 6f05abe98..ce91226db 100644 --- a/src/main/java/com/brandon3055/draconicevolution/datagen/FusionRecipeBuilder.java +++ b/src/main/java/com/brandon3055/draconicevolution/datagen/FusionRecipeBuilder.java @@ -48,15 +48,15 @@ public static FusionRecipeBuilder fusionRecipe(ItemStack result) { } public FusionRecipeBuilder catalyst(ITag catalyst) { - return catalyst(Ingredient.fromTag(catalyst)); + return catalyst(Ingredient.of(catalyst)); } public FusionRecipeBuilder catalyst(IItemProvider... catalyst) { - return catalyst(Ingredient.fromItems(catalyst)); + return catalyst(Ingredient.of(catalyst)); } public FusionRecipeBuilder catalyst(ItemStack... catalyst) { - return catalyst(Ingredient.fromStacks(catalyst)); + return catalyst(Ingredient.of(catalyst)); } public FusionRecipeBuilder catalyst(int count, ITag catalyst) { @@ -96,7 +96,7 @@ public FusionRecipeBuilder ingredient(Ingredient ingredient) { } public FusionRecipeBuilder ingredient(boolean consume, ItemStack... ingredient) { - return ingredient(consume, Ingredient.fromStacks(ingredient)); + return ingredient(consume, Ingredient.of(ingredient)); } public FusionRecipeBuilder ingredient(ItemStack... ingredient) { @@ -104,7 +104,7 @@ public FusionRecipeBuilder ingredient(ItemStack... ingredient) { } public FusionRecipeBuilder ingredient(boolean consume, IItemProvider... ingredient) { - return ingredient(consume, Ingredient.fromItems(ingredient)); + return ingredient(consume, Ingredient.of(ingredient)); } public FusionRecipeBuilder ingredient(IItemProvider... ingredient) { @@ -112,7 +112,7 @@ public FusionRecipeBuilder ingredient(IItemProvider... ingredient) { } public FusionRecipeBuilder ingredient(boolean consume, ITag ingredient) { - return ingredient(consume, Ingredient.fromTag(ingredient)); + return ingredient(consume, Ingredient.of(ingredient)); } public FusionRecipeBuilder ingredient(ITag ingredient) { @@ -181,15 +181,15 @@ public Result(ResourceLocation id, ItemStack result, Ingredient catalyst, long e this.ingredients = ingredients; } - public void serialize(JsonObject json) { + public void serializeRecipeData(JsonObject json) { json.add("result", writeItemStack(result)); - json.add("catalyst", catalyst.serialize()); + json.add("catalyst", catalyst.toJson()); json.addProperty("total_energy", energy); json.addProperty("tier", techLevel.name()); JsonArray ingredientArray = new JsonArray(); for (FusionRecipe.FusionIngredient ingredient : ingredients) { - JsonElement element = ingredient.get().serialize(); + JsonElement element = ingredient.get().toJson(); if (!ingredient.consume()) { JsonObject object = new JsonObject(); object.addProperty("consume", false); @@ -202,21 +202,21 @@ public void serialize(JsonObject json) { json.add("ingredients", ingredientArray); } - public IRecipeSerializer getSerializer() { + public IRecipeSerializer getType() { return DraconicAPI.FUSION_RECIPE_SERIALIZER; } - public ResourceLocation getID() { + public ResourceLocation getId() { return this.id; } @Nullable - public JsonObject getAdvancementJson() { + public JsonObject serializeAdvancement() { return null;//this.advancementBuilder.serialize(); } @Nullable - public ResourceLocation getAdvancementID() { + public ResourceLocation getAdvancementId() { return null;//this.advancementId; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/datagen/LootTableGenerator.java b/src/main/java/com/brandon3055/draconicevolution/datagen/LootTableGenerator.java index 5a25f717a..dcc772f7e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/datagen/LootTableGenerator.java +++ b/src/main/java/com/brandon3055/draconicevolution/datagen/LootTableGenerator.java @@ -44,7 +44,7 @@ public LootTableGenerator(DataGenerator dataGeneratorIn) { } @Override protected void validate(Map map, ValidationTracker validationtracker) { - map.forEach((p_218436_2_, p_218436_3_) -> LootTableManager.validateLootTable(validationtracker, p_218436_2_, p_218436_3_)); + map.forEach((p_218436_2_, p_218436_3_) -> LootTableManager.validate(validationtracker, p_218436_2_, p_218436_3_)); } @Override @@ -55,60 +55,60 @@ protected List dropping(DEContent.chaos_shard).acceptFunction(SetCount.builder(ConstantRange.of(5)))); - registerLootTable(DEContent.chaos_crystal_part, blockNoDrop()); + add(DEContent.chaos_crystal, block -> createSingleItemTable(DEContent.chaos_shard).apply(SetCount.setCount(ConstantRange.exactly(5)))); + add(DEContent.chaos_crystal_part, noDrop()); //Fortune - registerLootTable(DEContent.ore_draconium_overworld, (block) -> droppingWithSilkTouch(block, withExplosionDecay(block, ItemLootEntry.builder(DEContent.dust_draconium).acceptFunction(SetCount.builder(RandomValueRange.of(2.0F, 4.0F))).acceptFunction(ApplyBonus.uniformBonusCount(Enchantments.FORTUNE))))); - registerLootTable(DEContent.ore_draconium_nether, (block) -> droppingWithSilkTouch(block, withExplosionDecay(block, ItemLootEntry.builder(DEContent.dust_draconium).acceptFunction(SetCount.builder(RandomValueRange.of(2.0F, 4.0F))).acceptFunction(ApplyBonus.uniformBonusCount(Enchantments.FORTUNE))))); - registerLootTable(DEContent.ore_draconium_end, (block) -> droppingWithSilkTouch(block, withExplosionDecay(block, ItemLootEntry.builder(DEContent.dust_draconium).acceptFunction(SetCount.builder(RandomValueRange.of(2.0F, 4.0F))).acceptFunction(ApplyBonus.uniformBonusCount(Enchantments.FORTUNE))))); + add(DEContent.ore_draconium_overworld, (block) -> createSilkTouchDispatchTable(block, applyExplosionDecay(block, ItemLootEntry.lootTableItem(DEContent.dust_draconium).apply(SetCount.setCount(RandomValueRange.between(2.0F, 4.0F))).apply(ApplyBonus.addUniformBonusCount(Enchantments.BLOCK_FORTUNE))))); + add(DEContent.ore_draconium_nether, (block) -> createSilkTouchDispatchTable(block, applyExplosionDecay(block, ItemLootEntry.lootTableItem(DEContent.dust_draconium).apply(SetCount.setCount(RandomValueRange.between(2.0F, 4.0F))).apply(ApplyBonus.addUniformBonusCount(Enchantments.BLOCK_FORTUNE))))); + add(DEContent.ore_draconium_end, (block) -> createSilkTouchDispatchTable(block, applyExplosionDecay(block, ItemLootEntry.lootTableItem(DEContent.dust_draconium).apply(SetCount.setCount(RandomValueRange.between(2.0F, 4.0F))).apply(ApplyBonus.addUniformBonusCount(Enchantments.BLOCK_FORTUNE))))); } diff --git a/src/main/java/com/brandon3055/draconicevolution/datagen/RecipeGenerator.java b/src/main/java/com/brandon3055/draconicevolution/datagen/RecipeGenerator.java index c56ef29ae..b589272f0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/datagen/RecipeGenerator.java +++ b/src/main/java/com/brandon3055/draconicevolution/datagen/RecipeGenerator.java @@ -42,7 +42,7 @@ public RecipeGenerator(DataGenerator generatorIn) { } @Override - protected void registerRecipes(Consumer consumer) { + protected void buildShapelessRecipes(Consumer consumer) { components(consumer); compressDecompress(consumer); @@ -69,28 +69,28 @@ protected void registerRecipes(Consumer consumer) { private static void components(Consumer consumer) { - CookingRecipeBuilder.smeltingRecipe(Ingredient.fromTag(DUSTS_DRACONIUM), ingot_draconium, 0, 200).addCriterion("has_draconium_dust", hasItem(DUSTS_DRACONIUM)).build(consumer, folder("components", ingot_draconium)); - CookingRecipeBuilder.smeltingRecipe(Ingredient.fromTag(ORES_DRACONIUM), ingot_draconium, 1, 200).addCriterion("has_draconium_ore", hasItem(ORES_DRACONIUM)).build(consumer); - - ShapedRecipeBuilder.shapedRecipe(core_draconium) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', INGOTS_DRACONIUM) - .key('B', INGOTS_GOLD) - .key('C', GEMS_DIAMOND) - .addCriterion("has_draconium", hasItem(ingot_draconium)) - .build(consumer, folder("components", core_draconium)); - - ShapedRecipeBuilder.shapedRecipe(core_wyvern) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', INGOTS_DRACONIUM) - .key('B', core_draconium) - .key('C', NETHER_STARS) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer, folder("components", core_wyvern)); + CookingRecipeBuilder.smelting(Ingredient.of(DUSTS_DRACONIUM), ingot_draconium, 0, 200).unlockedBy("has_draconium_dust", has(DUSTS_DRACONIUM)).save(consumer, folder("components", ingot_draconium)); + CookingRecipeBuilder.smelting(Ingredient.of(ORES_DRACONIUM), ingot_draconium, 1, 200).unlockedBy("has_draconium_ore", has(ORES_DRACONIUM)).save(consumer); + + ShapedRecipeBuilder.shaped(core_draconium) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', INGOTS_DRACONIUM) + .define('B', INGOTS_GOLD) + .define('C', GEMS_DIAMOND) + .unlockedBy("has_draconium", has(ingot_draconium)) + .save(consumer, folder("components", core_draconium)); + + ShapedRecipeBuilder.shaped(core_wyvern) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', INGOTS_DRACONIUM) + .define('B', core_draconium) + .define('C', NETHER_STARS) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer, folder("components", core_wyvern)); FusionRecipeBuilder.fusionRecipe(core_awakened) .catalyst(NETHER_STARS) @@ -120,35 +120,35 @@ private static void components(Consumer consumer) { .ingredient(INGOTS_DRACONIUM_AWAKENED) .build(consumer, folder("components", core_chaotic)); - ShapedRecipeBuilder.shapedRecipe(energy_core_wyvern) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', INGOTS_DRACONIUM) - .key('B', Tags.Items.STORAGE_BLOCKS_REDSTONE) - .key('C', core_draconium) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer, folder("components", energy_core_wyvern)); - - ShapedRecipeBuilder.shapedRecipe(energy_core_draconic) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', INGOTS_DRACONIUM_AWAKENED) - .key('B', energy_core_wyvern) - .key('C', core_wyvern) - .addCriterion("has_core_wyvern", hasItem(core_wyvern)) - .build(consumer, folder("components", energy_core_draconic)); - - ShapedRecipeBuilder.shapedRecipe(energy_core_chaotic) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', chaos_frag_medium) - .key('B', energy_core_draconic) - .key('C', core_awakened) - .addCriterion("has_core_awakened", hasItem(core_awakened)) - .build(consumer, folder("components", energy_core_chaotic)); + ShapedRecipeBuilder.shaped(energy_core_wyvern) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', INGOTS_DRACONIUM) + .define('B', Tags.Items.STORAGE_BLOCKS_REDSTONE) + .define('C', core_draconium) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer, folder("components", energy_core_wyvern)); + + ShapedRecipeBuilder.shaped(energy_core_draconic) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', INGOTS_DRACONIUM_AWAKENED) + .define('B', energy_core_wyvern) + .define('C', core_wyvern) + .unlockedBy("has_core_wyvern", has(core_wyvern)) + .save(consumer, folder("components", energy_core_draconic)); + + ShapedRecipeBuilder.shaped(energy_core_chaotic) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', chaos_frag_medium) + .define('B', energy_core_draconic) + .define('C', core_awakened) + .unlockedBy("has_core_awakened", has(core_awakened)) + .save(consumer, folder("components", energy_core_chaotic)); } private static void compressDecompress(Consumer consumer) { @@ -171,26 +171,26 @@ private static void compressDecompress(Consumer consumer) { } private static void machines(Consumer consumer) { - ShapedRecipeBuilder.shapedRecipe(crafting_core) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', STORAGE_BLOCKS_LAPIS) - .key('B', GEMS_DIAMOND) - .key('C', core_draconium) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(crafting_injector_basic) - .patternLine("ABA") - .patternLine("CDC") - .patternLine("CCC") - .key('A', GEMS_DIAMOND) - .key('B', core_draconium) - .key('C', Tags.Items.STONE) - .key('D', STORAGE_BLOCKS_IRON) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); + ShapedRecipeBuilder.shaped(crafting_core) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', STORAGE_BLOCKS_LAPIS) + .define('B', GEMS_DIAMOND) + .define('C', core_draconium) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(crafting_injector_basic) + .pattern("ABA") + .pattern("CDC") + .pattern("CCC") + .define('A', GEMS_DIAMOND) + .define('B', core_draconium) + .define('C', Tags.Items.STONE) + .define('D', STORAGE_BLOCKS_IRON) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); FusionRecipeBuilder.fusionRecipe(crafting_injector_wyvern) .catalyst(crafting_injector_basic) @@ -231,49 +231,49 @@ private static void machines(Consumer consumer) { .ingredient(GEMS_DIAMOND) .build(consumer); - ShapedRecipeBuilder.shapedRecipe(DEContent.generator) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ADA") - .key('A', INGOTS_NETHER_BRICK) - .key('B', INGOTS_IRON) - .key('C', FURNACE) - .key('D', core_draconium) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(grinder) - .patternLine("ABA") - .patternLine("CDC") - .patternLine("AEA") - .key('A', INGOTS_IRON) - .key('B', INGOTS_DRACONIUM) - .key('C', DIAMOND_SWORD) - .key('D', core_draconium) - .key('E', FURNACE) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(energy_transfuser) - .patternLine("ABA") - .patternLine("CDC") - .patternLine("ACA") - .key('A', INGOTS_DRACONIUM) - .key('B', energy_core_stabilizer) - .key('C', core_draconium) - .key('D', ENCHANTING_TABLE) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(particle_generator) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', STORAGE_BLOCKS_REDSTONE) - .key('B', BLAZE_ROD) - .key('C', core_draconium) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); + ShapedRecipeBuilder.shaped(DEContent.generator) + .pattern("ABA") + .pattern("BCB") + .pattern("ADA") + .define('A', INGOTS_NETHER_BRICK) + .define('B', INGOTS_IRON) + .define('C', FURNACE) + .define('D', core_draconium) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(grinder) + .pattern("ABA") + .pattern("CDC") + .pattern("AEA") + .define('A', INGOTS_IRON) + .define('B', INGOTS_DRACONIUM) + .define('C', DIAMOND_SWORD) + .define('D', core_draconium) + .define('E', FURNACE) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(energy_transfuser) + .pattern("ABA") + .pattern("CDC") + .pattern("ACA") + .define('A', INGOTS_DRACONIUM) + .define('B', energy_core_stabilizer) + .define('C', core_draconium) + .define('D', ENCHANTING_TABLE) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(particle_generator) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', STORAGE_BLOCKS_REDSTONE) + .define('B', BLAZE_ROD) + .define('C', core_draconium) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); FusionRecipeBuilder.fusionRecipe(draconium_chest) .catalyst(CHEST) @@ -291,16 +291,16 @@ private static void machines(Consumer consumer) { .ingredient(CRAFTING_TABLE) .build(consumer); - ShapedRecipeBuilder.shapedRecipe(potentiometer) - .patternLine(" A ") - .patternLine("BCB") - .patternLine("DDD") - .key('A', PLANKS) - .key('B', DUSTS_REDSTONE) - .key('C', DUSTS_DRACONIUM) - .key('D', STONE_SLAB) - .addCriterion("has_STONE_SLAB", hasItem(STONE_SLAB)) - .build(consumer); + ShapedRecipeBuilder.shaped(potentiometer) + .pattern(" A ") + .pattern("BCB") + .pattern("DDD") + .define('A', PLANKS) + .define('B', DUSTS_REDSTONE) + .define('C', DUSTS_DRACONIUM) + .define('D', STONE_SLAB) + .unlockedBy("has_STONE_SLAB", has(STONE_SLAB)) + .save(consumer); @@ -308,88 +308,88 @@ private static void machines(Consumer consumer) { } private static void energy(Consumer consumer) { - ShapedRecipeBuilder.shapedRecipe(energy_core) - .patternLine("AAA") - .patternLine("BCB") - .patternLine("AAA") - .key('A', INGOTS_DRACONIUM) - .key('B', energy_core_wyvern) - .key('C', core_wyvern) - .addCriterion("has_core_wyvern", hasItem(core_wyvern)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(energy_core_stabilizer) - .patternLine("A A") - .patternLine(" B ") - .patternLine("A A") - .key('A', GEMS_DIAMOND) - .key('B', particle_generator) - .addCriterion("has_core_wyvern", hasItem(core_wyvern)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(energy_pylon, 2) - .patternLine("ABA") - .patternLine("CDC") - .patternLine("AEA") - .key('A', INGOTS_DRACONIUM) - .key('B', ENDER_EYE) - .key('C', GEMS_EMERALD) - .key('D', core_draconium) - .key('E', GEMS_DIAMOND) - .addCriterion("has_core_wyvern", hasItem(core_wyvern)) - .build(consumer); + ShapedRecipeBuilder.shaped(energy_core) + .pattern("AAA") + .pattern("BCB") + .pattern("AAA") + .define('A', INGOTS_DRACONIUM) + .define('B', energy_core_wyvern) + .define('C', core_wyvern) + .unlockedBy("has_core_wyvern", has(core_wyvern)) + .save(consumer); + + ShapedRecipeBuilder.shaped(energy_core_stabilizer) + .pattern("A A") + .pattern(" B ") + .pattern("A A") + .define('A', GEMS_DIAMOND) + .define('B', particle_generator) + .unlockedBy("has_core_wyvern", has(core_wyvern)) + .save(consumer); + + ShapedRecipeBuilder.shaped(energy_pylon, 2) + .pattern("ABA") + .pattern("CDC") + .pattern("AEA") + .define('A', INGOTS_DRACONIUM) + .define('B', ENDER_EYE) + .define('C', GEMS_EMERALD) + .define('D', core_draconium) + .define('E', GEMS_DIAMOND) + .unlockedBy("has_core_wyvern", has(core_wyvern)) + .save(consumer); //Reactor - ShapedRecipeBuilder.shapedRecipe(reactor_prt_stab_frame) - .patternLine("AAA") - .patternLine("BC ") - .patternLine("AAA") - .key('A', INGOTS_IRON) - .key('B', core_wyvern) - .key('C', INGOTS_DRACONIUM_AWAKENED) - .addCriterion("has_core_wyvern", hasItem(core_wyvern)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(reactor_prt_in_rotor) - .patternLine(" ") - .patternLine("AAA") - .patternLine("BCC") - .key('A', INGOTS_DRACONIUM_AWAKENED) - .key('B', core_draconium) - .key('C', INGOTS_DRACONIUM) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(reactor_prt_out_rotor) - .patternLine(" ") - .patternLine("AAA") - .patternLine("BCC") - .key('A', GEMS_DIAMOND) - .key('B', core_draconium) - .key('C', INGOTS_DRACONIUM) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(reactor_prt_rotor_full) - .patternLine(" AB") - .patternLine("CDD") - .patternLine(" AB") - .key('A', reactor_prt_in_rotor) - .key('B', reactor_prt_out_rotor) - .key('C', core_wyvern) - .key('D', INGOTS_DRACONIUM) - .addCriterion("has_core_wyvern", hasItem(core_wyvern)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(reactor_prt_focus_ring) - .patternLine("ABA") - .patternLine("CBC") - .patternLine("ABA") - .key('A', INGOTS_GOLD) - .key('B', GEMS_DIAMOND) - .key('C', core_wyvern) - .addCriterion("has_core_wyvern", hasItem(core_wyvern)) - .build(consumer); + ShapedRecipeBuilder.shaped(reactor_prt_stab_frame) + .pattern("AAA") + .pattern("BC ") + .pattern("AAA") + .define('A', INGOTS_IRON) + .define('B', core_wyvern) + .define('C', INGOTS_DRACONIUM_AWAKENED) + .unlockedBy("has_core_wyvern", has(core_wyvern)) + .save(consumer); + + ShapedRecipeBuilder.shaped(reactor_prt_in_rotor) + .pattern(" ") + .pattern("AAA") + .pattern("BCC") + .define('A', INGOTS_DRACONIUM_AWAKENED) + .define('B', core_draconium) + .define('C', INGOTS_DRACONIUM) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(reactor_prt_out_rotor) + .pattern(" ") + .pattern("AAA") + .pattern("BCC") + .define('A', GEMS_DIAMOND) + .define('B', core_draconium) + .define('C', INGOTS_DRACONIUM) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(reactor_prt_rotor_full) + .pattern(" AB") + .pattern("CDD") + .pattern(" AB") + .define('A', reactor_prt_in_rotor) + .define('B', reactor_prt_out_rotor) + .define('C', core_wyvern) + .define('D', INGOTS_DRACONIUM) + .unlockedBy("has_core_wyvern", has(core_wyvern)) + .save(consumer); + + ShapedRecipeBuilder.shaped(reactor_prt_focus_ring) + .pattern("ABA") + .pattern("CBC") + .pattern("ABA") + .define('A', INGOTS_GOLD) + .define('B', GEMS_DIAMOND) + .define('C', core_wyvern) + .unlockedBy("has_core_wyvern", has(core_wyvern)) + .save(consumer); FusionRecipeBuilder.fusionRecipe(reactor_stabilizer) .catalyst(reactor_prt_stab_frame) @@ -434,35 +434,35 @@ private static void energy(Consumer consumer) { .ingredient(INGOTS_DRACONIUM_AWAKENED) .build(consumer); - ShapedRecipeBuilder.shapedRecipe(crystal_binder) - .patternLine(" AB") - .patternLine(" CA") - .patternLine("D ") - .key('A', INGOTS_DRACONIUM) - .key('B', GEMS_DIAMOND) - .key('C', BLAZE_ROD) - .key('D', core_draconium) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(crystal_relay_basic, 4) - .patternLine(" A ") - .patternLine("ABA") - .patternLine(" A ") - .key('A', GEMS_DIAMOND) - .key('B', energy_core_wyvern) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(crystal_relay_wyvern, 4) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', energy_core_wyvern) - .key('B', crystal_relay_basic) - .key('C', core_draconium) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); + ShapedRecipeBuilder.shaped(crystal_binder) + .pattern(" AB") + .pattern(" CA") + .pattern("D ") + .define('A', INGOTS_DRACONIUM) + .define('B', GEMS_DIAMOND) + .define('C', BLAZE_ROD) + .define('D', core_draconium) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(crystal_relay_basic, 4) + .pattern(" A ") + .pattern("ABA") + .pattern(" A ") + .define('A', GEMS_DIAMOND) + .define('B', energy_core_wyvern) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(crystal_relay_wyvern, 4) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', energy_core_wyvern) + .define('B', crystal_relay_basic) + .define('C', core_draconium) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); FusionRecipeBuilder.fusionRecipe(crystal_relay_draconic, 4) .catalyst(4, crystal_relay_wyvern) @@ -479,84 +479,84 @@ private static void energy(Consumer consumer) { .ingredient(energy_core_wyvern) .build(consumer); - ShapedRecipeBuilder.shapedRecipe(crystal_wireless_basic) - .patternLine("ABA") - .patternLine("CDC") - .patternLine("ABA") - .key('A', ENDER_PEARL) - .key('B', particle_generator) - .key('C', ENDER_EYE) - .key('D', crystal_relay_basic) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(crystal_wireless_wyvern) - .patternLine("ABA") - .patternLine("CDC") - .patternLine("ABA") - .key('A', ENDER_PEARL) - .key('B', particle_generator) - .key('C', ENDER_EYE) - .key('D', crystal_relay_wyvern) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(crystal_wireless_draconic) - .patternLine("ABA") - .patternLine("CDC") - .patternLine("ABA") - .key('A', ENDER_PEARL) - .key('B', particle_generator) - .key('C', ENDER_EYE) - .key('D', crystal_relay_draconic) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); + ShapedRecipeBuilder.shaped(crystal_wireless_basic) + .pattern("ABA") + .pattern("CDC") + .pattern("ABA") + .define('A', ENDER_PEARL) + .define('B', particle_generator) + .define('C', ENDER_EYE) + .define('D', crystal_relay_basic) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(crystal_wireless_wyvern) + .pattern("ABA") + .pattern("CDC") + .pattern("ABA") + .define('A', ENDER_PEARL) + .define('B', particle_generator) + .define('C', ENDER_EYE) + .define('D', crystal_relay_wyvern) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(crystal_wireless_draconic) + .pattern("ABA") + .pattern("CDC") + .pattern("ABA") + .define('A', ENDER_PEARL) + .define('B', particle_generator) + .define('C', ENDER_EYE) + .define('D', crystal_relay_draconic) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); //to-from io - ShapelessRecipeBuilder.shapelessRecipe(crystal_io_basic, 2) - .addIngredient(crystal_relay_basic) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapelessRecipeBuilder.shapelessRecipe(crystal_io_wyvern, 2) - .addIngredient(crystal_relay_wyvern) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapelessRecipeBuilder.shapelessRecipe(crystal_io_draconic, 2) - .addIngredient(crystal_relay_draconic) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapelessRecipeBuilder.shapelessRecipe(crystal_relay_basic) - .addIngredient(crystal_io_basic) - .addIngredient(crystal_io_basic) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer, "draconicevolution:crystal_io_basic_combine"); - - ShapelessRecipeBuilder.shapelessRecipe(crystal_relay_wyvern) - .addIngredient(crystal_io_wyvern) - .addIngredient(crystal_io_wyvern) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer, "draconicevolution:crystal_io_wyvern_combine"); - - ShapelessRecipeBuilder.shapelessRecipe(crystal_relay_draconic) - .addIngredient(crystal_io_draconic) - .addIngredient(crystal_io_draconic) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer, "draconicevolution:crystal_io_draconic_combine"); + ShapelessRecipeBuilder.shapeless(crystal_io_basic, 2) + .requires(crystal_relay_basic) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapelessRecipeBuilder.shapeless(crystal_io_wyvern, 2) + .requires(crystal_relay_wyvern) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapelessRecipeBuilder.shapeless(crystal_io_draconic, 2) + .requires(crystal_relay_draconic) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapelessRecipeBuilder.shapeless(crystal_relay_basic) + .requires(crystal_io_basic) + .requires(crystal_io_basic) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer, "draconicevolution:crystal_io_basic_combine"); + + ShapelessRecipeBuilder.shapeless(crystal_relay_wyvern) + .requires(crystal_io_wyvern) + .requires(crystal_io_wyvern) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer, "draconicevolution:crystal_io_wyvern_combine"); + + ShapelessRecipeBuilder.shapeless(crystal_relay_draconic) + .requires(crystal_io_draconic) + .requires(crystal_io_draconic) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer, "draconicevolution:crystal_io_draconic_combine"); } private static void tools(Consumer consumer) { - ShapedRecipeBuilder.shapedRecipe(dislocator) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', BLAZE_POWDER) - .key('B', DUSTS_DRACONIUM) - .key('C', ENDER_EYE) - .addCriterion("has_dust_draconium", hasItem(dust_draconium)) - .build(consumer); + ShapedRecipeBuilder.shaped(dislocator) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', BLAZE_POWDER) + .define('B', DUSTS_DRACONIUM) + .define('C', ENDER_EYE) + .unlockedBy("has_dust_draconium", has(dust_draconium)) + .save(consumer); FusionRecipeBuilder.fusionRecipe(dislocator_advanced) .catalyst(dislocator) @@ -572,42 +572,42 @@ private static void tools(Consumer consumer) { .ingredient(INGOTS_DRACONIUM) .build(consumer); - ShapelessRecipeBuilder.shapelessRecipe(dislocator_p2p) - .addIngredient(dislocator) - .addIngredient(core_draconium) - .addIngredient(dislocator) - .addIngredient(GHAST_TEAR) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapelessRecipeBuilder.shapelessRecipe(dislocator_player) - .addIngredient(dislocator) - .addIngredient(core_draconium) - .addIngredient(GHAST_TEAR) - .addCriterion("has_core_draconium", hasItem(core_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(magnet) - .patternLine("A A") - .patternLine("B B") - .patternLine("CDC") - .key('A', DUSTS_REDSTONE) - .key('B', INGOTS_DRACONIUM) - .key('C', INGOTS_IRON) - .key('D', dislocator) - .addCriterion("has_dust_draconium", hasItem(dust_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(magnet_advanced) - .patternLine("A A") - .patternLine("B B") - .patternLine("CDC") - .key('A', INGOTS_DRACONIUM) - .key('B', DUSTS_REDSTONE) - .key('C', INGOTS_DRACONIUM_AWAKENED) - .key('D', magnet) - .addCriterion("has_dust_draconium", hasItem(dust_draconium)) - .build(consumer); + ShapelessRecipeBuilder.shapeless(dislocator_p2p) + .requires(dislocator) + .requires(core_draconium) + .requires(dislocator) + .requires(GHAST_TEAR) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapelessRecipeBuilder.shapeless(dislocator_player) + .requires(dislocator) + .requires(core_draconium) + .requires(GHAST_TEAR) + .unlockedBy("has_core_draconium", has(core_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(magnet) + .pattern("A A") + .pattern("B B") + .pattern("CDC") + .define('A', DUSTS_REDSTONE) + .define('B', INGOTS_DRACONIUM) + .define('C', INGOTS_IRON) + .define('D', dislocator) + .unlockedBy("has_dust_draconium", has(dust_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(magnet_advanced) + .pattern("A A") + .pattern("B B") + .pattern("CDC") + .define('A', INGOTS_DRACONIUM) + .define('B', DUSTS_REDSTONE) + .define('C', INGOTS_DRACONIUM_AWAKENED) + .define('D', magnet) + .unlockedBy("has_dust_draconium", has(dust_draconium)) + .save(consumer); } private static void equipment(Consumer consumer) { @@ -992,571 +992,571 @@ private static void equipment(Consumer consumer) { } private static void modules(Consumer consumer) { - ShapedRecipeBuilder.shapedRecipe(module_core) - .patternLine("IRI") - .patternLine("GDG") - .patternLine("IRI") - .key('I', INGOTS_IRON) - .key('R', DUSTS_REDSTONE) - .key('G', INGOTS_GOLD) - .key('D', INGOTS_DRACONIUM) - .addCriterion("has_ingot_draconium", hasItem(INGOTS_DRACONIUM)) - .build(consumer, folder("modules", module_core)); + ShapedRecipeBuilder.shaped(module_core) + .pattern("IRI") + .pattern("GDG") + .pattern("IRI") + .define('I', INGOTS_IRON) + .define('R', DUSTS_REDSTONE) + .define('G', INGOTS_GOLD) + .define('D', INGOTS_DRACONIUM) + .unlockedBy("has_ingot_draconium", has(INGOTS_DRACONIUM)) + .save(consumer, folder("modules", module_core)); //Energy - ShapedRecipeBuilder.shapedRecipe(DEModules.draconiumEnergy.getItem()) - .patternLine("###") - .patternLine("ABA") - .patternLine("###") - .key('#', STORAGE_BLOCKS_REDSTONE) - .key('A', INGOTS_IRON) - .key('B', module_core) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconiumEnergy)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernEnergy.getItem()) - .patternLine("###") - .patternLine("ABA") - .patternLine("###") - .key('#', INGOTS_DRACONIUM) - .key('A', DEModules.draconiumEnergy.getItem()) - .key('B', core_draconium) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernEnergy)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicEnergy.getItem()) - .patternLine("###") - .patternLine("ABA") - .patternLine("###") - .key('#', NUGGETS_DRACONIUM_AWAKENED) - .key('A', DEModules.wyvernEnergy.getItem()) - .key('B', core_wyvern) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconicEnergy)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticEnergy.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#C#") - .key('#', chaos_frag_small) - .key('A', DEModules.draconicEnergy.getItem()) - .key('B', core_awakened) - .key('C', chaos_frag_medium) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.chaoticEnergy)); + ShapedRecipeBuilder.shaped(DEModules.draconiumEnergy.getItem()) + .pattern("###") + .pattern("ABA") + .pattern("###") + .define('#', STORAGE_BLOCKS_REDSTONE) + .define('A', INGOTS_IRON) + .define('B', module_core) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconiumEnergy)); + + ShapedRecipeBuilder.shaped(DEModules.wyvernEnergy.getItem()) + .pattern("###") + .pattern("ABA") + .pattern("###") + .define('#', INGOTS_DRACONIUM) + .define('A', DEModules.draconiumEnergy.getItem()) + .define('B', core_draconium) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernEnergy)); + + ShapedRecipeBuilder.shaped(DEModules.draconicEnergy.getItem()) + .pattern("###") + .pattern("ABA") + .pattern("###") + .define('#', NUGGETS_DRACONIUM_AWAKENED) + .define('A', DEModules.wyvernEnergy.getItem()) + .define('B', core_wyvern) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconicEnergy)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticEnergy.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#C#") + .define('#', chaos_frag_small) + .define('A', DEModules.draconicEnergy.getItem()) + .define('B', core_awakened) + .define('C', chaos_frag_medium) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.chaoticEnergy)); //Speed - ShapedRecipeBuilder.shapedRecipe(DEModules.draconiumSpeed.getItem()) - .patternLine("#P#") - .patternLine("ABA") - .patternLine("#P#") - .key('#', INGOTS_IRON) - .key('A', CLOCK) - .key('B', module_core) - .key('P', new NBTIngredient(PotionUtils.addPotionToItemStack(new ItemStack(POTION), Potions.SWIFTNESS))) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconiumSpeed)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernSpeed.getItem()) - .patternLine("###") - .patternLine("ABA") - .patternLine("###") - .key('#', INGOTS_DRACONIUM) - .key('A', DEModules.draconiumSpeed.getItem()) - .key('B', core_draconium) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernSpeed)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicSpeed.getItem()) - .patternLine("###") - .patternLine("ABA") - .patternLine("###") - .key('#', NUGGETS_DRACONIUM_AWAKENED) - .key('A', DEModules.wyvernSpeed.getItem()) - .key('B', core_wyvern) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconicSpeed)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticSpeed.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#C#") - .key('#', chaos_frag_small) - .key('A', DEModules.draconicSpeed.getItem()) - .key('B', core_awakened) - .key('C', chaos_frag_medium) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.chaoticSpeed)); + ShapedRecipeBuilder.shaped(DEModules.draconiumSpeed.getItem()) + .pattern("#P#") + .pattern("ABA") + .pattern("#P#") + .define('#', INGOTS_IRON) + .define('A', CLOCK) + .define('B', module_core) + .define('P', new NBTIngredient(PotionUtils.setPotion(new ItemStack(POTION), Potions.SWIFTNESS))) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconiumSpeed)); + + ShapedRecipeBuilder.shaped(DEModules.wyvernSpeed.getItem()) + .pattern("###") + .pattern("ABA") + .pattern("###") + .define('#', INGOTS_DRACONIUM) + .define('A', DEModules.draconiumSpeed.getItem()) + .define('B', core_draconium) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernSpeed)); + + ShapedRecipeBuilder.shaped(DEModules.draconicSpeed.getItem()) + .pattern("###") + .pattern("ABA") + .pattern("###") + .define('#', NUGGETS_DRACONIUM_AWAKENED) + .define('A', DEModules.wyvernSpeed.getItem()) + .define('B', core_wyvern) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconicSpeed)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticSpeed.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#C#") + .define('#', chaos_frag_small) + .define('A', DEModules.draconicSpeed.getItem()) + .define('B', core_awakened) + .define('C', chaos_frag_medium) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.chaoticSpeed)); //Damage - ShapedRecipeBuilder.shapedRecipe(DEModules.draconiumDamage.getItem()) - .patternLine("IPG") - .patternLine("ABA") - .patternLine("GPI") - .key('I', INGOTS_IRON) - .key('P', new NBTIngredient(PotionUtils.addPotionToItemStack(new ItemStack(POTION), Potions.STRENGTH))) - .key('G', INGOTS_GOLD) - .key('A', DUSTS_GLOWSTONE) - .key('B', module_core) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconiumDamage)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernDamage.getItem()) - .patternLine("IPI") - .patternLine("ABA") - .patternLine("IPI") - .key('I', INGOTS_DRACONIUM) - .key('P', new NBTIngredient(PotionUtils.addPotionToItemStack(new ItemStack(POTION), Potions.STRONG_STRENGTH))) - .key('A', DEModules.draconiumDamage.getItem()) - .key('B', core_draconium) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernDamage)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicDamage.getItem()) - .patternLine("IPI") - .patternLine("ABA") - .patternLine("IPI") - .key('I', NUGGETS_DRACONIUM_AWAKENED) - .key('P', DRAGON_BREATH) - .key('A', DEModules.wyvernDamage.getItem()) - .key('B', core_wyvern) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconicDamage)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticDamage.getItem()) - .patternLine("IPI") - .patternLine("ABA") - .patternLine("IPI") - .key('I', chaos_frag_small) - .key('P', chaos_frag_medium) - .key('A', DEModules.draconicDamage.getItem()) - .key('B', core_awakened) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.chaoticDamage)); + ShapedRecipeBuilder.shaped(DEModules.draconiumDamage.getItem()) + .pattern("IPG") + .pattern("ABA") + .pattern("GPI") + .define('I', INGOTS_IRON) + .define('P', new NBTIngredient(PotionUtils.setPotion(new ItemStack(POTION), Potions.STRENGTH))) + .define('G', INGOTS_GOLD) + .define('A', DUSTS_GLOWSTONE) + .define('B', module_core) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconiumDamage)); + + ShapedRecipeBuilder.shaped(DEModules.wyvernDamage.getItem()) + .pattern("IPI") + .pattern("ABA") + .pattern("IPI") + .define('I', INGOTS_DRACONIUM) + .define('P', new NBTIngredient(PotionUtils.setPotion(new ItemStack(POTION), Potions.STRONG_STRENGTH))) + .define('A', DEModules.draconiumDamage.getItem()) + .define('B', core_draconium) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernDamage)); + + ShapedRecipeBuilder.shaped(DEModules.draconicDamage.getItem()) + .pattern("IPI") + .pattern("ABA") + .pattern("IPI") + .define('I', NUGGETS_DRACONIUM_AWAKENED) + .define('P', DRAGON_BREATH) + .define('A', DEModules.wyvernDamage.getItem()) + .define('B', core_wyvern) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconicDamage)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticDamage.getItem()) + .pattern("IPI") + .pattern("ABA") + .pattern("IPI") + .define('I', chaos_frag_small) + .define('P', chaos_frag_medium) + .define('A', DEModules.draconicDamage.getItem()) + .define('B', core_awakened) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.chaoticDamage)); //AOE - ShapedRecipeBuilder.shapedRecipe(DEModules.draconiumAOE.getItem()) - .patternLine("#I#") - .patternLine("ABA") - .patternLine("#I#") - .key('#', PISTON) - .key('I', INGOTS_DRACONIUM) - .key('A', core_draconium) - .key('B', module_core) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconiumAOE)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernAOE.getItem()) - .patternLine("#I#") - .patternLine("ABA") - .patternLine("#I#") - .key('#', INGOTS_DRACONIUM) - .key('I', NETHERITE_SCRAP) - .key('A', DEModules.draconiumAOE.getItem()) - .key('B', core_wyvern) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernAOE)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicAOE.getItem()) - .patternLine("#I#") - .patternLine("ABA") - .patternLine("#I#") - .key('#', INGOTS_NETHERITE) - .key('I', INGOTS_DRACONIUM_AWAKENED) - .key('A', DEModules.wyvernAOE.getItem()) - .key('B', core_awakened) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconicAOE)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticAOE.getItem()) - .patternLine("#I#") - .patternLine("ABA") - .patternLine("#I#") - .key('#', INGOTS_NETHERITE) - .key('I', INGOTS_DRACONIUM_AWAKENED) - .key('A', DEModules.draconicAOE.getItem()) - .key('B', core_chaotic) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.chaoticAOE)); + ShapedRecipeBuilder.shaped(DEModules.draconiumAOE.getItem()) + .pattern("#I#") + .pattern("ABA") + .pattern("#I#") + .define('#', PISTON) + .define('I', INGOTS_DRACONIUM) + .define('A', core_draconium) + .define('B', module_core) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconiumAOE)); + + ShapedRecipeBuilder.shaped(DEModules.wyvernAOE.getItem()) + .pattern("#I#") + .pattern("ABA") + .pattern("#I#") + .define('#', INGOTS_DRACONIUM) + .define('I', NETHERITE_SCRAP) + .define('A', DEModules.draconiumAOE.getItem()) + .define('B', core_wyvern) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernAOE)); + + ShapedRecipeBuilder.shaped(DEModules.draconicAOE.getItem()) + .pattern("#I#") + .pattern("ABA") + .pattern("#I#") + .define('#', INGOTS_NETHERITE) + .define('I', INGOTS_DRACONIUM_AWAKENED) + .define('A', DEModules.wyvernAOE.getItem()) + .define('B', core_awakened) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconicAOE)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticAOE.getItem()) + .pattern("#I#") + .pattern("ABA") + .pattern("#I#") + .define('#', INGOTS_NETHERITE) + .define('I', INGOTS_DRACONIUM_AWAKENED) + .define('A', DEModules.draconicAOE.getItem()) + .define('B', core_chaotic) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.chaoticAOE)); //Mining Stability - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernMiningStability.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_DRACONIUM) - .key('A', core_draconium) - .key('B', module_core) - .key('C', PHANTOM_MEMBRANE) - .key('D', GOLDEN_PICKAXE) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernMiningStability)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernJunkFilter.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_DRACONIUM) - .key('A', core_draconium) - .key('B', module_core) - .key('C', LAVA_BUCKET) - .key('D', DUSTS_REDSTONE) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernJunkFilter)); + ShapedRecipeBuilder.shaped(DEModules.wyvernMiningStability.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_DRACONIUM) + .define('A', core_draconium) + .define('B', module_core) + .define('C', PHANTOM_MEMBRANE) + .define('D', GOLDEN_PICKAXE) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernMiningStability)); + + ShapedRecipeBuilder.shaped(DEModules.wyvernJunkFilter.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_DRACONIUM) + .define('A', core_draconium) + .define('B', module_core) + .define('C', LAVA_BUCKET) + .define('D', DUSTS_REDSTONE) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernJunkFilter)); //Shield Controller - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernShieldControl.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', GEMS_DIAMOND) - .key('A', core_wyvern) - .key('B', module_core) - .key('C', dragon_heart) - .key('D', particle_generator) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernShieldControl)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicShieldControl.getItem()) - .patternLine("#I#") - .patternLine("ABA") - .patternLine("#I#") - .key('#', GEMS_EMERALD) - .key('A', core_awakened) - .key('B', DEModules.wyvernShieldControl.getItem()) - .key('I', INGOTS_NETHERITE) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconicShieldControl)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticShieldControl.getItem()) - .patternLine("#I#") - .patternLine("ABA") - .patternLine("#I#") - .key('#', NETHER_STARS) - .key('A', core_chaotic) - .key('B', DEModules.draconicShieldControl.getItem()) - .key('I', INGOTS_NETHERITE) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.chaoticShieldControl)); + ShapedRecipeBuilder.shaped(DEModules.wyvernShieldControl.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', GEMS_DIAMOND) + .define('A', core_wyvern) + .define('B', module_core) + .define('C', dragon_heart) + .define('D', particle_generator) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernShieldControl)); + + ShapedRecipeBuilder.shaped(DEModules.draconicShieldControl.getItem()) + .pattern("#I#") + .pattern("ABA") + .pattern("#I#") + .define('#', GEMS_EMERALD) + .define('A', core_awakened) + .define('B', DEModules.wyvernShieldControl.getItem()) + .define('I', INGOTS_NETHERITE) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconicShieldControl)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticShieldControl.getItem()) + .pattern("#I#") + .pattern("ABA") + .pattern("#I#") + .define('#', NETHER_STARS) + .define('A', core_chaotic) + .define('B', DEModules.draconicShieldControl.getItem()) + .define('I', INGOTS_NETHERITE) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.chaoticShieldControl)); //Shield Capacity - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernShieldCapacity.getItem()) - .patternLine("#I#") - .patternLine("ABA") - .patternLine("#I#") - .key('#', INGOTS_DRACONIUM) - .key('A', DUSTS_GLOWSTONE) - .key('B', module_core) - .key('I', NETHERITE_SCRAP) - .addCriterion("has_wyvern_shield", hasItem(DEModules.wyvernShieldControl.getItem())) - .build(consumer, folder("modules", DEModules.wyvernShieldCapacity)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicShieldCapacity.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_NETHERITE) - .key('A', INGOTS_DRACONIUM_AWAKENED) - .key('B', DEModules.wyvernShieldCapacity.getItem()) - .key('C', core_draconium) - .key('D', core_wyvern) - .addCriterion("has_draconic_shield", hasItem(DEModules.draconicShieldControl.getItem())) - .build(consumer, folder("modules", DEModules.draconicShieldCapacity)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticShieldCapacity.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_DRACONIUM_AWAKENED) - .key('A', chaos_frag_medium) - .key('B', DEModules.draconicShieldCapacity.getItem()) - .key('C', core_wyvern) - .key('D', core_chaotic) - .addCriterion("has_chaotic_shield", hasItem(DEModules.chaoticShieldControl.getItem())) - .build(consumer, folder("modules", DEModules.chaoticShieldCapacity)); + ShapedRecipeBuilder.shaped(DEModules.wyvernShieldCapacity.getItem()) + .pattern("#I#") + .pattern("ABA") + .pattern("#I#") + .define('#', INGOTS_DRACONIUM) + .define('A', DUSTS_GLOWSTONE) + .define('B', module_core) + .define('I', NETHERITE_SCRAP) + .unlockedBy("has_wyvern_shield", has(DEModules.wyvernShieldControl.getItem())) + .save(consumer, folder("modules", DEModules.wyvernShieldCapacity)); + + ShapedRecipeBuilder.shaped(DEModules.draconicShieldCapacity.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_NETHERITE) + .define('A', INGOTS_DRACONIUM_AWAKENED) + .define('B', DEModules.wyvernShieldCapacity.getItem()) + .define('C', core_draconium) + .define('D', core_wyvern) + .unlockedBy("has_draconic_shield", has(DEModules.draconicShieldControl.getItem())) + .save(consumer, folder("modules", DEModules.draconicShieldCapacity)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticShieldCapacity.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_DRACONIUM_AWAKENED) + .define('A', chaos_frag_medium) + .define('B', DEModules.draconicShieldCapacity.getItem()) + .define('C', core_wyvern) + .define('D', core_chaotic) + .unlockedBy("has_chaotic_shield", has(DEModules.chaoticShieldControl.getItem())) + .save(consumer, folder("modules", DEModules.chaoticShieldCapacity)); //Shield Capacity XL - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernLargeShieldCapacity.getItem()) - .patternLine("#A#") - .patternLine("A#A") - .patternLine("#A#") - .key('#', DEModules.wyvernShieldCapacity.getItem()) - .key('A', core_draconium) - .addCriterion("has_wyvern_shield", hasItem(DEModules.wyvernShieldControl.getItem())) - .build(consumer, folder("modules", DEModules.wyvernLargeShieldCapacity)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicLargeShieldCapacity.getItem()) - .patternLine("#A#") - .patternLine("A#A") - .patternLine("#A#") - .key('#', DEModules.draconicShieldCapacity.getItem()) - .key('A', core_draconium) - .addCriterion("has_draconic_shield", hasItem(DEModules.draconicShieldControl.getItem())) - .build(consumer, folder("modules", DEModules.draconicLargeShieldCapacity)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticLargeShieldCapacity.getItem()) - .patternLine("#A#") - .patternLine("A#A") - .patternLine("#A#") - .key('#', DEModules.chaoticShieldCapacity.getItem()) - .key('A', core_draconium) - .addCriterion("has_chaotic_shield", hasItem(DEModules.chaoticShieldControl.getItem())) - .build(consumer, folder("modules", DEModules.chaoticLargeShieldCapacity)); - - ShapelessRecipeBuilder.shapelessRecipe(DEModules.wyvernShieldCapacity.getItem(), 5) - .addIngredient(DEModules.wyvernLargeShieldCapacity.getItem()) - .addCriterion("has_wyvern_shield", hasItem(DEModules.wyvernShieldControl.getItem())) - .build(consumer, DraconicEvolution.MODID + ":modules/uncraft_" + DEModules.wyvernShieldCapacity.getRegistryName().getPath()); - - ShapelessRecipeBuilder.shapelessRecipe(DEModules.draconicShieldCapacity.getItem(), 5) - .addIngredient(DEModules.draconicLargeShieldCapacity.getItem()) - .addCriterion("has_draconic_shield", hasItem(DEModules.draconicShieldControl.getItem())) - .build(consumer, DraconicEvolution.MODID + ":modules/uncraft_" + DEModules.draconicShieldCapacity.getRegistryName().getPath()); - - ShapelessRecipeBuilder.shapelessRecipe(DEModules.chaoticShieldCapacity.getItem(), 5) - .addIngredient(DEModules.chaoticLargeShieldCapacity.getItem()) - .addCriterion("has_chaotic_shield", hasItem(DEModules.chaoticShieldControl.getItem())) - .build(consumer, DraconicEvolution.MODID + ":modules/uncraft_" + DEModules.chaoticShieldCapacity.getRegistryName().getPath()); + ShapedRecipeBuilder.shaped(DEModules.wyvernLargeShieldCapacity.getItem()) + .pattern("#A#") + .pattern("A#A") + .pattern("#A#") + .define('#', DEModules.wyvernShieldCapacity.getItem()) + .define('A', core_draconium) + .unlockedBy("has_wyvern_shield", has(DEModules.wyvernShieldControl.getItem())) + .save(consumer, folder("modules", DEModules.wyvernLargeShieldCapacity)); + + ShapedRecipeBuilder.shaped(DEModules.draconicLargeShieldCapacity.getItem()) + .pattern("#A#") + .pattern("A#A") + .pattern("#A#") + .define('#', DEModules.draconicShieldCapacity.getItem()) + .define('A', core_draconium) + .unlockedBy("has_draconic_shield", has(DEModules.draconicShieldControl.getItem())) + .save(consumer, folder("modules", DEModules.draconicLargeShieldCapacity)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticLargeShieldCapacity.getItem()) + .pattern("#A#") + .pattern("A#A") + .pattern("#A#") + .define('#', DEModules.chaoticShieldCapacity.getItem()) + .define('A', core_draconium) + .unlockedBy("has_chaotic_shield", has(DEModules.chaoticShieldControl.getItem())) + .save(consumer, folder("modules", DEModules.chaoticLargeShieldCapacity)); + + ShapelessRecipeBuilder.shapeless(DEModules.wyvernShieldCapacity.getItem(), 5) + .requires(DEModules.wyvernLargeShieldCapacity.getItem()) + .unlockedBy("has_wyvern_shield", has(DEModules.wyvernShieldControl.getItem())) + .save(consumer, DraconicEvolution.MODID + ":modules/uncraft_" + DEModules.wyvernShieldCapacity.getRegistryName().getPath()); + + ShapelessRecipeBuilder.shapeless(DEModules.draconicShieldCapacity.getItem(), 5) + .requires(DEModules.draconicLargeShieldCapacity.getItem()) + .unlockedBy("has_draconic_shield", has(DEModules.draconicShieldControl.getItem())) + .save(consumer, DraconicEvolution.MODID + ":modules/uncraft_" + DEModules.draconicShieldCapacity.getRegistryName().getPath()); + + ShapelessRecipeBuilder.shapeless(DEModules.chaoticShieldCapacity.getItem(), 5) + .requires(DEModules.chaoticLargeShieldCapacity.getItem()) + .unlockedBy("has_chaotic_shield", has(DEModules.chaoticShieldControl.getItem())) + .save(consumer, DraconicEvolution.MODID + ":modules/uncraft_" + DEModules.chaoticShieldCapacity.getRegistryName().getPath()); //Shield Recovery - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernShieldRecovery.getItem()) - .patternLine("#I#") - .patternLine("ABA") - .patternLine("#I#") - .key('#', INGOTS_DRACONIUM) - .key('A', DUSTS_REDSTONE) - .key('B', module_core) - .key('I', NETHERITE_SCRAP) - .addCriterion("has_wyvern_shield", hasItem(DEModules.wyvernShieldControl.getItem())) - .build(consumer, folder("modules", DEModules.wyvernShieldRecovery)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicShieldRecovery.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_NETHERITE) - .key('A', INGOTS_DRACONIUM_AWAKENED) - .key('B', DEModules.wyvernShieldRecovery.getItem()) - .key('C', core_draconium) - .key('D', core_wyvern) - .addCriterion("has_draconic_shield", hasItem(DEModules.draconicShieldControl.getItem())) - .build(consumer, folder("modules", DEModules.draconicShieldRecovery)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticShieldRecovery.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_DRACONIUM_AWAKENED) - .key('A', chaos_frag_medium) - .key('B', DEModules.draconicShieldRecovery.getItem()) - .key('C', core_wyvern) - .key('D', core_chaotic) - .addCriterion("has_chaotic_shield", hasItem(DEModules.chaoticShieldControl.getItem())) - .build(consumer, folder("modules", DEModules.chaoticShieldRecovery)); + ShapedRecipeBuilder.shaped(DEModules.wyvernShieldRecovery.getItem()) + .pattern("#I#") + .pattern("ABA") + .pattern("#I#") + .define('#', INGOTS_DRACONIUM) + .define('A', DUSTS_REDSTONE) + .define('B', module_core) + .define('I', NETHERITE_SCRAP) + .unlockedBy("has_wyvern_shield", has(DEModules.wyvernShieldControl.getItem())) + .save(consumer, folder("modules", DEModules.wyvernShieldRecovery)); + + ShapedRecipeBuilder.shaped(DEModules.draconicShieldRecovery.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_NETHERITE) + .define('A', INGOTS_DRACONIUM_AWAKENED) + .define('B', DEModules.wyvernShieldRecovery.getItem()) + .define('C', core_draconium) + .define('D', core_wyvern) + .unlockedBy("has_draconic_shield", has(DEModules.draconicShieldControl.getItem())) + .save(consumer, folder("modules", DEModules.draconicShieldRecovery)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticShieldRecovery.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_DRACONIUM_AWAKENED) + .define('A', chaos_frag_medium) + .define('B', DEModules.draconicShieldRecovery.getItem()) + .define('C', core_wyvern) + .define('D', core_chaotic) + .unlockedBy("has_chaotic_shield", has(DEModules.chaoticShieldControl.getItem())) + .save(consumer, folder("modules", DEModules.chaoticShieldRecovery)); //Flight - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernFlight.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_DRACONIUM) - .key('C', ELYTRA) - .key('A', core_draconium) - .key('B', module_core) - .key('D', FIREWORK_ROCKET) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernFlight)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicFlight.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_DRACONIUM_AWAKENED) - .key('A', core_wyvern) - .key('B', DEModules.wyvernFlight.getItem()) - .key('C', new NBTIngredient(PotionUtils.addPotionToItemStack(new ItemStack(POTION), Potions.SLOW_FALLING))) - .key('D', FIREWORK_ROCKET) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconicFlight)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticFlight.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#C#") - .key('#', new NBTIngredient(PotionUtils.addPotionToItemStack(new ItemStack(POTION), Potions.STRONG_SWIFTNESS))) - .key('A', core_awakened) - .key('B', DEModules.draconicFlight.getItem()) - .key('C', chaos_frag_medium) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.chaoticFlight)); + ShapedRecipeBuilder.shaped(DEModules.wyvernFlight.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_DRACONIUM) + .define('C', ELYTRA) + .define('A', core_draconium) + .define('B', module_core) + .define('D', FIREWORK_ROCKET) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernFlight)); + + ShapedRecipeBuilder.shaped(DEModules.draconicFlight.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_DRACONIUM_AWAKENED) + .define('A', core_wyvern) + .define('B', DEModules.wyvernFlight.getItem()) + .define('C', new NBTIngredient(PotionUtils.setPotion(new ItemStack(POTION), Potions.SLOW_FALLING))) + .define('D', FIREWORK_ROCKET) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconicFlight)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticFlight.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#C#") + .define('#', new NBTIngredient(PotionUtils.setPotion(new ItemStack(POTION), Potions.STRONG_SWIFTNESS))) + .define('A', core_awakened) + .define('B', DEModules.draconicFlight.getItem()) + .define('C', chaos_frag_medium) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.chaoticFlight)); //Last Stand - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernLastStand.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_DRACONIUM) - .key('A', core_draconium) - .key('B', module_core) - .key('C', TOTEM_OF_UNDYING) - .key('D', DEModules.wyvernShieldCapacity.getItem()) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernLastStand)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicLastStand.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_DRACONIUM_AWAKENED) - .key('A', core_wyvern) - .key('B', DEModules.wyvernLastStand.getItem()) - .key('C', new NBTIngredient(PotionUtils.addPotionToItemStack(new ItemStack(POTION), Potions.STRONG_HEALING))) - .key('D', DEModules.draconicShieldCapacity.getItem()) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconicLastStand)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticLastStand.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', chaos_frag_medium) - .key('A', core_awakened) - .key('B', DEModules.draconicLastStand.getItem()) - .key('C', ENCHANTED_GOLDEN_APPLE) - .key('D', DEModules.chaoticShieldCapacity.getItem()) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.chaoticLastStand)); + ShapedRecipeBuilder.shaped(DEModules.wyvernLastStand.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_DRACONIUM) + .define('A', core_draconium) + .define('B', module_core) + .define('C', TOTEM_OF_UNDYING) + .define('D', DEModules.wyvernShieldCapacity.getItem()) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernLastStand)); + + ShapedRecipeBuilder.shaped(DEModules.draconicLastStand.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_DRACONIUM_AWAKENED) + .define('A', core_wyvern) + .define('B', DEModules.wyvernLastStand.getItem()) + .define('C', new NBTIngredient(PotionUtils.setPotion(new ItemStack(POTION), Potions.STRONG_HEALING))) + .define('D', DEModules.draconicShieldCapacity.getItem()) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconicLastStand)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticLastStand.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', chaos_frag_medium) + .define('A', core_awakened) + .define('B', DEModules.draconicLastStand.getItem()) + .define('C', ENCHANTED_GOLDEN_APPLE) + .define('D', DEModules.chaoticShieldCapacity.getItem()) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.chaoticLastStand)); //Auto Feed - ShapedRecipeBuilder.shapedRecipe(DEModules.draconiumAutoFeed.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_IRON) - .key('A', COOKIE) - .key('B', module_core) - .key('C', GOLDEN_APPLE) - .key('D', core_draconium) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconiumAutoFeed)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernAutoFeed.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#C#") - .key('#', INGOTS_DRACONIUM) - .key('A', core_draconium) - .key('B', DEModules.draconiumAutoFeed.getItem()) - .key('C', COOKIE) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernAutoFeed)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicAutoFeed.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#C#") - .key('#', NUGGETS_DRACONIUM_AWAKENED) - .key('A', core_draconium) - .key('B', DEModules.wyvernAutoFeed.getItem()) - .key('C', COOKIE) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconicAutoFeed)); + ShapedRecipeBuilder.shaped(DEModules.draconiumAutoFeed.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_IRON) + .define('A', COOKIE) + .define('B', module_core) + .define('C', GOLDEN_APPLE) + .define('D', core_draconium) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconiumAutoFeed)); + + ShapedRecipeBuilder.shaped(DEModules.wyvernAutoFeed.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#C#") + .define('#', INGOTS_DRACONIUM) + .define('A', core_draconium) + .define('B', DEModules.draconiumAutoFeed.getItem()) + .define('C', COOKIE) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernAutoFeed)); + + ShapedRecipeBuilder.shaped(DEModules.draconicAutoFeed.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#C#") + .define('#', NUGGETS_DRACONIUM_AWAKENED) + .define('A', core_draconium) + .define('B', DEModules.wyvernAutoFeed.getItem()) + .define('C', COOKIE) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconicAutoFeed)); //Night Vision - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernNightVision.getItem()) - .patternLine("#P#") - .patternLine("ABA") - .patternLine("#P#") - .key('#', INGOTS_DRACONIUM) - .key('A', core_draconium) - .key('B', module_core) - .key('P', new NBTIngredient(PotionUtils.addPotionToItemStack(new ItemStack(POTION), Potions.NIGHT_VISION))) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernNightVision)); + ShapedRecipeBuilder.shaped(DEModules.wyvernNightVision.getItem()) + .pattern("#P#") + .pattern("ABA") + .pattern("#P#") + .define('#', INGOTS_DRACONIUM) + .define('A', core_draconium) + .define('B', module_core) + .define('P', new NBTIngredient(PotionUtils.setPotion(new ItemStack(POTION), Potions.NIGHT_VISION))) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernNightVision)); //Jump Boost - ShapedRecipeBuilder.shapedRecipe(DEModules.draconiumJump.getItem()) - .patternLine("CPD") - .patternLine("ABA") - .patternLine("DPC") - .key('A', DUSTS_GLOWSTONE) - .key('B', module_core) - .key('C', INGOTS_IRON) - .key('D', INGOTS_GOLD) - .key('P', new NBTIngredient(PotionUtils.addPotionToItemStack(new ItemStack(POTION), Potions.LEAPING))) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconiumJump)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernJump.getItem()) - .patternLine("#P#") - .patternLine("ABA") - .patternLine("#P#") - .key('#', INGOTS_DRACONIUM) - .key('B', core_draconium) - .key('A', DEModules.draconiumJump.getItem()) - .key('P', new NBTIngredient(PotionUtils.addPotionToItemStack(new ItemStack(POTION), Potions.STRONG_LEAPING))) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernJump)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.draconicJump.getItem()) - .patternLine("###") - .patternLine("ABA") - .patternLine("###") - .key('#', NUGGETS_DRACONIUM_AWAKENED) - .key('B', core_wyvern) - .key('A', DEModules.wyvernJump.getItem()) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.draconicJump)); - - ShapedRecipeBuilder.shapedRecipe(DEModules.chaoticJump.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#C#") - .key('#', chaos_frag_small) - .key('B', core_awakened) - .key('A', DEModules.draconicJump.getItem()) - .key('C', chaos_frag_medium) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.chaoticJump)); + ShapedRecipeBuilder.shaped(DEModules.draconiumJump.getItem()) + .pattern("CPD") + .pattern("ABA") + .pattern("DPC") + .define('A', DUSTS_GLOWSTONE) + .define('B', module_core) + .define('C', INGOTS_IRON) + .define('D', INGOTS_GOLD) + .define('P', new NBTIngredient(PotionUtils.setPotion(new ItemStack(POTION), Potions.LEAPING))) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconiumJump)); + + ShapedRecipeBuilder.shaped(DEModules.wyvernJump.getItem()) + .pattern("#P#") + .pattern("ABA") + .pattern("#P#") + .define('#', INGOTS_DRACONIUM) + .define('B', core_draconium) + .define('A', DEModules.draconiumJump.getItem()) + .define('P', new NBTIngredient(PotionUtils.setPotion(new ItemStack(POTION), Potions.STRONG_LEAPING))) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernJump)); + + ShapedRecipeBuilder.shaped(DEModules.draconicJump.getItem()) + .pattern("###") + .pattern("ABA") + .pattern("###") + .define('#', NUGGETS_DRACONIUM_AWAKENED) + .define('B', core_wyvern) + .define('A', DEModules.wyvernJump.getItem()) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.draconicJump)); + + ShapedRecipeBuilder.shaped(DEModules.chaoticJump.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#C#") + .define('#', chaos_frag_small) + .define('B', core_awakened) + .define('A', DEModules.draconicJump.getItem()) + .define('C', chaos_frag_medium) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.chaoticJump)); //Aqua - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernAquaAdapt.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("#D#") - .key('#', INGOTS_DRACONIUM) - .key('A', core_draconium) - .key('B', module_core) - .key('C', HEART_OF_THE_SEA) - .key('D', IRON_PICKAXE) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernAquaAdapt)); + ShapedRecipeBuilder.shaped(DEModules.wyvernAquaAdapt.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("#D#") + .define('#', INGOTS_DRACONIUM) + .define('A', core_draconium) + .define('B', module_core) + .define('C', HEART_OF_THE_SEA) + .define('D', IRON_PICKAXE) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernAquaAdapt)); //Hill Step - ShapedRecipeBuilder.shapedRecipe(DEModules.wyvernHillStep.getItem()) - .patternLine("#C#") - .patternLine("ABA") - .patternLine("D#D") - .key('#', INGOTS_DRACONIUM) - .key('A', core_draconium) - .key('B', module_core) - .key('C', GOLDEN_BOOTS) - .key('D', PISTON) - .addCriterion("has_module_core", hasItem(module_core)) - .build(consumer, folder("modules", DEModules.wyvernHillStep)); + ShapedRecipeBuilder.shaped(DEModules.wyvernHillStep.getItem()) + .pattern("#C#") + .pattern("ABA") + .pattern("D#D") + .define('#', INGOTS_DRACONIUM) + .define('A', core_draconium) + .define('B', module_core) + .define('C', GOLDEN_BOOTS) + .define('D', PISTON) + .unlockedBy("has_module_core", has(module_core)) + .save(consumer, folder("modules", DEModules.wyvernHillStep)); } private static void unsorted(Consumer consumer) { - ShapedRecipeBuilder.shapedRecipe(infused_obsidian) - .patternLine("ABA") - .patternLine("BCB") - .patternLine("ABA") - .key('A', BLAZE_POWDER) - .key('B', Tags.Items.OBSIDIAN) - .key('C', DUSTS_DRACONIUM) - .addCriterion("has_dust_draconium", hasItem(dust_draconium)) - .build(consumer); + ShapedRecipeBuilder.shaped(infused_obsidian) + .pattern("ABA") + .pattern("BCB") + .pattern("ABA") + .define('A', BLAZE_POWDER) + .define('B', Tags.Items.OBSIDIAN) + .define('C', DUSTS_DRACONIUM) + .unlockedBy("has_dust_draconium", has(dust_draconium)) + .save(consumer); // FusionRecipeBuilder.fusionRecipe(ender_energy_manipulator).catalyst(SKELETON_SKULL).energy(12000000).techLevel(WYVERN).ingredient(ENDER_EYE).ingredient(ENDER_EYE).ingredient(ENDER_EYE).ingredient(ENDER_EYE).ingredient(ENDER_EYE).ingredient(ENDER_EYE).ingredient(core_draconium).ingredient(core_wyvern).ingredient(core_draconium).ingredient(ENDER_EYE).build(consumer); @@ -1572,39 +1572,39 @@ private static void unsorted(Consumer consumer) { // // ShapedRecipeBuilder.shapedRecipe(entity_detector).patternLine("ABA").patternLine("CDC").patternLine("EFE").key('A', GEMS_LAPIS).key('B', ENDER_EYE).key('C', DUSTS_REDSTONE).key('D', INGOTS_DRACONIUM).key('E', INGOTS_IRON).key('F', core_draconium).build(consumer); // ShapedRecipeBuilder.shapedRecipe(entity_detector_advanced).patternLine("ABA").patternLine("CDC").patternLine("EFE").key('A', STORAGE_BLOCKS_REDSTONE).key('B', SKELETON_SKULL).key('C', STORAGE_BLOCKS_LAPIS).key('D', GEMS_DIAMOND).key('E', INGOTS_DRACONIUM).key('F', entity_detector).build(consumer); - ShapedRecipeBuilder.shapedRecipe(fluid_gate) - .patternLine("ABA") - .patternLine("CDC") - .patternLine("AEA") - .key('A', INGOTS_IRON) - .key('B', potentiometer) - .key('C', BUCKET) - .key('D', core_draconium) - .key('E', COMPARATOR) - .addCriterion("has_dust_draconium", hasItem(dust_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(flux_gate) - .patternLine("ABA") - .patternLine("CDC") - .patternLine("AEA") - .key('A', INGOTS_IRON) - .key('B', potentiometer) - .key('C', STORAGE_BLOCKS_REDSTONE) - .key('D', core_draconium) - .key('E', COMPARATOR) - .addCriterion("has_dust_draconium", hasItem(dust_draconium)) - .build(consumer); - - ShapedRecipeBuilder.shapedRecipe(dislocation_inhibitor) - .patternLine("AAA") - .patternLine("BCB") - .patternLine("AAA") - .key('A', INGOTS_IRON) - .key('B', IRON_BARS) - .key('C', magnet) - .addCriterion("has_magnet", hasItem(magnet)) - .build(consumer); + ShapedRecipeBuilder.shaped(fluid_gate) + .pattern("ABA") + .pattern("CDC") + .pattern("AEA") + .define('A', INGOTS_IRON) + .define('B', potentiometer) + .define('C', BUCKET) + .define('D', core_draconium) + .define('E', COMPARATOR) + .unlockedBy("has_dust_draconium", has(dust_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(flux_gate) + .pattern("ABA") + .pattern("CDC") + .pattern("AEA") + .define('A', INGOTS_IRON) + .define('B', potentiometer) + .define('C', STORAGE_BLOCKS_REDSTONE) + .define('D', core_draconium) + .define('E', COMPARATOR) + .unlockedBy("has_dust_draconium", has(dust_draconium)) + .save(consumer); + + ShapedRecipeBuilder.shaped(dislocation_inhibitor) + .pattern("AAA") + .pattern("BCB") + .pattern("AAA") + .define('A', INGOTS_IRON) + .define('B', IRON_BARS) + .define('C', magnet) + .unlockedBy("has_magnet", has(magnet)) + .save(consumer); // ShapedRecipeBuilder.shapedRecipe(info_tablet).patternLine("AAA").patternLine("ABA").patternLine("AAA").key('A', Tags.Items.STONE).key('B', DUSTS_DRACONIUM).build(consumer); @@ -1614,51 +1614,51 @@ private static void unsorted(Consumer consumer) { private static void compress3x3(IItemProvider output, IItemProvider input, Consumer consumer) { ResourceLocation name = output.asItem().getRegistryName(); - ShapedRecipeBuilder.shapedRecipe(output) - .patternLine("###") - .patternLine("###") - .patternLine("###") - .key('#', input) - .addCriterion("has_" + input.asItem().getRegistryName().getPath(), hasItem(input)) - .build(consumer, new ResourceLocation(name.getNamespace(), "compress/" + name.getPath())); + ShapedRecipeBuilder.shaped(output) + .pattern("###") + .pattern("###") + .pattern("###") + .define('#', input) + .unlockedBy("has_" + input.asItem().getRegistryName().getPath(), has(input)) + .save(consumer, new ResourceLocation(name.getNamespace(), "compress/" + name.getPath())); } private static void compress3x3(IItemProvider output, ITag input, String inputName, Consumer consumer) { ResourceLocation name = output.asItem().getRegistryName(); - ShapedRecipeBuilder.shapedRecipe(output) - .patternLine("###") - .patternLine("###") - .patternLine("###") - .key('#', input) - .addCriterion("has_" + inputName, hasItem(input)) - .build(consumer, new ResourceLocation(name.getNamespace(), "compress/" + name.getPath())); + ShapedRecipeBuilder.shaped(output) + .pattern("###") + .pattern("###") + .pattern("###") + .define('#', input) + .unlockedBy("has_" + inputName, has(input)) + .save(consumer, new ResourceLocation(name.getNamespace(), "compress/" + name.getPath())); } private static void compress2x2(IItemProvider output, IItemProvider input, Consumer consumer) { ResourceLocation name = output.asItem().getRegistryName(); - ShapedRecipeBuilder.shapedRecipe(output) - .patternLine("###") - .patternLine("###") - .patternLine("###") - .key('#', input) - .addCriterion("has_" + input.asItem().getRegistryName().getPath(), hasItem(input)) - .build(consumer, new ResourceLocation(name.getNamespace(), "compress/" + name.getPath())); + ShapedRecipeBuilder.shaped(output) + .pattern("###") + .pattern("###") + .pattern("###") + .define('#', input) + .unlockedBy("has_" + input.asItem().getRegistryName().getPath(), has(input)) + .save(consumer, new ResourceLocation(name.getNamespace(), "compress/" + name.getPath())); } private static void deCompress(IItemProvider output, int count, IItemProvider from, Consumer consumer) { ResourceLocation name = output.asItem().getRegistryName(); - ShapelessRecipeBuilder.shapelessRecipe(output, count) - .addIngredient(from) - .addCriterion("has_" + from.asItem().getRegistryName().getPath(), hasItem(from)) - .build(consumer, new ResourceLocation(name.getNamespace(), "decompress/" + name.getPath())); + ShapelessRecipeBuilder.shapeless(output, count) + .requires(from) + .unlockedBy("has_" + from.asItem().getRegistryName().getPath(), has(from)) + .save(consumer, new ResourceLocation(name.getNamespace(), "decompress/" + name.getPath())); } private static void deCompress(IItemProvider output, int count, ITag from, String hasName, Consumer consumer) { ResourceLocation name = output.asItem().getRegistryName(); - ShapelessRecipeBuilder.shapelessRecipe(output, count) - .addIngredient(from) - .addCriterion("has_" + hasName, hasItem(from)) - .build(consumer, new ResourceLocation(name.getNamespace(), "decompress/" + name.getPath())); + ShapelessRecipeBuilder.shapeless(output, count) + .requires(from) + .unlockedBy("has_" + hasName, has(from)) + .save(consumer, new ResourceLocation(name.getNamespace(), "decompress/" + name.getPath())); } private static void deCompress(IItemProvider output, IItemProvider from, Consumer consumer) { @@ -1678,8 +1678,8 @@ public static String folder(String folder, String name) { } @Override - public void act(DirectoryCache cache) throws IOException { - super.act(cache); + public void run(DirectoryCache cache) throws IOException { + super.run(cache); } public static class NBTIngredient extends net.minecraftforge.common.crafting.NBTIngredient { diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/EntityChaosImplosion.java b/src/main/java/com/brandon3055/draconicevolution/entity/EntityChaosImplosion.java index 1b1e33f6e..b0eadc983 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/EntityChaosImplosion.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/EntityChaosImplosion.java @@ -21,19 +21,19 @@ */ @Deprecated public class EntityChaosImplosion extends Entity { - protected static final DataParameter TICKS = EntityDataManager.createKey(EntityChaosImplosion.class, DataSerializers.VARINT); + protected static final DataParameter TICKS = EntityDataManager.defineId(EntityChaosImplosion.class, DataSerializers.INT); public EntityChaosImplosion(EntityType entityTypeIn, World worldIn) { super(entityTypeIn, worldIn); } @Override - protected void registerData() { + protected void defineSynchedData() { } @Override - public IPacket createSpawnPacket() { + public IPacket getAddEntityPacket() { return null; } @@ -44,7 +44,7 @@ public IPacket createSpawnPacket() { // } @Override - public boolean isInRangeToRenderDist(double p_70112_1_) { + public boolean shouldRenderAtSqrDistance(double p_70112_1_) { return true; } @@ -55,73 +55,73 @@ public boolean isInRangeToRenderDist(double p_70112_1_) { @Override public void tick() { - if (!world.isRemote) { - dataManager.set(TICKS, ticksExisted); + if (!level.isClientSide) { + entityData.set(TICKS, tickCount); } // Vec3D pos = new Vec3D(getPosX(), getPosY(), getPosZ()); - if (ticksExisted < 30 && ticksExisted % 5 == 0 && world.isRemote) { + if (tickCount < 30 && tickCount % 5 == 0 && level.isClientSide) { //TODO Particles // BCEffectHandler.spawnFX(DEParticles.CHAOS_IMPLOSION, world, pos, pos, 1024D, 1); // DraconicEvolution.proxy.spawnParticle(new Particles.ChaosExpansionParticle(world, posX, posY, posZ, false), 512); } - if (ticksExisted >= 100 && ticksExisted < 130 && ticksExisted % 5 == 0 && world.isRemote) { + if (tickCount >= 100 && tickCount < 130 && tickCount % 5 == 0 && level.isClientSide) { // BCEffectHandler.spawnFX(DEParticles.CHAOS_IMPLOSION, world, pos, pos, 1024D, 2); // DraconicEvolution.proxy.spawnParticle(new Particles.ChaosExpansionParticle(world, posX, posY, posZ, true), 512); } - if (ticksExisted < 100) { + if (tickCount < 100) { return; } - if (ticksExisted < 600) { + if (tickCount < 600) { for (int i = 0; i < 10; i++) { // double x = posX - 18 + rand.nextDouble() * 36; // double y = posY - 8 + rand.nextDouble() * 16; // double z = posZ - 18 + rand.nextDouble() * 36; - if (world.isRemote) { + if (level.isClientSide) { // BCEffectHandler.spawnFX(DEParticles.CHAOS_IMPLOSION, world, new Vec3D(x, y, z), pos, 512D, 0); } } - if (ticksExisted > 130 && world.isRemote && ticksExisted % 2 == 0) { + if (tickCount > 130 && level.isClientSide && tickCount % 2 == 0) { shakeScreen(); } } - if (ticksExisted == 700 && !world.isRemote) { + if (tickCount == 700 && !level.isClientSide) { // BCEffectHandler.spawnFX(DEParticles.CHAOS_IMPLOSION, world, pos, pos, 1024D, 5); - ProcessHandler.addProcess(new ProcessChaosImplosion(world, (int) getPosX(), (int) getPosY(), (int) getPosZ())); + ProcessHandler.addProcess(new ProcessChaosImplosion(level, (int) getX(), (int) getY(), (int) getZ())); } - if (ticksExisted > 720) { + if (tickCount > 720) { remove(); } } private void shakeScreen() { - double intensity = (ticksExisted - 130) / 100D; + double intensity = (tickCount - 130) / 100D; if (intensity > 1D) intensity = 1D; - @SuppressWarnings("unchecked") List players = world.getEntitiesWithinAABB(PlayerEntity.class, getBoundingBox().grow(200, 200, 200)); + @SuppressWarnings("unchecked") List players = level.getEntitiesOfClass(PlayerEntity.class, getBoundingBox().inflate(200, 200, 200)); for (PlayerEntity player : players) { - double x = (rand.nextDouble() - 0.5) * 2 * intensity; - double z = (rand.nextDouble() - 0.5) * 2 * intensity; + double x = (random.nextDouble() - 0.5) * 2 * intensity; + double z = (random.nextDouble() - 0.5) * 2 * intensity; player.move(MoverType.SELF, new Vector3d(x / 5D, 0, z / 5D)); - player.rotationYaw -= x * 2; - player.rotationPitch -= z * 2; + player.yRot -= x * 2; + player.xRot -= z * 2; } } @Override - protected void readAdditional(CompoundNBT compound) { + protected void readAdditionalSaveData(CompoundNBT compound) { } @Override - protected void writeAdditional(CompoundNBT compound) { + protected void addAdditionalSaveData(CompoundNBT compound) { } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/EntityCustomArrow.java b/src/main/java/com/brandon3055/draconicevolution/entity/EntityCustomArrow.java index 640080e1e..37167a25f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/EntityCustomArrow.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/EntityCustomArrow.java @@ -31,7 +31,7 @@ @Deprecated public class EntityCustomArrow extends ArrowEntity { - private static final DataParameter IS_ENERGY = EntityDataManager.createKey(EntityCustomArrow.class, DataSerializers.BOOLEAN); + private static final DataParameter IS_ENERGY = EntityDataManager.defineId(EntityCustomArrow.class, DataSerializers.BOOLEAN); public BowProperties bowProperties = new BowProperties(); @@ -66,9 +66,9 @@ public void shoot(double par1, double par3, double par5, float par7, float par8) par1 /= f2; par3 /= f2; par5 /= f2; - par1 += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.0007499999832361937D * par8; - par3 += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.0007499999832361937D * par8; - par5 += this.rand.nextGaussian() * (this.rand.nextBoolean() ? -1 : 1) * 0.0007499999832361937D * par8; + par1 += this.random.nextGaussian() * (this.random.nextBoolean() ? -1 : 1) * 0.0007499999832361937D * par8; + par3 += this.random.nextGaussian() * (this.random.nextBoolean() ? -1 : 1) * 0.0007499999832361937D * par8; + par5 += this.random.nextGaussian() * (this.random.nextBoolean() ? -1 : 1) * 0.0007499999832361937D * par8; par1 *= par7; par3 *= par7; par5 *= par7; @@ -76,8 +76,8 @@ public void shoot(double par1, double par3, double par5, float par7, float par8) // this.motionY = par3; // this.motionZ = par5; float f3 = MathHelper.sqrt(par1 * par1 + par5 * par5); - this.prevRotationYaw = this.rotationYaw = (float) (Math.atan2(par1, par5) * 180.0D / Math.PI); - this.prevRotationPitch = this.rotationPitch = (float) (Math.atan2(par3, f3) * 180.0D / Math.PI); + this.yRotO = this.yRot = (float) (Math.atan2(par1, par5) * 180.0D / Math.PI); + this.xRotO = this.xRot = (float) (Math.atan2(par3, f3) * 180.0D / Math.PI); // this.ticksInGround = 0; } @@ -95,22 +95,22 @@ public void shoot(double par1, double par3, double par5, float par7, float par8) // } @Override - protected ItemStack getArrowStack() { + protected ItemStack getPickupItem() { return new ItemStack(Items.ARROW); } @Override - public void onCollideWithPlayer(PlayerEntity entityIn) { - if (!this.world.isRemote && this.inGround && this.arrowShake <= 0) { - boolean flag = this.pickupStatus == ArrowEntity.PickupStatus.ALLOWED || this.pickupStatus == ArrowEntity.PickupStatus.CREATIVE_ONLY && entityIn.abilities.isCreativeMode; + public void playerTouch(PlayerEntity entityIn) { + if (!this.level.isClientSide && this.inGround && this.shakeTime <= 0) { + boolean flag = this.pickup == ArrowEntity.PickupStatus.ALLOWED || this.pickup == ArrowEntity.PickupStatus.CREATIVE_ONLY && entityIn.abilities.instabuild; - if (this.pickupStatus == ArrowEntity.PickupStatus.ALLOWED && !entityIn.inventory.addItemStackToInventory(getArrowStack())) { + if (this.pickup == ArrowEntity.PickupStatus.ALLOWED && !entityIn.inventory.add(getPickupItem())) { flag = false; } if (flag) { - this.playSound(SoundEvents.ENTITY_ITEM_PICKUP, 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); - entityIn.onItemPickup(this, 1); + this.playSound(SoundEvents.ITEM_PICKUP, 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); + entityIn.take(this, 1); this.remove(); } } @@ -158,16 +158,16 @@ public void onCollideWithPlayer(PlayerEntity entityIn) { @Override - public void writeAdditional(CompoundNBT compound) { - super.writeAdditional(compound); + public void addAdditionalSaveData(CompoundNBT compound) { + super.addAdditionalSaveData(compound); if (bowProperties != null) { bowProperties.writeToNBT(compound); } } @Override - public void readAdditional(CompoundNBT compound) { - super.readAdditional(compound); + public void readAdditionalSaveData(CompoundNBT compound) { + super.readAdditionalSaveData(compound); if (bowProperties != null) { bowProperties.readFromNBT(compound); } @@ -176,23 +176,23 @@ public void readAdditional(CompoundNBT compound) { //endregion @Override - protected void onEntityHit(EntityRayTraceResult traceResult) { + protected void onHitEntity(EntityRayTraceResult traceResult) { - if (bowProperties.explosionPower > 0 && !world.isRemote) { - Explosion explosion = new Explosion(world, this, prevPosX, prevPosY, prevPosZ, bowProperties.explosionPower, false, DEOldConfig.bowBlockDamage ? Explosion.Mode.BREAK : Explosion.Mode.NONE) { + if (bowProperties.explosionPower > 0 && !level.isClientSide) { + Explosion explosion = new Explosion(level, this, xo, yo, zo, bowProperties.explosionPower, false, DEOldConfig.bowBlockDamage ? Explosion.Mode.BREAK : Explosion.Mode.NONE) { @Override - public LivingEntity getExplosivePlacedBy() { - return func_234616_v_() instanceof LivingEntity ? (LivingEntity) func_234616_v_() : null; + public LivingEntity getSourceMob() { + return getOwner() instanceof LivingEntity ? (LivingEntity) getOwner() : null; } }; - if (!net.minecraftforge.event.ForgeEventFactory.onExplosionStart(world, explosion)) { - explosion.doExplosionA(); - explosion.doExplosionB(true); - explosion.clearAffectedBlockPositions(); - - for (PlayerEntity entityplayer : world.getPlayers()) { - if (entityplayer.getDistanceSq(prevPosX, prevPosY, prevPosZ) < 4096.0D) { - ((ServerPlayerEntity) entityplayer).connection.sendPacket(new SExplosionPacket(prevPosX, prevPosY, prevPosZ, bowProperties.explosionPower, explosion.getAffectedBlockPositions(), explosion.getPlayerKnockbackMap().get(entityplayer))); + if (!net.minecraftforge.event.ForgeEventFactory.onExplosionStart(level, explosion)) { + explosion.explode(); + explosion.finalizeExplosion(true); + explosion.clearToBlow(); + + for (PlayerEntity entityplayer : level.players()) { + if (entityplayer.distanceToSqr(xo, yo, zo) < 4096.0D) { + ((ServerPlayerEntity) entityplayer).connection.send(new SExplosionPacket(xo, yo, zo, bowProperties.explosionPower, explosion.getToBlow(), explosion.getHitPlayers().get(entityplayer))); } } } @@ -201,7 +201,7 @@ public LivingEntity getExplosivePlacedBy() { } //region Shock Wave - if (bowProperties.shockWavePower > 0 && !world.isRemote) { + if (bowProperties.shockWavePower > 0 && !level.isClientSide) { Vec3D hitPos = new Vec3D(this); // if (traceResult instanceof BlockRayTraceResult) { // hitPos = Vec3D.getCenter(((BlockRayTraceResult) traceResult).getPos()); @@ -215,23 +215,23 @@ public LivingEntity getExplosivePlacedBy() { // BCEffectHandler.spawnFX(DEParticles.ARROW_SHOCKWAVE, world, hitPos.x, hitPos.y, hitPos.z, 0, 0, 0, 256D, (int) (bowProperties.shockWavePower * 100)); double range = (double) (bowProperties.shockWavePower + 5) * 1.5; - List list = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(hitPos.x, hitPos.y, hitPos.z, hitPos.x, hitPos.y, hitPos.z).grow(range * 2)); + List list = level.getEntitiesOfClass(Entity.class, new AxisAlignedBB(hitPos.x, hitPos.y, hitPos.z, hitPos.x, hitPos.y, hitPos.z).inflate(range * 2)); float damage = 40F * bowProperties.shockWavePower; for (Entity e : list) { if (e instanceof LivingEntity) { Entity entity = e; - float distanceModifier = 1F - (entity.getDistance(this) / (float) range); + float distanceModifier = 1F - (entity.distanceTo(this) / (float) range); if (e instanceof EnderDragonEntity) { -// entity = ((EnderDragonEntity) entity).field_70987_i; +// entity = ((EnderDragonEntity) entity).body; // distanceModifier = 1F - (entity.getDistance(this) / (bowProperties.shockWavePower * 4)); } if (distanceModifier > 0) { - DamageSource source = new IndirectEntityDamageSource("customArrowEnergy", this, func_234616_v_() != null ? func_234616_v_() : this).setProjectile().setExplosion().setDamageIsAbsolute(); - entity.attackEntityFrom(source, distanceModifier * damage); + DamageSource source = new IndirectEntityDamageSource("customArrowEnergy", this, getOwner() != null ? getOwner() : this).setProjectile().setExplosion().bypassMagic(); + entity.hurt(source, distanceModifier * damage); } } } @@ -247,7 +247,7 @@ public LivingEntity getExplosivePlacedBy() { int actualDamage; //Calculate Damage - double velocity = this.getMotion().length(); + double velocity = this.getDeltaMovement().length(); actualDamage = MathHelper.ceil(velocity * bowProperties.arrowDamage); if (bowProperties.energyBolt) { @@ -255,19 +255,19 @@ public LivingEntity getExplosivePlacedBy() { } if (bowProperties.energyBolt) { - ((EntityRayTraceResult) traceResult).getEntity().hurtResistantTime = 0; + ((EntityRayTraceResult) traceResult).getEntity().invulnerableTime = 0; } - if (((EntityRayTraceResult) traceResult).getEntity() instanceof EnderDragonPartEntity && ((EnderDragonPartEntity) ((EntityRayTraceResult) traceResult).getEntity()).dragon != null && bowProperties.energyBolt) { - ((EnderDragonEntity) ((EnderDragonPartEntity) ((EntityRayTraceResult) traceResult).getEntity()).dragon).hurtResistantTime = 0; + if (((EntityRayTraceResult) traceResult).getEntity() instanceof EnderDragonPartEntity && ((EnderDragonPartEntity) ((EntityRayTraceResult) traceResult).getEntity()).parentMob != null && bowProperties.energyBolt) { + ((EnderDragonEntity) ((EnderDragonPartEntity) ((EntityRayTraceResult) traceResult).getEntity()).parentMob).invulnerableTime = 0; } - if (((EntityRayTraceResult) traceResult).getEntity().attackEntityFrom(getDamageSource(), actualDamage)) { + if (((EntityRayTraceResult) traceResult).getEntity().hurt(getDamageSource(), actualDamage)) { if (((EntityRayTraceResult) traceResult).getEntity() instanceof LivingEntity) { LivingEntity entitylivingbase = (LivingEntity) ((EntityRayTraceResult) traceResult).getEntity(); - if (!this.world.isRemote) { - entitylivingbase.setArrowCountInEntity(entitylivingbase.getArrowCountInEntity() + 1); + if (!this.level.isClientSide) { + entitylivingbase.setArrowCount(entitylivingbase.getArrowCount() + 1); } // if (this.knockbackStrength > 0) { @@ -279,8 +279,8 @@ public LivingEntity getExplosivePlacedBy() { // } // if (this.shootingEntity != null && this.shootingEntity instanceof LivingEntity) { -// EnchantmentHelper.func_151384_a(entitylivingbase, this.shootingEntity); -// EnchantmentHelper.func_151385_b((LivingEntity) this.shootingEntity, entitylivingbase); +// EnchantmentHelper.doPostHurtEffects(entitylivingbase, this.shootingEntity); +// EnchantmentHelper.doPostDamageEffects((LivingEntity) this.shootingEntity, entitylivingbase); // } // // if (this.shootingEntity != null && traceResult.entityHit != this.shootingEntity && traceResult.entityHit instanceof PlayerEntity && this.shootingEntity instanceof ServerPlayerEntity) { @@ -289,7 +289,7 @@ public LivingEntity getExplosivePlacedBy() { } // this.playSound("random.bowhit", 1.0F, 1.2F / (this.rand.nextFloat() * 0.2F + 0.9F)); - playSound(SoundEvents.ENTITY_ARROW_HIT, 1.0F, 1.2F / (rand.nextFloat() * 0.2F + 0.9F)); + playSound(SoundEvents.ARROW_HIT, 1.0F, 1.2F / (random.nextFloat() * 0.2F + 0.9F)); this.remove(); } @@ -323,8 +323,8 @@ public LivingEntity getExplosivePlacedBy() { private DamageSource getDamageSource() { if (bowProperties.energyBolt) { - return new IndirectEntityDamageSource("customArrowEnergy", this, func_234616_v_() != null ? func_234616_v_() : this).setProjectile().setDamageIsAbsolute(); + return new IndirectEntityDamageSource("customArrowEnergy", this, getOwner() != null ? getOwner() : this).setProjectile().bypassMagic(); } - else return DamageSource.causeArrowDamage(this, func_234616_v_() != null ? func_234616_v_() : this); + else return DamageSource.arrow(this, getOwner() != null ? getOwner() : this); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/EntityDragonHeart.java b/src/main/java/com/brandon3055/draconicevolution/entity/EntityDragonHeart.java index d3be2fba6..b79225bce 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/EntityDragonHeart.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/EntityDragonHeart.java @@ -19,7 +19,7 @@ */ public class EntityDragonHeart extends Entity { - private static final DataParameter AGE = EntityDataManager.createKey(EntityDragonHeart.class, DataSerializers.VARINT); + private static final DataParameter AGE = EntityDataManager.defineId(EntityDragonHeart.class, DataSerializers.INT); public float rotation = 0f; public float rotationInc = 0; public ItemStack renderStack = new ItemStack(DEContent.dragon_heart); @@ -44,27 +44,27 @@ public EntityDragonHeart(EntityType entityTypeIn, World worldIn) { // } @Override - public boolean isInRangeToRenderDist(double distance) { + public boolean shouldRenderAtSqrDistance(double distance) { return true; } @Override - protected void registerData() { + protected void defineSynchedData() { } @Override - protected void readAdditional(CompoundNBT compound) { + protected void readAdditionalSaveData(CompoundNBT compound) { } @Override - protected void writeAdditional(CompoundNBT compound) { + protected void addAdditionalSaveData(CompoundNBT compound) { } @Override - public IPacket createSpawnPacket() { + public IPacket getAddEntityPacket() { return null; } @@ -74,7 +74,7 @@ public IPacket createSpawnPacket() { // } @Override - public boolean attackEntityFrom(DamageSource damageSource, float dmg) { + public boolean hurt(DamageSource damageSource, float dmg) { return false; } @@ -141,17 +141,17 @@ public boolean attackEntityFrom(DamageSource damageSource, float dmg) { // } @Override - public void onCollideWithPlayer(PlayerEntity player) { + public void playerTouch(PlayerEntity player) { if (getAge() < 1200) { //setAge(1200); } } public int getAge() { - return dataManager.get(AGE); + return entityData.get(AGE); } public void setAge(int age) { - dataManager.set(AGE, age); + entityData.set(AGE, age); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/EntityEnderEnergyManipulator.java b/src/main/java/com/brandon3055/draconicevolution/entity/EntityEnderEnergyManipulator.java index 0e459f878..700c2396e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/EntityEnderEnergyManipulator.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/EntityEnderEnergyManipulator.java @@ -29,7 +29,7 @@ public class EntityEnderEnergyManipulator extends LivingEntity { public EnderDragonEntity dragon = null; private DragonFightManager fightManager = null; private LinkedList deadCrystals = new LinkedList<>(); - public static final DataParameter STAGE = EntityDataManager.createKey(EntityEnderEnergyManipulator.class, DataSerializers.VARINT); + public static final DataParameter STAGE = EntityDataManager.defineId(EntityEnderEnergyManipulator.class, DataSerializers.INT); private BlockPos exitPortalLocation = null; public EntityEnderEnergyManipulator(EntityType type, World p_i48577_2_) { @@ -49,11 +49,11 @@ public EntityEnderEnergyManipulator(EntityType type, Wor // } public Stage getStage() { - return Stage.getStageByID(dataManager.get(STAGE)); + return Stage.getStageByID(entityData.get(STAGE)); } public void setStage(Stage stage) { - dataManager.set(STAGE, stage.getStageID()); + entityData.set(STAGE, stage.getStageID()); } // @Override @@ -364,54 +364,54 @@ public void setStage(Stage stage) { @Override - public void readAdditional(CompoundNBT compound) { - super.readAdditional(compound); + public void readAdditionalSaveData(CompoundNBT compound) { + super.readAdditionalSaveData(compound); soulsCollected = compound.getInt("SoulsCollected"); } @Override - public void writeAdditional(CompoundNBT compound) { - super.writeAdditional(compound); + public void addAdditionalSaveData(CompoundNBT compound) { + super.addAdditionalSaveData(compound); compound.putInt("SoulsCollected", soulsCollected); } //region Entity Inventory @Override - public Iterable getArmorInventoryList() { + public Iterable getArmorSlots() { return Collections.emptyList(); } @Nullable @Override - public ItemStack getItemStackFromSlot(EquipmentSlotType slotIn) { + public ItemStack getItemBySlot(EquipmentSlotType slotIn) { return ItemStack.EMPTY; } @Override - public void setItemStackToSlot(EquipmentSlotType slotIn, @Nullable ItemStack stack) { + public void setItemSlot(EquipmentSlotType slotIn, @Nullable ItemStack stack) { } //endregion @Override - public HandSide getPrimaryHand() { + public HandSide getMainArm() { return HandSide.RIGHT; } @Override - protected boolean isMovementBlocked() { + protected boolean isImmobile() { return true; } @Override - public boolean canBeCollidedWith() { + public boolean isPickable() { return false; } @Override - public boolean canBePushed() { + public boolean isPushable() { return false; } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/EntityLootCore.java b/src/main/java/com/brandon3055/draconicevolution/entity/EntityLootCore.java index 812410665..5e509fc90 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/EntityLootCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/EntityLootCore.java @@ -40,12 +40,12 @@ public EntityLootCore(EntityType entityTypeIn, World worldIn) { } @Override - protected void registerData() { + protected void defineSynchedData() { } @Override - public IPacket createSpawnPacket() { + public IPacket getAddEntityPacket() { return null; } @@ -64,7 +64,7 @@ public IPacket createSpawnPacket() { // } @Override - public boolean canBeCollidedWith() { + public boolean isPickable() { return true; } @@ -74,7 +74,7 @@ public boolean canBeCollidedWith() { @Override public void tick() { - if (world.isRemote) { + if (level.isClientSide) { if (isLooking && lookAnimation < 1F) { lookAnimation += 0.05F; } @@ -116,8 +116,8 @@ else if (canDespawn && despawnTimer++ > lifespan) { // } @Override - public void onCollideWithPlayer(PlayerEntity player) { - if (world.isRemote) { + public void playerTouch(PlayerEntity player) { + if (level.isClientSide) { return; } @@ -136,25 +136,25 @@ public void onCollideWithPlayer(PlayerEntity player) { boolean inserted = false; - for (int i = inventory.getSizeInventory() - 1; i >= 0; i--) { - ItemStack stack = inventory.getStackInSlot(i); + for (int i = inventory.getContainerSize() - 1; i >= 0; i--) { + ItemStack stack = inventory.getItem(i); if (!stack.isEmpty()) { int start = stack.getCount(); - ItemEntity item = new ItemEntity(world, 0, 0, 0, stack); - item.setPosition(getPosX(), getPosY(), getPosZ()); + ItemEntity item = new ItemEntity(level, 0, 0, 0, stack); + item.setPos(getX(), getY(), getZ()); int result = ForgeEventFactory.onItemPickup(item, player); - if (result == 1 || stack.getCount() <= 0 || player.inventory.addItemStackToInventory(stack)) { + if (result == 1 || stack.getCount() <= 0 || player.inventory.add(stack)) { if (!item.isAlive()) { stack.setCount(0); } if (stack.getCount() == 0) { - inventory.setInventorySlotContents(i, ItemStack.EMPTY); + inventory.setItem(i, ItemStack.EMPTY); } else { - inventory.setInventorySlotContents(i, stack); + inventory.setItem(i, stack); } if (stack.getCount() < start) { @@ -165,33 +165,33 @@ public void onCollideWithPlayer(PlayerEntity player) { } if (inserted) { - this.world.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.0F) * 2.0F); + this.level.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((this.random.nextFloat() - this.random.nextFloat()) * 0.7F + 1.0F) * 2.0F); updateStored(); } pickupDellay = 10; - if (inventory.getSizeInventory() == 1 && inventory.getStackInSlot(0).isEmpty()) { + if (inventory.getContainerSize() == 1 && inventory.getItem(0).isEmpty()) { remove(); } } private void updateStored() { - if (world.isRemote) { + if (level.isClientSide) { return; } displayMap = new HashMap<>(); - for (int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack insert = inventory.getStackInSlot(i); + for (int i = 0; i < inventory.getContainerSize(); i++) { + ItemStack insert = inventory.getItem(i); if (insert.isEmpty()) { continue; } boolean added = false; for (ItemStack stack : displayMap.keySet()) { - if (insert.isItemEqual(stack) && ItemStack.areItemStackTagsEqual(insert, stack)) { + if (insert.sameItem(stack) && ItemStack.tagMatches(insert, stack)) { added = true; displayMap.put(stack, displayMap.get(stack) + insert.getCount()); break; @@ -212,20 +212,20 @@ private void updateStored() { private List trackingPlayers = new ArrayList<>(); @Override - public void addTrackingPlayer(ServerPlayerEntity player) { + public void startSeenByPlayer(ServerPlayerEntity player) { trackingPlayers.add(player); // DraconicEvolution.network.sendTo(new PacketLootSync(getEntityId(), displayMap), player); - super.addTrackingPlayer(player); + super.startSeenByPlayer(player); } @Override - public void removeTrackingPlayer(ServerPlayerEntity player) { + public void stopSeenByPlayer(ServerPlayerEntity player) { trackingPlayers.remove(player); - super.removeTrackingPlayer(player); + super.stopSeenByPlayer(player); } @Override - protected void readAdditional(CompoundNBT compound) { + protected void readAdditionalSaveData(CompoundNBT compound) { inventory.readFromNBT(compound); updateStored(); despawnTimer = compound.getInt("DespawnTimer"); @@ -234,7 +234,7 @@ protected void readAdditional(CompoundNBT compound) { } @Override - protected void writeAdditional(CompoundNBT compound) { + protected void addAdditionalSaveData(CompoundNBT compound) { inventory.writeToNBT(compound); compound.putInt("DespawnTimer", despawnTimer); compound.putInt("Lifespan", lifespan); diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/GuardianCrystalEntity.java b/src/main/java/com/brandon3055/draconicevolution/entity/GuardianCrystalEntity.java index 7dc8bca12..507f2c4bc 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/GuardianCrystalEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/GuardianCrystalEntity.java @@ -30,21 +30,21 @@ import java.util.UUID; public class GuardianCrystalEntity extends Entity { - private static final DataParameter> BEAM_TARGET = EntityDataManager.createKey(GuardianCrystalEntity.class, DataSerializers.OPTIONAL_BLOCK_POS); - private static final DataParameter SHOW_BOTTOM = EntityDataManager.createKey(GuardianCrystalEntity.class, DataSerializers.BOOLEAN); + private static final DataParameter> BEAM_TARGET = EntityDataManager.defineId(GuardianCrystalEntity.class, DataSerializers.OPTIONAL_BLOCK_POS); + private static final DataParameter SHOW_BOTTOM = EntityDataManager.defineId(GuardianCrystalEntity.class, DataSerializers.BOOLEAN); private UUID managerId; public int innerRotation; public GuardianCrystalEntity(EntityType type, World world) { super(type, world); - this.preventEntitySpawning = true; - this.innerRotation = this.rand.nextInt(100000); + this.blocksBuilding = true; + this.innerRotation = this.random.nextInt(100000); } public GuardianCrystalEntity(World worldIn, double x, double y, double z, UUID managerId) { this(DEContent.guardianCrystal, worldIn); this.managerId = managerId; - this.setPosition(x, y, z); + this.setPos(x, y, z); } public UUID getManagerId() { @@ -56,39 +56,39 @@ public void setManagerId(UUID managerId) { } @Override - protected boolean canTriggerWalking() { + protected boolean isMovementNoisy() { return false; } @Override - protected void registerData() { - this.getDataManager().register(BEAM_TARGET, Optional.empty()); - this.getDataManager().register(SHOW_BOTTOM, true); + protected void defineSynchedData() { + this.getEntityData().define(BEAM_TARGET, Optional.empty()); + this.getEntityData().define(SHOW_BOTTOM, true); } @Override public void tick() { ++this.innerRotation; - if (this.world instanceof ServerWorld) { - BlockPos blockpos = this.getPosition(); - if (((ServerWorld)this.world).func_241110_C_() != null && this.world.getBlockState(blockpos).isAir()) { - this.world.setBlockState(blockpos, AbstractFireBlock.getFireForPlacement(this.world, blockpos)); + if (this.level instanceof ServerWorld) { + BlockPos blockpos = this.blockPosition(); + if (((ServerWorld)this.level).dragonFight() != null && this.level.getBlockState(blockpos).isAir()) { + this.level.setBlockAndUpdate(blockpos, AbstractFireBlock.getState(this.level, blockpos)); } } } @Override - protected void writeAdditional(CompoundNBT compound) { + protected void addAdditionalSaveData(CompoundNBT compound) { if (this.getBeamTarget() != null) { compound.put("BeamTarget", NBTUtil.writeBlockPos(this.getBeamTarget())); } compound.putBoolean("ShowBottom", this.shouldShowBottom()); - compound.putUniqueId("manager_id", managerId); + compound.putUUID("manager_id", managerId); } @Override - protected void readAdditional(CompoundNBT compound) { + protected void readAdditionalSaveData(CompoundNBT compound) { if (compound.contains("BeamTarget", 10)) { this.setBeamTarget(NBTUtil.readBlockPos(compound.getCompound("BeamTarget"))); } @@ -96,25 +96,25 @@ protected void readAdditional(CompoundNBT compound) { if (compound.contains("ShowBottom", 1)) { this.setShowBottom(compound.getBoolean("ShowBottom")); } - managerId = compound.getUniqueId("manager_id"); + managerId = compound.getUUID("manager_id"); } @Override - public boolean canBeCollidedWith() { + public boolean isPickable() { return true; } @Override - public boolean attackEntityFrom(DamageSource source, float amount) { + public boolean hurt(DamageSource source, float amount) { if (this.isInvulnerableTo(source)) { return false; - } else if (source.getTrueSource() instanceof EnderDragonEntity) { + } else if (source.getEntity() instanceof EnderDragonEntity) { return false; } else { - if (!this.removed && !this.world.isRemote) { + if (!this.removed && !this.level.isClientSide) { this.remove(); if (!source.isExplosion()) { - this.world.createExplosion((Entity)null, this.getPosX(), this.getPosY(), this.getPosZ(), 10.0F, Explosion.Mode.DESTROY); + this.level.explode((Entity)null, this.getX(), this.getY(), this.getZ(), 10.0F, Explosion.Mode.DESTROY); } this.onCrystalDestroyed(source); @@ -125,14 +125,14 @@ public boolean attackEntityFrom(DamageSource source, float amount) { } @Override - public void onKillCommand() { + public void kill() { this.onCrystalDestroyed(DamageSource.GENERIC); - super.onKillCommand(); + super.kill(); } private void onCrystalDestroyed(DamageSource source) { - if (world instanceof ServerWorld && managerId != null) { - WorldEntity worldEntity = WorldEntityHandler.getWorldEntity(world, managerId); + if (level instanceof ServerWorld && managerId != null) { + WorldEntity worldEntity = WorldEntityHandler.getWorldEntity(level, managerId); if (worldEntity instanceof GuardianFightManager) { ((GuardianFightManager) worldEntity).onCrystalDestroyed(this, source); } @@ -141,30 +141,30 @@ private void onCrystalDestroyed(DamageSource source) { } public void setBeamTarget(@Nullable BlockPos beamTarget) { - this.getDataManager().set(BEAM_TARGET, Optional.ofNullable(beamTarget)); + this.getEntityData().set(BEAM_TARGET, Optional.ofNullable(beamTarget)); } @Nullable public BlockPos getBeamTarget() { - return this.getDataManager().get(BEAM_TARGET).orElse((BlockPos)null); + return this.getEntityData().get(BEAM_TARGET).orElse((BlockPos)null); } public void setShowBottom(boolean showBottom) { - this.getDataManager().set(SHOW_BOTTOM, showBottom); + this.getEntityData().set(SHOW_BOTTOM, showBottom); } public boolean shouldShowBottom() { - return this.getDataManager().get(SHOW_BOTTOM); + return this.getEntityData().get(SHOW_BOTTOM); } @Override @OnlyIn(Dist.CLIENT) - public boolean isInRangeToRenderDist(double distance) { - return super.isInRangeToRenderDist(distance) || this.getBeamTarget() != null; + public boolean shouldRenderAtSqrDistance(double distance) { + return super.shouldRenderAtSqrDistance(distance) || this.getBeamTarget() != null; } @Override - public IPacket createSpawnPacket() { + public IPacket getAddEntityPacket() { return NetworkHooks.getEntitySpawningPacket(this); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/GuardianProjectileEntity.java b/src/main/java/com/brandon3055/draconicevolution/entity/GuardianProjectileEntity.java index 5b63d8556..9e9a44a22 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/GuardianProjectileEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/GuardianProjectileEntity.java @@ -31,7 +31,7 @@ public class GuardianProjectileEntity extends DamagingProjectileEntity implement private Vector3d target; private double splashRange = 15; private double power = 10; - private DamageSource damageSource = new DamageSource("damage.draconicevolution.guardian_projectile").setDamageIsAbsolute().setDamageBypassesArmor().setMagicDamage().setExplosion(); + private DamageSource damageSource = new DamageSource("damage.draconicevolution.guardian_projectile").bypassMagic().bypassArmor().setMagic().setExplosion(); private double closestApproach; public GuardianProjectileEntity(EntityType type, World world) { @@ -43,24 +43,24 @@ public GuardianProjectileEntity(World worldIn, LivingEntity shooter, double acce this.target = target; this.splashRange = splashRange; this.power = power; - this.damageSource = new IndirectEntityDamageSource("draconicevolution.guardian_projectile", this, shooter).setDamageIsAbsolute().setDamageBypassesArmor().setMagicDamage().setExplosion(); + this.damageSource = new IndirectEntityDamageSource("draconicevolution.guardian_projectile", this, shooter).bypassMagic().bypassArmor().setMagic().setExplosion(); if (target != null) { - closestApproach = getDistanceSq(target); + closestApproach = distanceToSqr(target); } double accelDotProduct = MathHelper.sqrt(accelX * accelX + accelY * accelY + accelZ * accelZ); if (accelDotProduct != 0.0D) { - this.accelerationX = accelX / accelDotProduct * 0.3D; - this.accelerationY = accelY / accelDotProduct * 0.3D; - this.accelerationZ = accelZ / accelDotProduct * 0.3D; + this.xPower = accelX / accelDotProduct * 0.3D; + this.yPower = accelY / accelDotProduct * 0.3D; + this.zPower = accelZ / accelDotProduct * 0.3D; } } @Override - protected void onImpact(RayTraceResult result) { - super.onImpact(result); - Entity shooter = this.func_234616_v_(); - if (result.getType() != RayTraceResult.Type.ENTITY || !((EntityRayTraceResult) result).getEntity().isEntityEqual(shooter)) { - if (!this.world.isRemote) { + protected void onHit(RayTraceResult result) { + super.onHit(result); + Entity shooter = this.getOwner(); + if (result.getType() != RayTraceResult.Type.ENTITY || !((EntityRayTraceResult) result).getEntity().is(shooter)) { + if (!this.level.isClientSide) { detonate(); } } @@ -70,58 +70,58 @@ protected void onImpact(RayTraceResult result) { public void tick() { super.tick(); if (target != null) { - double distSq = getDistanceSq(target); + double distSq = distanceToSqr(target); if (distSq <= 1) { detonate(); } else if (distSq < closestApproach) { closestApproach = distSq; - } else if (ticksExisted > 5){ + } else if (tickCount > 5){ detonate(); } } } private void detonate() { - List list = world.getEntitiesWithinAABB(LivingEntity.class, getBoundingBox().grow(splashRange), EntityPredicates.CAN_AI_TARGET); - Entity shooter = this.func_234616_v_(); + List list = level.getEntitiesOfClass(LivingEntity.class, getBoundingBox().inflate(splashRange), EntityPredicates.NO_CREATIVE_OR_SPECTATOR); + Entity shooter = this.getOwner(); for (LivingEntity entity : list) { if (entity == shooter) continue; - double distance = entity.getDistance(this); + double distance = entity.distanceTo(this); double df = (1D - (distance / power)); if (df <= 0) { continue; } - df *= Explosion.getBlockDensity(getPositionVec(), entity); + df *= Explosion.getSeenPercent(position(), entity); float damage = (float) ((int) ((df * df + df) / 2.0D * 6.0D * power + 1.0D)); - entity.attackEntityFrom(damageSource, damage); + entity.hurt(damageSource, damage); } - DraconicNetwork.sendImpactEffect(world, getPosition(), 0); - BCoreNetwork.sendSound(world, getPosition(), SoundEvents.ENTITY_GENERIC_EXPLODE, SoundCategory.HOSTILE, 10, rand.nextFloat() * 0.1F + 0.9F, false); + DraconicNetwork.sendImpactEffect(level, blockPosition(), 0); + BCoreNetwork.sendSound(level, blockPosition(), SoundEvents.GENERIC_EXPLODE, SoundCategory.HOSTILE, 10, random.nextFloat() * 0.1F + 0.9F, false); this.remove(); } @Override - public boolean canBeCollidedWith() { + public boolean isPickable() { return false; } @Override - public boolean attackEntityFrom(DamageSource source, float amount) { + public boolean hurt(DamageSource source, float amount) { return false; } @Override - protected IParticleData getParticle() { + protected IParticleData getTrailParticle() { return ParticleTypes.DRAGON_BREATH; } @Override - protected boolean isFireballFiery() { + protected boolean shouldBurn() { return false; } @Override - public IPacket createSpawnPacket() { + public IPacket getAddEntityPacket() { return NetworkHooks.getEntitySpawningPacket(this); } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/PersistentItemEntity.java b/src/main/java/com/brandon3055/draconicevolution/entity/PersistentItemEntity.java index 17053fafb..53c3191b1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/PersistentItemEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/PersistentItemEntity.java @@ -21,24 +21,24 @@ public PersistentItemEntity(EntityType type, World world) public PersistentItemEntity(World world, double x, double y, double z) { super(DEContent.persistentItem, world); - this.setPosition(x, y, z); + this.setPos(x, y, z); } public PersistentItemEntity(World world, double x, double y, double z, ItemStack stack) { super(DEContent.persistentItem, world); - this.setPosition(x, y, z); + this.setPos(x, y, z); this.setItem(stack); } public PersistentItemEntity(World world, Entity location, ItemStack itemstack) { super(DEContent.persistentItem, world); this.setItem(itemstack); - this.setPosition(location.getPosX(), location.getPosY(), location.getPosZ()); - this.setMotion(location.getMotion()); + this.setPos(location.getX(), location.getY(), location.getZ()); + this.setDeltaMovement(location.getDeltaMovement()); if (location instanceof ItemEntity){ - this.setPickupDelay(((ItemEntity)location).pickupDelay); + this.setPickUpDelay(((ItemEntity)location).pickupDelay); }else { - this.setDefaultPickupDelay(); + this.setDefaultPickUpDelay(); } } @@ -54,7 +54,7 @@ public boolean isInvulnerableTo(DamageSource source) { } @Override - public IPacket createSpawnPacket() { + public IPacket getAddEntityPacket() { return NetworkHooks.getEntitySpawningPacket(this); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/ProcessChaosImplosion.java b/src/main/java/com/brandon3055/draconicevolution/entity/ProcessChaosImplosion.java index 7956a87fb..94b213ef7 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/ProcessChaosImplosion.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/ProcessChaosImplosion.java @@ -18,7 +18,7 @@ */ public class ProcessChaosImplosion implements IProcess { - public static DamageSource chaosImplosion = new DamageSource("chaosImplosion").setExplosion().setDamageBypassesArmor().setDamageIsAbsolute(); + public static DamageSource chaosImplosion = new DamageSource("chaosImplosion").setExplosion().bypassArmor().bypassMagic(); private World world; private int xCoord; @@ -35,7 +35,7 @@ public ProcessChaosImplosion(World world, int x, int y, int z) { this.yCoord = y; this.zCoord = z; this.power = 30F; - isDead = world.isRemote; + isDead = world.isClientSide; } @Override @@ -90,8 +90,8 @@ public void updateProcess() { float energy = power * 10; for (int y = yCoord; y >= 0 && energy > 0; y--) { - List entities = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(xCoord, y, zCoord, xCoord + 1, y + 1, zCoord + 1)); - for (Entity entity : entities) entity.attackEntityFrom(ProcessChaosImplosion.chaosImplosion, power * 100); + List entities = world.getEntitiesOfClass(Entity.class, new AxisAlignedBB(xCoord, y, zCoord, xCoord + 1, y + 1, zCoord + 1)); + for (Entity entity : entities) entity.hurt(ProcessChaosImplosion.chaosImplosion, power * 100); //energy -= block instanceof BlockLiquid ? 10 : block.getExplosionResistance(null); @@ -102,10 +102,10 @@ public void updateProcess() { energy = power * 20; yCoord++; for (int y = yCoord; y < 255 && energy > 0; y++) { - List entities = world.getEntitiesWithinAABB(Entity.class, new AxisAlignedBB(xCoord, y, zCoord, xCoord + 1, y + 1, zCoord + 1)); + List entities = world.getEntitiesOfClass(Entity.class, new AxisAlignedBB(xCoord, y, zCoord, xCoord + 1, y + 1, zCoord + 1)); for (Entity entity : entities) { - entity.attackEntityFrom(DEDamageSources.CHAOS_ISLAND_IMPLOSION, power * 100); + entity.hurt(DEDamageSources.CHAOS_ISLAND_IMPLOSION, power * 100); } //energy -= block instanceof BlockLiquid ? 10 : block.getExplosionResistance(null); diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/DraconicGuardianEntity.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/DraconicGuardianEntity.java index 1de5a6926..dfaa2d45a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/DraconicGuardianEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/DraconicGuardianEntity.java @@ -52,10 +52,10 @@ public class DraconicGuardianEntity extends MobEntity implements IMob { private static final Logger LOGGER = DraconicEvolution.LOGGER; - public static final DataParameter PHASE = EntityDataManager.createKey(DraconicGuardianEntity.class, DataSerializers.VARINT); - public static final DataParameter CRYSTAL_ID = EntityDataManager.createKey(DraconicGuardianEntity.class, DataSerializers.VARINT); - public static final DataParameter SHIELD_STATE = EntityDataManager.createKey(DraconicGuardianEntity.class, DataSerializers.VARINT); - private static final EntityPredicate PLAYER_INVADER_CONDITION = (new EntityPredicate()).setDistance(64.0D); + public static final DataParameter PHASE = EntityDataManager.defineId(DraconicGuardianEntity.class, DataSerializers.INT); + public static final DataParameter CRYSTAL_ID = EntityDataManager.defineId(DraconicGuardianEntity.class, DataSerializers.INT); + public static final DataParameter SHIELD_STATE = EntityDataManager.defineId(DraconicGuardianEntity.class, DataSerializers.INT); + private static final EntityPredicate PLAYER_INVADER_CONDITION = (new EntityPredicate()).range(64.0D); public final double[][] ringBuffer = new double[64][3]; public int ringBufferIndex = -1; private final DraconicGuardianPartEntity[] dragonParts; @@ -71,7 +71,7 @@ public class DraconicGuardianEntity extends MobEntity implements IMob { public float animTime; public boolean slowed; public int deathTicks; - public float field_226525_bB_; + public float yRotA; @Nullable public GuardianCrystalEntity closestGuardianCrystal; @Nullable @@ -97,13 +97,13 @@ public DraconicGuardianEntity(EntityType type, World world) { this.dragonPartLeftWing = new DraconicGuardianPartEntity(this, "wing", 4.0F, 2.0F); this.dragonParts = new DraconicGuardianPartEntity[]{this.dragonPartHead, this.dragonPartNeck, this.dragonPartBody, this.dragonPartTail1, this.dragonPartTail2, this.dragonPartTail3, this.dragonPartRightWing, this.dragonPartLeftWing}; this.setHealth(this.getMaxHealth()); - this.noClip = true; - this.ignoreFrustumCheck = true; + this.noPhysics = true; + this.noCulling = true; this.phaseManager = new PhaseManager(this); } @Override - public void applyKnockback(float strength, double ratioX, double ratioZ) { + public void knockback(float strength, double ratioX, double ratioZ) { // super.applyKnockback(strength, ratioX, ratioZ); //NO! } @@ -120,19 +120,19 @@ public BlockPos getArenaOrigin() { } public static AttributeModifierMap.MutableAttribute registerAttributes() { - return MobEntity.func_233666_p_().createMutableAttribute(Attributes.MAX_HEALTH, 200.0D); + return MobEntity.createMobAttributes().add(Attributes.MAX_HEALTH, 200.0D); } @Override - protected void registerData() { - super.registerData(); - this.getDataManager().register(PHASE, PhaseType.HOVER.getId()); - this.getDataManager().register(CRYSTAL_ID, -1); - this.getDataManager().register(SHIELD_STATE, 500); + protected void defineSynchedData() { + super.defineSynchedData(); + this.getEntityData().define(PHASE, PhaseType.HOVER.getId()); + this.getEntityData().define(CRYSTAL_ID, -1); + this.getEntityData().define(SHIELD_STATE, 500); } public double[] getMovementOffsets(int index, float partialTicks) { - if (this.getShouldBeDead()) { + if (this.isDeadOrDying()) { partialTicks = 0.0F; } @@ -151,21 +151,21 @@ public double[] getMovementOffsets(int index, float partialTicks) { } @Override - public void livingTick() { + public void aiStep() { speedMult = codechicken.lib.math.MathHelper.approachLinear(speedMult, phaseManager.getCurrentPhase().getGuardianSpeed(), 0.1); // phaseManager.setPhase(PhaseType.START); - if (this.world.isRemote) { + if (this.level.isClientSide) { this.setHealth(this.getHealth()); if (!this.isSilent()) { float f = MathHelper.cos(this.animTime * ((float) Math.PI * 2F)); float f1 = MathHelper.cos(this.prevAnimTime * ((float) Math.PI * 2F)); if (f1 <= -0.3F && f >= -0.3F) { - this.world.playSound(this.getPosX(), this.getPosY(), this.getPosZ(), SoundEvents.ENTITY_ENDER_DRAGON_FLAP, this.getSoundCategory(), 5.0F, 0.8F + this.rand.nextFloat() * 0.3F, false); + this.level.playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEvents.ENDER_DRAGON_FLAP, this.getSoundSource(), 5.0F, 0.8F + this.random.nextFloat() * 0.3F, false); } if (!this.phaseManager.getCurrentPhase().getIsStationary() && --this.growlTime < 0) { - this.world.playSound(this.getPosX(), this.getPosY(), this.getPosZ(), SoundEvents.ENTITY_ENDER_DRAGON_GROWL, this.getSoundCategory(), 2.5F, 0.8F + this.rand.nextFloat() * 0.3F, false); - this.growlTime = 200 + this.rand.nextInt(200); + this.level.playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEvents.ENDER_DRAGON_GROWL, this.getSoundSource(), 2.5F, 0.8F + this.random.nextFloat() * 0.3F, false); + this.growlTime = 200 + this.random.nextInt(200); } } } else { @@ -173,15 +173,15 @@ public void livingTick() { } this.prevAnimTime = this.animTime; - if (this.getShouldBeDead()) { - float randX = (this.rand.nextFloat() - 0.5F) * 8.0F; - float randY = (this.rand.nextFloat() - 0.5F) * 4.0F; - float randZ = (this.rand.nextFloat() - 0.5F) * 8.0F; - this.world.addParticle(ParticleTypes.EXPLOSION, this.getPosX() + (double) randX, this.getPosY() + 2.0D + (double) randY, this.getPosZ() + (double) randZ, 0.0D, 0.0D, 0.0D); + if (this.isDeadOrDying()) { + float randX = (this.random.nextFloat() - 0.5F) * 8.0F; + float randY = (this.random.nextFloat() - 0.5F) * 4.0F; + float randZ = (this.random.nextFloat() - 0.5F) * 8.0F; + this.level.addParticle(ParticleTypes.EXPLOSION, this.getX() + (double) randX, this.getY() + 2.0D + (double) randY, this.getZ() + (double) randZ, 0.0D, 0.0D, 0.0D); } else { this.updateDragonEnderCrystal(); - Vector3d vector3d4 = this.getMotion(); - float f12 = 0.2F / (MathHelper.sqrt(horizontalMag(vector3d4)) * 10.0F + 1.0F); + Vector3d vector3d4 = this.getDeltaMovement(); + float f12 = 0.2F / (MathHelper.sqrt(getHorizontalDistanceSqr(vector3d4)) * 10.0F + 1.0F); f12 = f12 * (float) Math.pow(2.0D, vector3d4.y); if (this.phaseManager.getCurrentPhase().getIsStationary()) { this.animTime += 0.1F; @@ -191,14 +191,14 @@ public void livingTick() { this.animTime += f12; } - this.rotationYaw = MathHelper.wrapDegrees(this.rotationYaw); - if (this.isAIDisabled()) { + this.yRot = MathHelper.wrapDegrees(this.yRot); + if (this.isNoAi()) { this.animTime = 0.5F; } else { if (this.ringBufferIndex < 0) { for (int i = 0; i < this.ringBuffer.length; ++i) { - this.ringBuffer[i][0] = this.rotationYaw; - this.ringBuffer[i][1] = this.getPosY(); + this.ringBuffer[i][0] = this.yRot; + this.ringBuffer[i][1] = this.getY(); } } @@ -206,19 +206,19 @@ public void livingTick() { this.ringBufferIndex = 0; } - this.ringBuffer[this.ringBufferIndex][0] = this.rotationYaw; - this.ringBuffer[this.ringBufferIndex][1] = this.getPosY(); - if (this.world.isRemote) { - if (this.newPosRotationIncrements > 0) { - double d7 = this.getPosX() + (this.interpTargetX - this.getPosX()) / (double) this.newPosRotationIncrements; - double d0 = this.getPosY() + (this.interpTargetY - this.getPosY()) / (double) this.newPosRotationIncrements; - double d1 = this.getPosZ() + (this.interpTargetZ - this.getPosZ()) / (double) this.newPosRotationIncrements; - double d2 = MathHelper.wrapDegrees(this.interpTargetYaw - (double) this.rotationYaw); - this.rotationYaw = (float) ((double) this.rotationYaw + d2 / (double) this.newPosRotationIncrements); - this.rotationPitch = (float) ((double) this.rotationPitch + (this.interpTargetPitch - (double) this.rotationPitch) / (double) this.newPosRotationIncrements); - --this.newPosRotationIncrements; - this.setPosition(d7, d0, d1); - this.setRotation(this.rotationYaw, this.rotationPitch); + this.ringBuffer[this.ringBufferIndex][0] = this.yRot; + this.ringBuffer[this.ringBufferIndex][1] = this.getY(); + if (this.level.isClientSide) { + if (this.lerpSteps > 0) { + double d7 = this.getX() + (this.lerpX - this.getX()) / (double) this.lerpSteps; + double d0 = this.getY() + (this.lerpY - this.getY()) / (double) this.lerpSteps; + double d1 = this.getZ() + (this.lerpZ - this.getZ()) / (double) this.lerpSteps; + double d2 = MathHelper.wrapDegrees(this.lerpYRot - (double) this.yRot); + this.yRot = (float) ((double) this.yRot + d2 / (double) this.lerpSteps); + this.xRot = (float) ((double) this.xRot + (this.lerpXRot - (double) this.xRot) / (double) this.lerpSteps); + --this.lerpSteps; + this.setPos(d7, d0, d1); + this.setRot(this.yRot, this.xRot); } this.phaseManager.getCurrentPhase().clientTick(); @@ -232,9 +232,9 @@ public void livingTick() { Vector3d targetLocation = iphase.getTargetLocation(); if (targetLocation != null) { - double tRelX = targetLocation.x - this.getPosX(); - double tRelY = targetLocation.y - this.getPosY(); - double tRelZ = targetLocation.z - this.getPosZ(); + double tRelX = targetLocation.x - this.getX(); + double tRelY = targetLocation.y - this.getY(); + double tRelZ = targetLocation.z - this.getZ(); double distanceSq = tRelX * tRelX + tRelY * tRelY + tRelZ * tRelZ; float maxRiseOrFall = iphase.getMaxRiseOrFall(); double distanceXZ = MathHelper.sqrt(tRelX * tRelX + tRelZ * tRelZ); @@ -246,64 +246,64 @@ public void livingTick() { } } - this.setMotion(this.getMotion().add(0.0D, tRelY * 0.01D, 0.0D)); - this.rotationYaw = MathHelper.wrapDegrees(this.rotationYaw); + this.setDeltaMovement(this.getDeltaMovement().add(0.0D, tRelY * 0.01D, 0.0D)); + this.yRot = MathHelper.wrapDegrees(this.yRot); //Angle of target relative to current yaw clamped to +-50 - double relTargetAngle = MathHelper.clamp(MathHelper.wrapDegrees(180.0D - MathHelper.atan2(tRelX, tRelZ) * (double) (180F / (float) Math.PI) - (double) this.rotationYaw), -50.0D, 50.0D); + double relTargetAngle = MathHelper.clamp(MathHelper.wrapDegrees(180.0D - MathHelper.atan2(tRelX, tRelZ) * (double) (180F / (float) Math.PI) - (double) this.yRot), -50.0D, 50.0D); if (Math.abs(relTargetAngle) < 5) { relTargetAngle *= speedMult * 5; //This is a hack to help line up with the target better when traveling at higher than normal speed. } - Vector3d targetVector = targetLocation.subtract(this.getPosX(), this.getPosY(), this.getPosZ()).normalize(); + Vector3d targetVector = targetLocation.subtract(this.getX(), this.getY(), this.getZ()).normalize(); Vector3d vector3d2 = new Vector3d( - MathHelper.sin(this.rotationYaw * ((float) Math.PI / 180F)), - this.getMotion().y, - -MathHelper.cos(this.rotationYaw * ((float) Math.PI / 180F))) + MathHelper.sin(this.yRot * ((float) Math.PI / 180F)), + this.getDeltaMovement().y, + -MathHelper.cos(this.yRot * ((float) Math.PI / 180F))) .normalize(); - float f8 = Math.max(((float) vector3d2.dotProduct(targetVector) + 0.5F) / 1.5F, 0.0F); - this.field_226525_bB_ *= 0.8F; - this.field_226525_bB_ = (float) ((double) this.field_226525_bB_ + relTargetAngle * (double) iphase.getYawFactor()); - this.rotationYaw += this.field_226525_bB_ * 0.1F; + float f8 = Math.max(((float) vector3d2.dot(targetVector) + 0.5F) / 1.5F, 0.0F); + this.yRotA *= 0.8F; + this.yRotA = (float) ((double) this.yRotA + relTargetAngle * (double) iphase.getYawFactor()); + this.yRot += this.yRotA * 0.1F; float f9 = (float) (2.0D / (distanceSq + 1.0D)); float f10 = 0.06F; this.moveRelative(f10 * (f8 * f9 + (1.0F - f9)), new Vector3d(0.0D, 0.0D, -1D)); if (this.slowed) { - this.move(MoverType.SELF, this.getMotion().scale(0.8F).scale(speedMult)); + this.move(MoverType.SELF, this.getDeltaMovement().scale(0.8F).scale(speedMult)); } else { - this.move(MoverType.SELF, this.getMotion().scale(speedMult)); + this.move(MoverType.SELF, this.getDeltaMovement().scale(speedMult)); } - Vector3d vector3d3 = this.getMotion().normalize(); - double d6 = 0.8D + 0.15D * (vector3d3.dotProduct(vector3d2) + 1.0D) / 2.0D; - this.setMotion(this.getMotion().mul(d6, 0.91F, d6)); + Vector3d vector3d3 = this.getDeltaMovement().normalize(); + double d6 = 0.8D + 0.15D * (vector3d3.dot(vector3d2) + 1.0D) / 2.0D; + this.setDeltaMovement(this.getDeltaMovement().multiply(d6, 0.91F, d6)); } } - this.renderYawOffset = this.rotationYaw; + this.yBodyRot = this.yRot; Vector3d[] avector3d = new Vector3d[this.dragonParts.length]; for (int j = 0; j < this.dragonParts.length; ++j) { - avector3d[j] = new Vector3d(this.dragonParts[j].getPosX(), this.dragonParts[j].getPosY(), this.dragonParts[j].getPosZ()); + avector3d[j] = new Vector3d(this.dragonParts[j].getX(), this.dragonParts[j].getY(), this.dragonParts[j].getZ()); } float f15 = (float) (this.getMovementOffsets(5, 1.0F)[1] - this.getMovementOffsets(10, 1.0F)[1]) * 10.0F * ((float) Math.PI / 180F); float f16 = MathHelper.cos(f15); float f2 = MathHelper.sin(f15); - float f17 = this.rotationYaw * ((float) Math.PI / 180F); + float f17 = this.yRot * ((float) Math.PI / 180F); float f3 = MathHelper.sin(f17); float f18 = MathHelper.cos(f17); this.setPartPosition(this.dragonPartBody, f3 * 0.5F, 0.0D, -f18 * 0.5F); this.setPartPosition(this.dragonPartRightWing, f18 * 4.5F, 2.0D, f3 * 4.5F); this.setPartPosition(this.dragonPartLeftWing, f18 * -4.5F, 2.0D, f3 * -4.5F); - if (!this.world.isRemote && this.hurtTime == 0) { - this.collideWithEntities(this.world.getEntitiesInAABBexcluding(this, this.dragonPartRightWing.getBoundingBox().grow(4.0D, 2.0D, 4.0D).offset(0.0D, -2.0D, 0.0D), EntityPredicates.CAN_AI_TARGET)); - this.collideWithEntities(this.world.getEntitiesInAABBexcluding(this, this.dragonPartLeftWing.getBoundingBox().grow(4.0D, 2.0D, 4.0D).offset(0.0D, -2.0D, 0.0D), EntityPredicates.CAN_AI_TARGET)); - this.attackEntitiesInList(this.world.getEntitiesInAABBexcluding(this, this.dragonPartHead.getBoundingBox().grow(1.0D), EntityPredicates.CAN_AI_TARGET)); - this.attackEntitiesInList(this.world.getEntitiesInAABBexcluding(this, this.dragonPartNeck.getBoundingBox().grow(1.0D), EntityPredicates.CAN_AI_TARGET)); + if (!this.level.isClientSide && this.hurtTime == 0) { + this.collideWithEntities(this.level.getEntities(this, this.dragonPartRightWing.getBoundingBox().inflate(4.0D, 2.0D, 4.0D).move(0.0D, -2.0D, 0.0D), EntityPredicates.NO_CREATIVE_OR_SPECTATOR)); + this.collideWithEntities(this.level.getEntities(this, this.dragonPartLeftWing.getBoundingBox().inflate(4.0D, 2.0D, 4.0D).move(0.0D, -2.0D, 0.0D), EntityPredicates.NO_CREATIVE_OR_SPECTATOR)); + this.attackEntitiesInList(this.level.getEntities(this, this.dragonPartHead.getBoundingBox().inflate(1.0D), EntityPredicates.NO_CREATIVE_OR_SPECTATOR)); + this.attackEntitiesInList(this.level.getEntities(this, this.dragonPartNeck.getBoundingBox().inflate(1.0D), EntityPredicates.NO_CREATIVE_OR_SPECTATOR)); } - float f4 = MathHelper.sin(this.rotationYaw * ((float) Math.PI / 180F) - this.field_226525_bB_ * 0.01F); - float f19 = MathHelper.cos(this.rotationYaw * ((float) Math.PI / 180F) - this.field_226525_bB_ * 0.01F); + float f4 = MathHelper.sin(this.yRot * ((float) Math.PI / 180F) - this.yRotA * 0.01F); + float f19 = MathHelper.cos(this.yRot * ((float) Math.PI / 180F) - this.yRotA * 0.01F); float f5 = this.getHeadAndNeckYOffset(); this.setPartPosition(this.dragonPartHead, f4 * 6.5F * f16, f5 + f2 * 6.5F, -f19 * 6.5F * f16); this.setPartPosition(this.dragonPartNeck, f4 * 5.5F * f16, f5 + f2 * 5.5F, -f19 * 5.5F * f16); @@ -324,7 +324,7 @@ public void livingTick() { } double[] adouble1 = this.getMovementOffsets(12 + k * 2, 1.0F); - float f7 = this.rotationYaw * ((float) Math.PI / 180F) + this.simplifyAngle(adouble1[0] - adouble[0]) * ((float) Math.PI / 180F); + float f7 = this.yRot * ((float) Math.PI / 180F) + this.simplifyAngle(adouble1[0] - adouble[0]) * ((float) Math.PI / 180F); float f20 = MathHelper.sin(f7); float f21 = MathHelper.cos(f7); float f22 = 1.5F; @@ -332,7 +332,7 @@ public void livingTick() { this.setPartPosition(enderdragonpartentity, -(f3 * 1.5F + f20 * f23) * f16, adouble1[1] - adouble[1] - (double) ((f23 + 1.5F) * f2) + 1.5D, (f18 * 1.5F + f21 * f23) * f16); } - if (!this.world.isRemote) { + if (!this.level.isClientSide) { this.slowed = this.destroyBlocksInAABB(this.dragonPartHead.getBoundingBox()) | this.destroyBlocksInAABB(this.dragonPartNeck.getBoundingBox()) | this.destroyBlocksInAABB(this.dragonPartBody.getBoundingBox()); if (this.fightManager != null) { this.fightManager.guardianUpdate(this); @@ -340,12 +340,12 @@ public void livingTick() { } for (int l = 0; l < this.dragonParts.length; ++l) { - this.dragonParts[l].prevPosX = avector3d[l].x; - this.dragonParts[l].prevPosY = avector3d[l].y; - this.dragonParts[l].prevPosZ = avector3d[l].z; - this.dragonParts[l].lastTickPosX = avector3d[l].x; - this.dragonParts[l].lastTickPosY = avector3d[l].y; - this.dragonParts[l].lastTickPosZ = avector3d[l].z; + this.dragonParts[l].xo = avector3d[l].x; + this.dragonParts[l].yo = avector3d[l].y; + this.dragonParts[l].zo = avector3d[l].z; + this.dragonParts[l].xOld = avector3d[l].x; + this.dragonParts[l].yOld = avector3d[l].y; + this.dragonParts[l].zOld = avector3d[l].z; } } @@ -354,16 +354,16 @@ public void livingTick() { private void updateShieldState() { int target = 0; - if (getShouldBeDead()) { + if (isDeadOrDying()) { target = 0; } else if (fightManager != null && fightManager.getNumAliveCrystals() > 0) { target = 500; } - getDataManager().set(SHIELD_STATE, (int)Math.floor(codechicken.lib.math.MathHelper.approachLinear(getDataManager().get(SHIELD_STATE), target, 10))); + getEntityData().set(SHIELD_STATE, (int)Math.floor(codechicken.lib.math.MathHelper.approachLinear(getEntityData().get(SHIELD_STATE), target, 10))); } private void setPartPosition(DraconicGuardianPartEntity part, double offsetX, double offsetY, double offsetZ) { - part.setPosition(this.getPosX() + offsetX, this.getPosY() + offsetY, this.getPosZ() + offsetZ); + part.setPos(this.getX() + offsetX, this.getY() + offsetY, this.getZ() + offsetZ); } private float getHeadAndNeckYOffset() { @@ -380,20 +380,20 @@ private void updateDragonEnderCrystal() { if (closestGuardianCrystal != null) { if (!closestGuardianCrystal.isAlive()) { closestGuardianCrystal = null; - } else if (ticksExisted % 10 == 0 && getHealth() < getMaxHealth()) { + } else if (tickCount % 10 == 0 && getHealth() < getMaxHealth()) { setHealth(this.getHealth() + 1.0F); } } - if (this.rand.nextInt(10) == 0 && !world.isRemote) { + if (this.random.nextInt(10) == 0 && !level.isClientSide) { if (fightManager != null) { - closestGuardianCrystal = fightManager.getCrystals().stream().min(Comparator.comparingDouble(this::getDistanceSq)).orElse(null); + closestGuardianCrystal = fightManager.getCrystals().stream().min(Comparator.comparingDouble(this::distanceToSqr)).orElse(null); } else { - List list = this.world.getEntitiesWithinAABB(GuardianCrystalEntity.class, this.getBoundingBox().grow(32.0D)); + List list = this.level.getEntitiesOfClass(GuardianCrystalEntity.class, this.getBoundingBox().inflate(32.0D)); GuardianCrystalEntity crystal = null; double d0 = Double.MAX_VALUE; for (GuardianCrystalEntity endercrystalentity1 : list) { - double d1 = endercrystalentity1.getDistanceSq(this); + double d1 = endercrystalentity1.distanceToSqr(this); if (d1 < d0) { d0 = d1; crystal = endercrystalentity1; @@ -401,7 +401,7 @@ private void updateDragonEnderCrystal() { } this.closestGuardianCrystal = crystal; } - getDataManager().set(CRYSTAL_ID, closestGuardianCrystal == null ? -1 : closestGuardianCrystal.getEntityId()); + getEntityData().set(CRYSTAL_ID, closestGuardianCrystal == null ? -1 : closestGuardianCrystal.getId()); } } @@ -412,13 +412,13 @@ private void collideWithEntities(List entities) { for (Entity entity : entities) { if (entity instanceof LivingEntity) { - double d2 = entity.getPosX() - d0; - double d3 = entity.getPosZ() - d1; + double d2 = entity.getX() - d0; + double d3 = entity.getZ() - d1; double d4 = Math.max(d2 * d2 + d3 * d3, 0.1D); - entity.addVelocity(d2 / d4 * 4.0D, 0.2F, d3 / d4 * 4.0D); - if (!this.phaseManager.getCurrentPhase().getIsStationary() && ((LivingEntity) entity).getRevengeTimer() < entity.ticksExisted - 2) { - entity.attackEntityFrom(new EntityDamageSource(DraconicEvolution.MODID + ".draconic_guardian", this), 15.0F); - this.applyEnchantments(this, entity); + entity.push(d2 / d4 * 4.0D, 0.2F, d3 / d4 * 4.0D); + if (!this.phaseManager.getCurrentPhase().getIsStationary() && ((LivingEntity) entity).getLastHurtByMobTimestamp() < entity.tickCount - 2) { + entity.hurt(new EntityDamageSource(DraconicEvolution.MODID + ".draconic_guardian", this), 15.0F); + this.doEnchantDamageEffects(this, entity); } } } @@ -428,8 +428,8 @@ private void collideWithEntities(List entities) { private void attackEntitiesInList(List entities) { for (Entity entity : entities) { if (entity instanceof LivingEntity) { - entity.attackEntityFrom(new EntityDamageSource(DraconicEvolution.MODID + ".draconic_guardian", this), 20.0F); - this.applyEnchantments(this, entity); + entity.hurt(new EntityDamageSource(DraconicEvolution.MODID + ".draconic_guardian", this), 20.0F); + this.doEnchantDamageEffects(this, entity); } } @@ -453,11 +453,11 @@ private boolean destroyBlocksInAABB(AxisAlignedBB area) { for (int l1 = j; l1 <= i1; ++l1) { for (int i2 = k; i2 <= j1; ++i2) { BlockPos blockpos = new BlockPos(k1, l1, i2); - BlockState blockstate = this.world.getBlockState(blockpos); + BlockState blockstate = this.level.getBlockState(blockpos); Block block = blockstate.getBlock(); - if (!blockstate.isAir(this.world, blockpos) && blockstate.getMaterial() != Material.FIRE) { - if (net.minecraftforge.common.ForgeHooks.canEntityDestroy(this.world, blockpos, this) && !BlockTags.DRAGON_IMMUNE.contains(block) && block != Blocks.NETHER_BRICKS && block != Blocks.NETHER_BRICK_SLAB) { - flag1 = this.world.removeBlock(blockpos, false) || flag1; + if (!blockstate.isAir(this.level, blockpos) && blockstate.getMaterial() != Material.FIRE) { + if (net.minecraftforge.common.ForgeHooks.canEntityDestroy(this.level, blockpos, this) && !BlockTags.DRAGON_IMMUNE.contains(block) && block != Blocks.NETHER_BRICKS && block != Blocks.NETHER_BRICK_SLAB) { + flag1 = this.level.removeBlock(blockpos, false) || flag1; } else { flag = true; } @@ -467,8 +467,8 @@ private boolean destroyBlocksInAABB(AxisAlignedBB area) { } if (flag1) { - BlockPos blockpos1 = new BlockPos(i + this.rand.nextInt(l - i + 1), j + this.rand.nextInt(i1 - j + 1), k + this.rand.nextInt(j1 - k + 1)); - this.world.playEvent(2008, blockpos1, 0); + BlockPos blockpos1 = new BlockPos(i + this.random.nextInt(l - i + 1), j + this.random.nextInt(i1 - j + 1), k + this.random.nextInt(j1 - k + 1)); + this.level.levelEvent(2008, blockpos1, 0); } return flag; @@ -479,8 +479,8 @@ public boolean attackEntityPartFrom(DraconicGuardianPartEntity part, DamageSourc return false; } else { if (fightManager != null && fightManager.getNumAliveCrystals() > 0) { - getDataManager().set(SHIELD_STATE, 1000); - BCoreNetwork.sendSound(world, getPosition(), DESounds.shieldStrike, SoundCategory.HOSTILE, 20, rand.nextFloat() * 0.2F + 0.9F, false); + getEntityData().set(SHIELD_STATE, 1000); + BCoreNetwork.sendSound(level, blockPosition(), DESounds.shieldStrike, SoundCategory.HOSTILE, 20, random.nextFloat() * 0.2F + 0.9F, false); return false; } @@ -492,9 +492,9 @@ public boolean attackEntityPartFrom(DraconicGuardianPartEntity part, DamageSourc if (damage < 0.01F) { return false; } else { - if (source.getTrueSource() instanceof PlayerEntity || source.isExplosion()) { + if (source.getEntity() instanceof PlayerEntity || source.isExplosion()) { this.attackDragonFrom(source, damage); - if (this.getShouldBeDead() && !this.phaseManager.getCurrentPhase().getIsStationary()) { + if (this.isDeadOrDying() && !this.phaseManager.getCurrentPhase().getIsStationary()) { this.setHealth(1.0F); this.phaseManager.setPhase(PhaseType.DYING); } @@ -506,19 +506,19 @@ public boolean attackEntityPartFrom(DraconicGuardianPartEntity part, DamageSourc } @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - if (source instanceof EntityDamageSource && ((EntityDamageSource) source).getIsThornsDamage()) { + public boolean hurt(DamageSource source, float amount) { + if (source instanceof EntityDamageSource && ((EntityDamageSource) source).isThorns()) { this.attackEntityPartFrom(this.dragonPartBody, source, amount); } return false; } protected boolean attackDragonFrom(DamageSource source, float amount) { - return super.attackEntityFrom(source, amount); + return super.hurt(source, amount); } @Override - public void onKillCommand() { + public void kill() { this.remove(); if (this.fightManager != null) { this.fightManager.guardianUpdate(this); @@ -528,40 +528,40 @@ public void onKillCommand() { } @Override - protected void onDeathUpdate() { + protected void tickDeath() { if (this.fightManager != null) { this.fightManager.guardianUpdate(this); } ++this.deathTicks; if (this.deathTicks >= 180 && this.deathTicks <= 200) { - float f = (this.rand.nextFloat() - 0.5F) * 8.0F; - float f1 = (this.rand.nextFloat() - 0.5F) * 4.0F; - float f2 = (this.rand.nextFloat() - 0.5F) * 8.0F; - this.world.addParticle(ParticleTypes.EXPLOSION_EMITTER, this.getPosX() + (double) f, this.getPosY() + 2.0D + (double) f1, this.getPosZ() + (double) f2, 0.0D, 0.0D, 0.0D); + float f = (this.random.nextFloat() - 0.5F) * 8.0F; + float f1 = (this.random.nextFloat() - 0.5F) * 4.0F; + float f2 = (this.random.nextFloat() - 0.5F) * 8.0F; + this.level.addParticle(ParticleTypes.EXPLOSION_EMITTER, this.getX() + (double) f, this.getY() + 2.0D + (double) f1, this.getZ() + (double) f2, 0.0D, 0.0D, 0.0D); } - boolean flag = this.world.getGameRules().getBoolean(GameRules.DO_MOB_LOOT); + boolean flag = this.level.getGameRules().getBoolean(GameRules.RULE_DOMOBLOOT); int xpAmount = 500; // if (this.fightManager != null && !this.fightManager.hasPreviouslyKilledDragon()) { // xpAmount = 12000; xpAmount = 24000; //Todo make this fight tier dependent // } - if (!this.world.isRemote) { + if (!this.level.isClientSide) { if (this.deathTicks > 150 && this.deathTicks % 5 == 0 && flag) { this.dropExperience(MathHelper.floor((float) xpAmount * 0.08F)); } if (this.deathTicks == 1 && !this.isSilent()) { - this.world.playBroadcastSound(1028, this.getPosition(), 0); + this.level.globalLevelEvent(1028, this.blockPosition(), 0); } } this.move(MoverType.SELF, new Vector3d(0.0D, 0.1F, 0.0D)); - this.rotationYaw += 20.0F; - this.renderYawOffset = this.rotationYaw; - if (this.deathTicks == 200 && !this.world.isRemote) { + this.yRot += 20.0F; + this.yBodyRot = this.yRot; + if (this.deathTicks == 200 && !this.level.isClientSide) { if (flag) { this.dropExperience(MathHelper.floor((float) xpAmount * 0.2F)); } @@ -577,9 +577,9 @@ protected void onDeathUpdate() { private void dropExperience(int xp) { while (xp > 0) { - int i = ExperienceOrbEntity.getXPSplit(xp); + int i = ExperienceOrbEntity.getExperienceValue(xp); xp -= i; - this.world.addEntity(new ExperienceOrbEntity(this.world, this.getPosX(), this.getPosY(), this.getPosZ(), i)); + this.level.addFreshEntity(new ExperienceOrbEntity(this.level, this.getX(), this.getY(), this.getZ(), i)); } } @@ -588,7 +588,7 @@ private void dropExperience(int xp) { public int initPathPoints(boolean regenerate) { if (this.pathPoints[0] == null || regenerate) { if (arenaOrigin == null) { - arenaOrigin = getPosition(); + arenaOrigin = blockPosition(); } //Circle @@ -597,12 +597,12 @@ public int initPathPoints(boolean regenerate) { float angle = loopPos * 360; int pointX = codechicken.lib.math.MathHelper.floor((GuardianFightManager.CRYSTAL_DIST_FROM_CENTER - 20) * Math.cos(angle * codechicken.lib.math.MathHelper.torad)); int pointZ = codechicken.lib.math.MathHelper.floor((GuardianFightManager.CRYSTAL_DIST_FROM_CENTER - 20) * Math.sin(angle * codechicken.lib.math.MathHelper.torad)); - int pointY = Math.max(arenaOrigin.getY() + GuardianFightManager.CRYSTAL_HEIGHT_FROM_ORIGIN, this.world.getHeight(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, new BlockPos(pointX, 0, pointZ)).getY()); + int pointY = Math.max(arenaOrigin.getY() + GuardianFightManager.CRYSTAL_HEIGHT_FROM_ORIGIN, this.level.getHeightmapPos(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, new BlockPos(pointX, 0, pointZ)).getY()); pathPoints[i] = new PathPoint(arenaOrigin.getX() + pointX, pointY, arenaOrigin.getZ() + pointZ); } } - return this.getNearestPpIdx(this.getPosX(), this.getPosY(), this.getPosZ()); + return this.getNearestPpIdx(this.getX(), this.getY(), this.getZ()); } public int getNearestPpIdx(double x, double y, double z) { @@ -616,7 +616,7 @@ public int getNearestPpIdx(double x, double y, double z) { for (int k = j; k < 24; ++k) { if (this.pathPoints[k] != null) { - float f1 = this.pathPoints[k].distanceToSquared(pathpoint); + float f1 = this.pathPoints[k].distanceToSqr(pathpoint); if (f1 < f) { f = f1; i = k; @@ -631,23 +631,23 @@ public int getNearestPpIdx(double x, double y, double z) { public Path findPath(int startIdx, int finishIdx, @Nullable PathPoint andThen) { for (int i = 0; i < 24; ++i) { PathPoint pathpoint = this.pathPoints[i]; - pathpoint.visited = false; - pathpoint.distanceToTarget = 0.0F; - pathpoint.totalPathDistance = 0.0F; - pathpoint.distanceToNext = 0.0F; - pathpoint.previous = null; - pathpoint.index = -1; + pathpoint.closed = false; + pathpoint.f = 0.0F; + pathpoint.g = 0.0F; + pathpoint.h = 0.0F; + pathpoint.cameFrom = null; + pathpoint.heapIdx = -1; } PathPoint startPoint = this.pathPoints[startIdx]; PathPoint endPoint = this.pathPoints[finishIdx]; - startPoint.totalPathDistance = 0.0F; - startPoint.distanceToNext = startPoint.distanceTo(endPoint); - startPoint.distanceToTarget = startPoint.distanceToNext; + startPoint.g = 0.0F; + startPoint.h = startPoint.distanceTo(endPoint); + startPoint.f = startPoint.h; - this.pathFindQueue.clearPath(); - this.pathFindQueue.addPoint(startPoint); + this.pathFindQueue.clear(); + this.pathFindQueue.insert(startPoint); PathPoint nextPoint = startPoint; int startIndex = 0; @@ -655,11 +655,11 @@ public Path findPath(int startIdx, int finishIdx, @Nullable PathPoint andThen) { // startIndex = 12; // } - while (!this.pathFindQueue.isPathEmpty()) { - PathPoint testPoint = this.pathFindQueue.dequeue(); + while (!this.pathFindQueue.isEmpty()) { + PathPoint testPoint = this.pathFindQueue.pop(); if (testPoint.equals(endPoint)) { if (andThen != null) { - andThen.previous = endPoint; + andThen.cameFrom = endPoint; endPoint = andThen; } @@ -667,11 +667,11 @@ public Path findPath(int startIdx, int finishIdx, @Nullable PathPoint andThen) { } //If text point is closer then next point becomes test point - if (testPoint.distanceToSquared(endPoint) < nextPoint.distanceToSquared(endPoint)) { + if (testPoint.distanceToSqr(endPoint) < nextPoint.distanceToSqr(endPoint)) { nextPoint = testPoint; } - testPoint.visited = true; + testPoint.closed = true; int testPointIntex = 0; for (int l = 0; l < 24; ++l) { @@ -684,17 +684,17 @@ public Path findPath(int startIdx, int finishIdx, @Nullable PathPoint andThen) { for (int index = startIndex; index < 24; ++index) { // if ((this.neighbors[testPointIntex] & 1 << index) > 0) { PathPoint pathpoint3 = this.pathPoints[index]; - if (!pathpoint3.visited) { - float f = testPoint.totalPathDistance + testPoint.distanceTo(pathpoint3); - if (!pathpoint3.isAssigned() || f < pathpoint3.totalPathDistance) { - pathpoint3.previous = testPoint; - pathpoint3.totalPathDistance = f; - pathpoint3.distanceToNext = pathpoint3.distanceTo(endPoint); - if (pathpoint3.isAssigned()) { - this.pathFindQueue.changeDistance(pathpoint3, pathpoint3.totalPathDistance + pathpoint3.distanceToNext); + if (!pathpoint3.closed) { + float f = testPoint.g + testPoint.distanceTo(pathpoint3); + if (!pathpoint3.inOpenSet() || f < pathpoint3.g) { + pathpoint3.cameFrom = testPoint; + pathpoint3.g = f; + pathpoint3.h = pathpoint3.distanceTo(endPoint); + if (pathpoint3.inOpenSet()) { + this.pathFindQueue.changeCost(pathpoint3, pathpoint3.g + pathpoint3.h); } else { - pathpoint3.distanceToTarget = pathpoint3.totalPathDistance + pathpoint3.distanceToNext; - this.pathFindQueue.addPoint(pathpoint3); + pathpoint3.f = pathpoint3.g + pathpoint3.h; + this.pathFindQueue.insert(pathpoint3); } } } @@ -707,7 +707,7 @@ public Path findPath(int startIdx, int finishIdx, @Nullable PathPoint andThen) { } else { LOGGER.debug("Failed to find path from {} to {}", startIdx, finishIdx); if (andThen != null) { - andThen.previous = nextPoint; + andThen.cameFrom = nextPoint; nextPoint = andThen; } @@ -720,8 +720,8 @@ private Path makePath(PathPoint start, PathPoint finish) { PathPoint pathpoint = finish; list.add(0, finish); - while (pathpoint.previous != null) { - pathpoint = pathpoint.previous; + while (pathpoint.cameFrom != null) { + pathpoint = pathpoint.cameFrom; list.add(0, pathpoint); } @@ -729,8 +729,8 @@ private Path makePath(PathPoint start, PathPoint finish) { } @Override - public void writeAdditional(CompoundNBT compound) { - super.writeAdditional(compound); + public void addAdditionalSaveData(CompoundNBT compound) { + super.addAdditionalSaveData(compound); compound.putInt("dragon_phase", phaseManager.getCurrentPhase().getType().getId()); if (arenaOrigin != null) { compound.put("arena_origin", NBTUtil.writeBlockPos(arenaOrigin)); @@ -738,20 +738,20 @@ public void writeAdditional(CompoundNBT compound) { } @Override - public void readAdditional(CompoundNBT compound) { - super.readAdditional(compound); + public void readAdditionalSaveData(CompoundNBT compound) { + super.readAdditionalSaveData(compound); if (compound.contains("dragon_phase")) { phaseManager.setPhase(PhaseType.getById(compound.getInt("dragon_phase"))); } if (compound.contains("arena_origin")) { arenaOrigin = NBTUtil.readBlockPos(compound.getCompound("arena_origin")); } - if (world instanceof ServerWorld) { + if (level instanceof ServerWorld) { fightManager = WorldEntityHandler.getWorldEntities() .stream() .filter(e -> e instanceof GuardianFightManager) .map(e -> (GuardianFightManager) e) - .filter(e -> getUniqueID().equals(e.getGuardianUniqueId())) + .filter(e -> getUUID().equals(e.getGuardianUniqueId())) .findFirst() .orElse(null); @@ -773,23 +773,23 @@ public DraconicGuardianPartEntity[] getDragonParts() { } @Override - public boolean canBeCollidedWith() { + public boolean isPickable() { return false; } @Override - public SoundCategory getSoundCategory() { + public SoundCategory getSoundSource() { return SoundCategory.HOSTILE; } @Override protected SoundEvent getAmbientSound() { - return SoundEvents.ENTITY_ENDER_DRAGON_AMBIENT; + return SoundEvents.ENDER_DRAGON_AMBIENT; } @Override protected SoundEvent getHurtSound(DamageSource damageSourceIn) { - return SoundEvents.ENTITY_ENDER_DRAGON_HURT; + return SoundEvents.ENDER_DRAGON_HURT; } @Override @@ -811,8 +811,8 @@ public float getHeadPartYOffset(int p_184667_1_, double[] spineEndOffsets, doubl d0 = headPartOffsets[1] - spineEndOffsets[1]; } } else { - BlockPos blockpos = this.world.getHeight(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION); - float f = Math.max(MathHelper.sqrt(blockpos.distanceSq(this.getPositionVec(), true)) / 4.0F, 1.0F); + BlockPos blockpos = this.level.getHeightmapPos(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION); + float f = Math.max(MathHelper.sqrt(blockpos.distSqr(this.position(), true)) / 4.0F, 1.0F); d0 = (float) p_184667_1_ / f; } @@ -825,23 +825,23 @@ public Vector3d getHeadLookVec(float partialTicks) { Vector3d vector3d; if (phasetype != PhaseType.LANDING && phasetype != PhaseType.TAKEOFF) { if (iphase.getIsStationary()) { - float f4 = this.rotationPitch; + float f4 = this.xRot; float f5 = 1.5F; - this.rotationPitch = -45.0F; - vector3d = this.getLook(partialTicks); - this.rotationPitch = f4; + this.xRot = -45.0F; + vector3d = this.getViewVector(partialTicks); + this.xRot = f4; } else { - vector3d = this.getLook(partialTicks); + vector3d = this.getViewVector(partialTicks); } } else { - BlockPos blockpos = this.world.getHeight(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION); - float f = Math.max(MathHelper.sqrt(blockpos.distanceSq(this.getPositionVec(), true)) / 4.0F, 1.0F); + BlockPos blockpos = this.level.getHeightmapPos(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION); + float f = Math.max(MathHelper.sqrt(blockpos.distSqr(this.position(), true)) / 4.0F, 1.0F); float f1 = 6.0F / f; - float f2 = this.rotationPitch; + float f2 = this.xRot; float f3 = 1.5F; - this.rotationPitch = -f1 * 1.5F * 5.0F; - vector3d = this.getLook(partialTicks); - this.rotationPitch = f2; + this.xRot = -f1 * 1.5F * 5.0F; + vector3d = this.getViewVector(partialTicks); + this.xRot = f2; } return vector3d; @@ -849,34 +849,34 @@ public Vector3d getHeadLookVec(float partialTicks) { public void onCrystalDestroyed(GuardianCrystalEntity crystal, BlockPos pos, DamageSource dmgSrc) { PlayerEntity playerentity; - if (dmgSrc.getTrueSource() instanceof PlayerEntity) { - playerentity = (PlayerEntity) dmgSrc.getTrueSource(); + if (dmgSrc.getEntity() instanceof PlayerEntity) { + playerentity = (PlayerEntity) dmgSrc.getEntity(); } else { - playerentity = this.world.getClosestPlayer(PLAYER_INVADER_CONDITION, pos.getX(), pos.getY(), pos.getZ()); + playerentity = this.level.getNearestPlayer(PLAYER_INVADER_CONDITION, pos.getX(), pos.getY(), pos.getZ()); } if (crystal == this.closestGuardianCrystal) { - this.attackEntityPartFrom(this.dragonPartHead, DamageSource.causeExplosionDamage(playerentity), 10.0F); + this.attackEntityPartFrom(this.dragonPartHead, DamageSource.explosion(playerentity), 10.0F); } this.phaseManager.getCurrentPhase().onCrystalDestroyed(crystal, pos, dmgSrc, playerentity); } @Override - public void notifyDataManagerChange(DataParameter key) { - if (PHASE.equals(key) && this.world.isRemote) { - this.phaseManager.setPhase(PhaseType.getById(getDataManager().get(PHASE))); - } else if (CRYSTAL_ID.equals(key) && world.isRemote) { - int id = getDataManager().get(CRYSTAL_ID); + public void onSyncedDataUpdated(DataParameter key) { + if (PHASE.equals(key) && this.level.isClientSide) { + this.phaseManager.setPhase(PhaseType.getById(getEntityData().get(PHASE))); + } else if (CRYSTAL_ID.equals(key) && level.isClientSide) { + int id = getEntityData().get(CRYSTAL_ID); if (id == -1) { closestGuardianCrystal = null; } else { - Entity entity = world.getEntityByID(id); + Entity entity = level.getEntity(id); closestGuardianCrystal = entity instanceof GuardianCrystalEntity ? (GuardianCrystalEntity) entity : null; } } - super.notifyDataManagerChange(key); + super.onSyncedDataUpdated(key); } public PhaseManager getPhaseManager() { @@ -889,17 +889,17 @@ public GuardianFightManager getFightManager() { } @Override - public boolean addPotionEffect(EffectInstance effectInstanceIn) { + public boolean addEffect(EffectInstance effectInstanceIn) { return false; } @Override - protected boolean canBeRidden(Entity entityIn) { + protected boolean canRide(Entity entityIn) { return false; } @Override - public boolean isNonBoss() { + public boolean canChangeDimensions() { return false; } @@ -909,7 +909,12 @@ public DraconicGuardianPartEntity[] getParts() { } @Override - public IPacket createSpawnPacket() { - return super.createSpawnPacket(); + public boolean isMultipartEntity() { + return true; + } + + @Override + public IPacket getAddEntityPacket() { + return super.getAddEntityPacket(); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/DraconicGuardianPartEntity.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/DraconicGuardianPartEntity.java index fefb1785b..ce76bd35e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/DraconicGuardianPartEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/DraconicGuardianPartEntity.java @@ -6,48 +6,49 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.network.IPacket; import net.minecraft.util.DamageSource; +import net.minecraftforge.entity.PartEntity; -public class DraconicGuardianPartEntity extends Entity { +public class DraconicGuardianPartEntity extends PartEntity { public final DraconicGuardianEntity dragon; public final String name; private final EntitySize size; public DraconicGuardianPartEntity(DraconicGuardianEntity dragon, String name, float width, float height) { - super(dragon.getType(), dragon.world); - this.size = EntitySize.flexible(width, height); - this.recalculateSize(); + super(dragon); + this.size = EntitySize.scalable(width, height); + this.refreshDimensions(); this.dragon = dragon; this.name = name; } - protected void registerData() { + protected void defineSynchedData() { } - protected void readAdditional(CompoundNBT compound) { + protected void readAdditionalSaveData(CompoundNBT compound) { } - protected void writeAdditional(CompoundNBT compound) { + protected void addAdditionalSaveData(CompoundNBT compound) { } - public boolean canBeCollidedWith() { + public boolean isPickable() { return true; } - public boolean attackEntityFrom(DamageSource source, float amount) { + public boolean hurt(DamageSource source, float amount) { return !this.isInvulnerableTo(source) && this.dragon.attackEntityPartFrom(this, source, amount); } - public boolean isEntityEqual(Entity entityIn) { + public boolean is(Entity entityIn) { return this == entityIn || this.dragon == entityIn; } - public IPacket createSpawnPacket() { + public IPacket getAddEntityPacket() { throw new UnsupportedOperationException(); } - public EntitySize getSize(Pose poseIn) { + public EntitySize getDimensions(Pose poseIn) { return this.size; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/GuardianFightManager.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/GuardianFightManager.java index a946b9136..31708d33b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/GuardianFightManager.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/GuardianFightManager.java @@ -49,7 +49,7 @@ public class GuardianFightManager extends WorldEntity implements ITickableWorldE public static final float COVER_FIRE_POWER = 15; private Predicate validPlayer; - private final ServerBossInfo bossInfo = (ServerBossInfo) (new ServerBossInfo(new TranslationTextComponent("entity.draconicevolution.draconic_guardian"), BossInfo.Color.RED, BossInfo.Overlay.PROGRESS)).setPlayEndBossMusic(true).setCreateFog(true); + private final ServerBossInfo bossInfo = (ServerBossInfo) (new ServerBossInfo(new TranslationTextComponent("entity.draconicevolution.draconic_guardian"), BossInfo.Color.RED, BossInfo.Overlay.PROGRESS)).setPlayBossMusic(true).setCreateWorldFog(true); private int ticksSinceGuardianSeen; private int aliveCrystals; private int ticksSinceCrystalsScanned; @@ -69,7 +69,7 @@ public GuardianFightManager() { public GuardianFightManager(BlockPos origin) { super(DEContent.guardianManagerType); this.arenaOrigin = origin; - this.validPlayer = EntityPredicates.IS_ALIVE.and(EntityPredicates.withinRange(origin.getX(), origin.getY(), origin.getZ(), 192.0D)); + this.validPlayer = EntityPredicates.ENTITY_STILL_ALIVE.and(EntityPredicates.withinDistance(origin.getX(), origin.getY(), origin.getZ(), 192.0D)); this.respawnState = GuardianSpawnState.START_WAIT_FOR_PLAYER; this.bossInfo.setPercent(0); } @@ -89,7 +89,7 @@ public void tick() { //This is just using the player list in boss info to check if there are any players in the area. if (!this.bossInfo.getPlayers().isEmpty()) { // testGenPath(); - world.getChunkProvider().registerTicket(TicketType.DRAGON, new ChunkPos(arenaOrigin), 12, Unit.INSTANCE); //Is this chunk loading? + world.getChunkSource().addRegionTicket(TicketType.DRAGON, new ChunkPos(arenaOrigin), 12, Unit.INSTANCE); //Is this chunk loading? boolean areaLoaded = this.isFightAreaLoaded(); if (this.respawnState != null) { @@ -108,7 +108,7 @@ public void tick() { } } } else { - world.getChunkProvider().releaseTicket(TicketType.DRAGON, new ChunkPos(arenaOrigin), 12, Unit.INSTANCE); + world.getChunkSource().removeRegionTicket(TicketType.DRAGON, new ChunkPos(arenaOrigin), 12, Unit.INSTANCE); } } @@ -121,7 +121,7 @@ private void findOrCreateGuardian() { this.createNewGuardian(); } else { LOGGER.debug("Haven't seen our guardian, but found another one to use."); - this.guardianUniqueId = list.get(0).getUniqueID(); + this.guardianUniqueId = list.get(0).getUUID(); } } @@ -153,8 +153,8 @@ private boolean isFightAreaLoaded() { return false; } - ChunkHolder.LocationType locationType = ((Chunk) ichunk).getLocationType(); - if (!locationType.isAtLeast(ChunkHolder.LocationType.TICKING)) { + ChunkHolder.LocationType locationType = ((Chunk) ichunk).getFullStatus(); + if (!locationType.isOrAfter(ChunkHolder.LocationType.TICKING)) { return false; } } @@ -185,7 +185,7 @@ public void processDragonDeath(DraconicGuardianEntity guardian) { this.bossInfo.setVisible(false); // this.generatePortal(true); //Unlock Crystal? this.guardianKilled = true; - TileEntity tile = world.getTileEntity(arenaOrigin); + TileEntity tile = world.getBlockEntity(arenaOrigin); if (tile instanceof TileChaosCrystal) { ((TileChaosCrystal) tile).setDefeated(); } @@ -198,16 +198,16 @@ private DraconicGuardianEntity createNewGuardian() { DraconicGuardianEntity guardian = DEContent.draconicGuardian.create(world); guardian.getPhaseManager().setPhase(PhaseType.START); // guardian.getPhaseManager().setPhase(PhaseType.HOVER); - guardian.setLocationAndAngles(guardianSpawnPos().getX(), guardianSpawnPos().getY(), guardianSpawnPos().getZ(), this.world.rand.nextFloat() * 360.0F, 0.0F); + guardian.moveTo(guardianSpawnPos().getX(), guardianSpawnPos().getY(), guardianSpawnPos().getZ(), this.world.random.nextFloat() * 360.0F, 0.0F); guardian.setFightManager(this); guardian.setArenaOrigin(arenaOrigin); - world.addEntity(guardian); - this.guardianUniqueId = guardian.getUniqueID(); + world.addFreshEntity(guardian); + this.guardianUniqueId = guardian.getUUID(); return guardian; } public void guardianUpdate(DraconicGuardianEntity guardian) { - if (guardian.getUniqueID().equals(this.guardianUniqueId)) { + if (guardian.getUUID().equals(this.guardianUniqueId)) { this.bossInfo.setPercent(guardian.getHealth() / guardian.getMaxHealth()); this.ticksSinceGuardianSeen = 0; if (!arenaOrigin.equals(guardian.getArenaOrigin())) { @@ -221,7 +221,7 @@ public void guardianUpdate(DraconicGuardianEntity guardian) { } private void cleanUpAndDispose() { - ((ServerWorld) world).getChunkProvider().releaseTicket(TicketType.DRAGON, new ChunkPos(arenaOrigin), 12, Unit.INSTANCE); + ((ServerWorld) world).getChunkSource().removeRegionTicket(TicketType.DRAGON, new ChunkPos(arenaOrigin), 12, Unit.INSTANCE); bossInfo.removeAllPlayers(); removeEntity(); } @@ -239,7 +239,7 @@ private void findAliveCrystals() { this.aliveCrystals = 0; for (BlockPos pos : getCrystalPositions()) { - List list = this.world.getEntitiesWithinAABB(GuardianCrystalEntity.class, new AxisAlignedBB(pos.add(-3, -3, -3), pos.add(4, 4, 4))); + List list = this.world.getEntitiesOfClass(GuardianCrystalEntity.class, new AxisAlignedBB(pos.offset(-3, -3, -3), pos.offset(4, 4, 4))); for (GuardianCrystalEntity crystal : list) { if (!crystal.getManagerId().equals(getUniqueID())) { crystal.setManagerId(getUniqueID()); @@ -258,15 +258,15 @@ public int getNumAliveCrystals() { public void onCrystalDestroyed(GuardianCrystalEntity crystal, DamageSource dmgSrc) { ServerWorld world = (ServerWorld) this.world; this.findAliveCrystals(); - Entity entity = world.getEntityByUuid(this.guardianUniqueId); + Entity entity = world.getEntity(this.guardianUniqueId); if (entity instanceof DraconicGuardianEntity) { - ((DraconicGuardianEntity) entity).onCrystalDestroyed(crystal, crystal.getPosition(), dmgSrc); + ((DraconicGuardianEntity) entity).onCrystalDestroyed(crystal, crystal.blockPosition(), dmgSrc); } } public void resetCrystals() { for (BlockPos pos : getCrystalPositions()) { - for (GuardianCrystalEntity endercrystalentity : this.world.getEntitiesWithinAABB(GuardianCrystalEntity.class, new AxisAlignedBB(pos.add(-3, -3, -3), pos.add(4, 4, 4)))) { + for (GuardianCrystalEntity endercrystalentity : this.world.getEntitiesOfClass(GuardianCrystalEntity.class, new AxisAlignedBB(pos.offset(-3, -3, -3), pos.offset(4, 4, 4)))) { endercrystalentity.setInvulnerable(false); endercrystalentity.setBeamTarget(null); } @@ -276,7 +276,7 @@ public void resetCrystals() { public List getCrystals() { List list = new ArrayList<>(); for (BlockPos pos : getCrystalPositions()) { - list.addAll(this.world.getEntitiesWithinAABB(GuardianCrystalEntity.class, new AxisAlignedBB(pos.add(-3, -3, -3), pos.add(4, 4, 4)))); + list.addAll(this.world.getEntitiesOfClass(GuardianCrystalEntity.class, new AxisAlignedBB(pos.offset(-3, -3, -3), pos.offset(4, 4, 4)))); } return list; } @@ -307,7 +307,7 @@ public BlockPos getNextCrystalPos(boolean initial) { } public BlockPos guardianSpawnPos() { - return arenaOrigin.add(0, 80, 0); + return arenaOrigin.offset(0, 80, 0); } @@ -319,7 +319,7 @@ public BlockPos getArenaOrigin() { public void write(CompoundNBT nbt) { super.write(nbt); if (guardianUniqueId != null) { - nbt.putUniqueId("guardian", guardianUniqueId); + nbt.putUUID("guardian", guardianUniqueId); } nbt.putBoolean("guardian_killed", guardianKilled); @@ -332,12 +332,12 @@ public void write(CompoundNBT nbt) { @Override public void read(CompoundNBT nbt) { super.read(nbt); - if (nbt.hasUniqueId("guardian")) { - guardianUniqueId = nbt.getUniqueId("guardian"); + if (nbt.hasUUID("guardian")) { + guardianUniqueId = nbt.getUUID("guardian"); } guardianKilled = nbt.getBoolean("guardian_killed"); arenaOrigin = NBTUtil.readBlockPos(nbt.getCompound("arena_origin")); - validPlayer = EntityPredicates.IS_ALIVE.and(EntityPredicates.withinRange(arenaOrigin.getX(), arenaOrigin.getY(), arenaOrigin.getZ(), 192.0D)); + validPlayer = EntityPredicates.ENTITY_STILL_ALIVE.and(EntityPredicates.withinDistance(arenaOrigin.getX(), arenaOrigin.getY(), arenaOrigin.getZ(), 192.0D)); if (nbt.getBoolean("respawning")) { respawnState = GuardianSpawnState.START_WAIT_FOR_PLAYER; } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/GuardianSpawnState.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/GuardianSpawnState.java index f37b71f85..9d2039317 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/GuardianSpawnState.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/GuardianSpawnState.java @@ -20,7 +20,7 @@ public enum GuardianSpawnState { public void process(ServerWorld world, GuardianFightManager manager, List crystals, int ticks, BlockPos pos) { if (ticks % 20 == 0) { for (ServerPlayerEntity player : manager.getTrackedPlayers()) { - if (pos.up(15).distanceSq(player.getPosition()) <= 15*15) { + if (pos.above(15).distSqr(player.blockPosition()) <= 15*15) { DraconicEvolution.LOGGER.info("Player In Range. Guardian spawn progressing to PREPARING_TO_SUMMON_PILLARS"); manager.setRespawnState(PREPARING_TO_SUMMON_PILLARS); } @@ -32,7 +32,7 @@ public void process(ServerWorld world, GuardianFightManager manager, List crystals, int ticks, BlockPos pos) { if (ticks < 70) { if (ticks == 0 || ticks == 20 || ticks == 21 || ticks == 22 || ticks >= 65) { - world.playEvent(3001, new BlockPos(pos.getX(), 128, pos.getZ()), 0); + world.levelEvent(3001, new BlockPos(pos.getX(), 128, pos.getZ()), 0); } } else { manager.setRespawnState(SUMMONING_PILLARS); @@ -49,17 +49,17 @@ public void process(ServerWorld world, GuardianFightManager manager, List= 30) { - world.playEvent(3001, pos.add(0, 80, 0), 0); + world.levelEvent(3001, pos.offset(0, 80, 0), 0); } else if (ticks < 5) { - world.playEvent(3001, pos.add(0, 80, 0), 0); + world.levelEvent(3001, pos.offset(0, 80, 0), 0); } } }, diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/AttackingSittingPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/AttackingSittingPhase.java index 863f33342..64616d846 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/AttackingSittingPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/AttackingSittingPhase.java @@ -12,7 +12,7 @@ public AttackingSittingPhase(DraconicGuardianEntity guardisn) { } public void clientTick() { - this.guardian.world.playSound(this.guardian.getPosX(), this.guardian.getPosY(), this.guardian.getPosZ(), SoundEvents.ENTITY_ENDER_DRAGON_GROWL, this.guardian.getSoundCategory(), 2.5F, 0.8F + this.guardian.getRNG().nextFloat() * 0.3F, false); + this.guardian.level.playLocalSound(this.guardian.getX(), this.guardian.getY(), this.guardian.getZ(), SoundEvents.ENDER_DRAGON_GROWL, this.guardian.getSoundSource(), 2.5F, 0.8F + this.guardian.getRandom().nextFloat() * 0.3F, false); } public void serverTick() { diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/BombardPlayerPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/BombardPlayerPhase.java index 20ef4fd89..d1799ab4c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/BombardPlayerPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/BombardPlayerPhase.java @@ -36,13 +36,13 @@ public void serverTick() { guardian.getPhaseManager().setPhase(PhaseType.START); LOGGER.info("Ending bombardment, Timed out"); } else { - double distance = targetPlayer.getDistance(guardian); - targetLocation = targetPlayer.getPositionVec(); + double distance = targetPlayer.distanceTo(guardian); + targetLocation = targetPlayer.position(); //Wait for alignment with player before starting bombardment if (!bombarding) { - double tRelX = targetLocation.x - guardian.getPosX(); - double tRelZ = targetLocation.z - guardian.getPosZ(); - double relTargetAngle = MathHelper.clamp(MathHelper.wrapDegrees(180.0D - MathHelper.atan2(tRelX, tRelZ) * (double) (180F / (float) Math.PI) - (double) guardian.rotationYaw), -50.0D, 50.0D); + double tRelX = targetLocation.x - guardian.getX(); + double tRelZ = targetLocation.z - guardian.getZ(); + double relTargetAngle = MathHelper.clamp(MathHelper.wrapDegrees(180.0D - MathHelper.atan2(tRelX, tRelZ) * (double) (180F / (float) Math.PI) - (double) guardian.yRot), -50.0D, 50.0D); bombarding = Math.abs(relTargetAngle) < 1; if (bombarding) { LOGGER.debug("Bombs Away!"); @@ -55,21 +55,21 @@ public void serverTick() { guardian.getPhaseManager().setPhase(PhaseType.START); LOGGER.info("Ending bombardment, To close"); } else if (bombarding && distance <= maxAttackRange && timeSinceStart % 2 == 0) { - Vector3d vector3d2 = guardian.getLook(1.0F); - double headX = guardian.dragonPartHead.getPosX() - vector3d2.x * 1.0D; - double headY = guardian.dragonPartHead.getPosYHeight(0.5D) + 0.5D; - double headZ = guardian.dragonPartHead.getPosZ() - vector3d2.z * 1.0D; - Vector3d targetPos = targetPlayer.getPositionVec().add(targetPlayer.getMotion().mul(5, 5, 5)); - targetPos = targetPos.add(guardian.getRNG().nextGaussian() * 10, guardian.getRNG().nextGaussian() * 10, guardian.getRNG().nextGaussian() * 10); + Vector3d vector3d2 = guardian.getViewVector(1.0F); + double headX = guardian.dragonPartHead.getX() - vector3d2.x * 1.0D; + double headY = guardian.dragonPartHead.getY(0.5D) + 0.5D; + double headZ = guardian.dragonPartHead.getZ() - vector3d2.z * 1.0D; + Vector3d targetPos = targetPlayer.position().add(targetPlayer.getDeltaMovement().multiply(5, 5, 5)); + targetPos = targetPos.add(guardian.getRandom().nextGaussian() * 10, guardian.getRandom().nextGaussian() * 10, guardian.getRandom().nextGaussian() * 10); double targetRelX = targetPos.x - headX; double targetRelY = targetPos.y - headY; double targetRelZ = targetPos.z - headZ; if (!guardian.isSilent()) { - guardian.world.playEvent(null, 1017, guardian.getPosition(), 0); + guardian.level.levelEvent(null, 1017, guardian.blockPosition(), 0); } - GuardianProjectileEntity projectile = new GuardianProjectileEntity(this.guardian.world, this.guardian, targetRelX, targetRelY, targetRelZ, targetPos, 25, GuardianFightManager.PROJECTILE_POWER); - projectile.setLocationAndAngles(headX, headY, headZ, 0.0F, 0.0F); - guardian.world.addEntity(projectile); + GuardianProjectileEntity projectile = new GuardianProjectileEntity(this.guardian.level, this.guardian, targetRelX, targetRelY, targetRelZ, targetPos, 25, GuardianFightManager.PROJECTILE_POWER); + projectile.moveTo(headX, headY, headZ, 0.0F, 0.0F); + guardian.level.addFreshEntity(projectile); } } @@ -77,7 +77,7 @@ public void serverTick() { guardian.getPhaseManager().setPhase(PhaseType.START); LOGGER.info("Aborting charge, Master timed out"); } else if (bombarding && timeSinceStart < 20 && timeSinceStart % 5 == 0) { - guardian.playSound(SoundEvents.ENTITY_ENDER_DRAGON_GROWL, 20, 0.95F + (guardian.getRNG().nextFloat() * 0.2F)); + guardian.playSound(SoundEvents.ENDER_DRAGON_GROWL, 20, 0.95F + (guardian.getRandom().nextFloat() * 0.2F)); } tick++; @@ -112,7 +112,7 @@ public PhaseType getType() { public double getGuardianSpeed() { double speed = 1; if (targetPlayer != null) { - double distance = targetPlayer.getDistance(guardian); + double distance = targetPlayer.distanceTo(guardian); double sweetSpot = minAttackRange + ((maxAttackRange - minAttackRange) / 2D); speed = MathHelper.clamp((distance - sweetSpot) / 10, 0.5, 3); } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/ChargingPlayerPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/ChargingPlayerPhase.java index 0894a2bde..75591a366 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/ChargingPlayerPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/ChargingPlayerPhase.java @@ -36,17 +36,17 @@ public void serverTick() { guardian.getPhaseManager().setPhase(PhaseType.START); LOGGER.debug("Aborting charge, Timed out"); } else { - double distance = targetPlayer.getDistance(guardian); + double distance = targetPlayer.distanceTo(guardian); if (distance - closestApproach > 16 && timeSinceCharge > 10) { guardian.getPhaseManager().setPhase(PhaseType.START); LOGGER.debug("Aborting charge, Player got away"); } else { closestApproach = Math.min(distance, closestApproach); - targetLocation = targetPlayer.getPositionVec(); + targetLocation = targetPlayer.position(); if (!charging) { - double tRelX = targetLocation.x - guardian.getPosX(); - double tRelZ = targetLocation.z - guardian.getPosZ(); - double relTargetAngle = MathHelper.clamp(MathHelper.wrapDegrees(180.0D - MathHelper.atan2(tRelX, tRelZ) * (double) (180F / (float) Math.PI) - (double) guardian.rotationYaw), -50.0D, 50.0D); + double tRelX = targetLocation.x - guardian.getX(); + double tRelZ = targetLocation.z - guardian.getZ(); + double relTargetAngle = MathHelper.clamp(MathHelper.wrapDegrees(180.0D - MathHelper.atan2(tRelX, tRelZ) * (double) (180F / (float) Math.PI) - (double) guardian.yRot), -50.0D, 50.0D); charging = Math.abs(relTargetAngle) < 1; if (charging) { LOGGER.debug("CHARGE!"); @@ -59,10 +59,10 @@ public void serverTick() { if (distance <= 5) { guardian.getPhaseManager().setPhase(PhaseType.START); LOGGER.debug("Charge Successful"); - targetPlayer.attackEntityFrom(new EntityDamageSource(DraconicEvolution.MODID + ".draconic_guardian", guardian).setDamageIsAbsolute().setDamageBypassesArmor(), GuardianFightManager.CHARGE_DAMAGE); - guardian.playSound(SoundEvents.ENTITY_GENERIC_EAT, 20, 0.95F + (guardian.getRNG().nextFloat() * 0.2F)); - guardian.playSound(SoundEvents.ENTITY_GENERIC_EAT, 20, 0.95F + (guardian.getRNG().nextFloat() * 0.2F)); - DraconicNetwork.sendImpactEffect(guardian.world, targetPlayer.getPosition(), 0); + targetPlayer.hurt(new EntityDamageSource(DraconicEvolution.MODID + ".draconic_guardian", guardian).bypassMagic().bypassArmor(), GuardianFightManager.CHARGE_DAMAGE); + guardian.playSound(SoundEvents.GENERIC_EAT, 20, 0.95F + (guardian.getRandom().nextFloat() * 0.2F)); + guardian.playSound(SoundEvents.GENERIC_EAT, 20, 0.95F + (guardian.getRandom().nextFloat() * 0.2F)); + DraconicNetwork.sendImpactEffect(guardian.level, targetPlayer.blockPosition(), 0); } } } @@ -72,7 +72,7 @@ public void serverTick() { LOGGER.debug("Aborting charge, Master timed out"); } else if (charging && timeSinceCharge < 20 && timeSinceCharge % 5 == 0) { - guardian.playSound(SoundEvents.ENTITY_ENDER_DRAGON_GROWL, 20, 0.95F + (guardian.getRNG().nextFloat() * 0.2F)); + guardian.playSound(SoundEvents.ENDER_DRAGON_GROWL, 20, 0.95F + (guardian.getRandom().nextFloat() * 0.2F)); } tick++; diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/CoverFirePhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/CoverFirePhase.java index 63f94ff35..66c33e0b4 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/CoverFirePhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/CoverFirePhase.java @@ -31,25 +31,25 @@ public PhaseType getType() { @Override public void serverTick() { - Vector3d vector3d2 = guardian.getLook(1.0F); - double headX = guardian.dragonPartHead.getPosX() - vector3d2.x * 1.0D; - double headY = guardian.dragonPartHead.getPosYHeight(0.5D) + 0.5D; - double headZ = guardian.dragonPartHead.getPosZ() - vector3d2.z * 1.0D; - Vector3d targetPos = guardian.getPositionVec(); - targetPos = targetPos.add((guardian.getRNG().nextDouble() - 0.5) * 50, (guardian.getRNG().nextDouble() - 0.5) * 50, (guardian.getRNG().nextDouble() - 0.5) * 50); + Vector3d vector3d2 = guardian.getViewVector(1.0F); + double headX = guardian.dragonPartHead.getX() - vector3d2.x * 1.0D; + double headY = guardian.dragonPartHead.getY(0.5D) + 0.5D; + double headZ = guardian.dragonPartHead.getZ() - vector3d2.z * 1.0D; + Vector3d targetPos = guardian.position(); + targetPos = targetPos.add((guardian.getRandom().nextDouble() - 0.5) * 50, (guardian.getRandom().nextDouble() - 0.5) * 50, (guardian.getRandom().nextDouble() - 0.5) * 50); // targetPos = targetPos.add(0, 20, 0); double targetRelX = targetPos.x - headX; double targetRelY = targetPos.y - headY; double targetRelZ = targetPos.z - headZ; if (!guardian.isSilent()) { - guardian.world.playEvent(null, 1017, guardian.getPosition(), 0); + guardian.level.levelEvent(null, 1017, guardian.blockPosition(), 0); } - GuardianProjectileEntity projectile = new GuardianProjectileEntity(this.guardian.world, this.guardian, targetRelX, targetRelY, targetRelZ, targetPos, 25, GuardianFightManager.COVER_FIRE_POWER); - projectile.setLocationAndAngles(headX, headY, headZ, 0.0F, 0.0F); - guardian.world.addEntity(projectile); + GuardianProjectileEntity projectile = new GuardianProjectileEntity(this.guardian.level, this.guardian, targetRelX, targetRelY, targetRelZ, targetPos, 25, GuardianFightManager.COVER_FIRE_POWER); + projectile.moveTo(headX, headY, headZ, 0.0F, 0.0F); + guardian.level.addFreshEntity(projectile); - double distanceFromTarget = targetLocation == null ? 0.0D : targetLocation.squareDistanceTo(guardian.getPosX(), guardian.getPosY(), guardian.getPosZ()); - if (currentPath != null && currentPath.isFinished() && distanceFromTarget < 100) { + double distanceFromTarget = targetLocation == null ? 0.0D : targetLocation.distanceToSqr(guardian.getX(), guardian.getY(), guardian.getZ()); + if (currentPath != null && currentPath.isDone() && distanceFromTarget < 100) { guardian.getPhaseManager().setPhase(PhaseType.START).immediateAttack(); return; } @@ -67,10 +67,10 @@ public void initPhase() { } private void updatePathing() { - if (this.currentPath == null || this.currentPath.isFinished()) { + if (this.currentPath == null || this.currentPath.isDone()) { int nearestIndex = this.guardian.initPathPoints(false); int endIndex = nearestIndex; - if (this.guardian.getRNG().nextInt(8) == 0) { + if (this.guardian.getRandom().nextInt(8) == 0) { this.clockwise = !this.clockwise; } @@ -84,7 +84,7 @@ private void updatePathing() { this.currentPath = this.guardian.findPath(nearestIndex, endIndex, null); if (this.currentPath != null) { - this.currentPath.incrementPathIndex(); + this.currentPath.advance(); } } @@ -92,12 +92,12 @@ private void updatePathing() { } private void navigateToNextPathNode() { - if (currentPath != null && !currentPath.isFinished()) { - Vector3i nextPos = currentPath.func_242948_g(); - currentPath.incrementPathIndex(); + if (currentPath != null && !currentPath.isDone()) { + Vector3i nextPos = currentPath.getNextNodePos(); + currentPath.advance(); double x = nextPos.getX(); double z = nextPos.getZ(); - double y = (float) nextPos.getY() + guardian.getRNG().nextFloat() * 20.0F; + double y = (float) nextPos.getY() + guardian.getRandom().nextFloat() * 20.0F; targetLocation = new Vector3d(x, y, z); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/DyingPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/DyingPhase.java index cf2058217..e0ab6709d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/DyingPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/DyingPhase.java @@ -20,10 +20,10 @@ public DyingPhase(DraconicGuardianEntity guardisn) { public void clientTick() { if (this.time++ % 10 == 0) { - float f = (this.guardian.getRNG().nextFloat() - 0.5F) * 8.0F; - float f1 = (this.guardian.getRNG().nextFloat() - 0.5F) * 4.0F; - float f2 = (this.guardian.getRNG().nextFloat() - 0.5F) * 8.0F; - this.guardian.world.addParticle(ParticleTypes.EXPLOSION_EMITTER, this.guardian.getPosX() + (double)f, this.guardian.getPosY() + 2.0D + (double)f1, this.guardian.getPosZ() + (double)f2, 0.0D, 0.0D, 0.0D); + float f = (this.guardian.getRandom().nextFloat() - 0.5F) * 8.0F; + float f1 = (this.guardian.getRandom().nextFloat() - 0.5F) * 4.0F; + float f2 = (this.guardian.getRandom().nextFloat() - 0.5F) * 8.0F; + this.guardian.level.addParticle(ParticleTypes.EXPLOSION_EMITTER, this.guardian.getX() + (double)f, this.guardian.getY() + 2.0D + (double)f1, this.guardian.getZ() + (double)f2, 0.0D, 0.0D, 0.0D); } } @@ -31,12 +31,12 @@ public void clientTick() { public void serverTick() { ++this.time; if (this.targetLocation == null) { - BlockPos blockpos = this.guardian.world.getHeight(Heightmap.Type.MOTION_BLOCKING, EndPodiumFeature.END_PODIUM_LOCATION); - this.targetLocation = Vector3d.copyCenteredHorizontally(blockpos); + BlockPos blockpos = this.guardian.level.getHeightmapPos(Heightmap.Type.MOTION_BLOCKING, EndPodiumFeature.END_PODIUM_LOCATION); + this.targetLocation = Vector3d.atBottomCenterOf(blockpos); } - double d0 = this.targetLocation.squareDistanceTo(this.guardian.getPosX(), this.guardian.getPosY(), this.guardian.getPosZ()); - if (!(d0 < 100.0D) && !(d0 > 22500.0D) && !this.guardian.collidedHorizontally && !this.guardian.collidedVertically) { + double d0 = this.targetLocation.distanceToSqr(this.guardian.getX(), this.guardian.getY(), this.guardian.getZ()); + if (!(d0 < 100.0D) && !(d0 > 22500.0D) && !this.guardian.horizontalCollision && !this.guardian.verticalCollision) { this.guardian.setHealth(1.0F); } else { this.guardian.setHealth(0.0F); diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/FlamingSittingPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/FlamingSittingPhase.java index 0a6b0e951..13f1c7f92 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/FlamingSittingPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/FlamingSittingPhase.java @@ -23,21 +23,21 @@ public void clientTick() { ++this.flameTicks; if (this.flameTicks % 2 == 0 && this.flameTicks < 10) { Vector3d vector3d = this.guardian.getHeadLookVec(1.0F).normalize(); - vector3d.rotateYaw((-(float)Math.PI / 4F)); - double d0 = this.guardian.dragonPartHead.getPosX(); - double d1 = this.guardian.dragonPartHead.getPosYHeight(0.5D); - double d2 = this.guardian.dragonPartHead.getPosZ(); + vector3d.yRot((-(float)Math.PI / 4F)); + double d0 = this.guardian.dragonPartHead.getX(); + double d1 = this.guardian.dragonPartHead.getY(0.5D); + double d2 = this.guardian.dragonPartHead.getZ(); for(int i = 0; i < 8; ++i) { - double d3 = d0 + this.guardian.getRNG().nextGaussian() / 2.0D; - double d4 = d1 + this.guardian.getRNG().nextGaussian() / 2.0D; - double d5 = d2 + this.guardian.getRNG().nextGaussian() / 2.0D; + double d3 = d0 + this.guardian.getRandom().nextGaussian() / 2.0D; + double d4 = d1 + this.guardian.getRandom().nextGaussian() / 2.0D; + double d5 = d2 + this.guardian.getRandom().nextGaussian() / 2.0D; for(int j = 0; j < 6; ++j) { - this.guardian.world.addParticle(ParticleTypes.DRAGON_BREATH, d3, d4, d5, -vector3d.x * (double)0.08F * (double)j, -vector3d.y * (double)0.6F, -vector3d.z * (double)0.08F * (double)j); + this.guardian.level.addParticle(ParticleTypes.DRAGON_BREATH, d3, d4, d5, -vector3d.x * (double)0.08F * (double)j, -vector3d.y * (double)0.6F, -vector3d.z * (double)0.08F * (double)j); } - vector3d.rotateYaw(0.19634955F); + vector3d.yRot(0.19634955F); } } @@ -52,32 +52,32 @@ public void serverTick() { this.guardian.getPhaseManager().setPhase(PhaseType.SITTING_SCANNING); } } else if (this.flameTicks == 10) { - Vector3d vector3d = (new Vector3d(this.guardian.dragonPartHead.getPosX() - this.guardian.getPosX(), 0.0D, this.guardian.dragonPartHead.getPosZ() - this.guardian.getPosZ())).normalize(); + Vector3d vector3d = (new Vector3d(this.guardian.dragonPartHead.getX() - this.guardian.getX(), 0.0D, this.guardian.dragonPartHead.getZ() - this.guardian.getZ())).normalize(); float f = 5.0F; - double d0 = this.guardian.dragonPartHead.getPosX() + vector3d.x * 5.0D / 2.0D; - double d1 = this.guardian.dragonPartHead.getPosZ() + vector3d.z * 5.0D / 2.0D; - double d2 = this.guardian.dragonPartHead.getPosYHeight(0.5D); + double d0 = this.guardian.dragonPartHead.getX() + vector3d.x * 5.0D / 2.0D; + double d1 = this.guardian.dragonPartHead.getZ() + vector3d.z * 5.0D / 2.0D; + double d2 = this.guardian.dragonPartHead.getY(0.5D); double d3 = d2; BlockPos.Mutable blockpos$mutable = new BlockPos.Mutable(d0, d2, d1); - while(this.guardian.world.isAirBlock(blockpos$mutable)) { + while(this.guardian.level.isEmptyBlock(blockpos$mutable)) { --d3; if (d3 < 0.0D) { d3 = d2; break; } - blockpos$mutable.setPos(d0, d3, d1); + blockpos$mutable.set(d0, d3, d1); } d3 = (double)(MathHelper.floor(d3) + 1); - this.areaEffectCloud = new AreaEffectCloudEntity(this.guardian.world, d0, d3, d1); + this.areaEffectCloud = new AreaEffectCloudEntity(this.guardian.level, d0, d3, d1); this.areaEffectCloud.setOwner(this.guardian); this.areaEffectCloud.setRadius(5.0F); this.areaEffectCloud.setDuration(200); - this.areaEffectCloud.setParticleData(ParticleTypes.DRAGON_BREATH); - this.areaEffectCloud.addEffect(new EffectInstance(Effects.INSTANT_DAMAGE)); - this.guardian.world.addEntity(this.areaEffectCloud); + this.areaEffectCloud.setParticle(ParticleTypes.DRAGON_BREATH); + this.areaEffectCloud.addEffect(new EffectInstance(Effects.HARM)); + this.guardian.level.addFreshEntity(this.areaEffectCloud); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/HoverPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/HoverPhase.java index 6e6ad6bc3..027ecbde0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/HoverPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/HoverPhase.java @@ -16,7 +16,7 @@ public HoverPhase(DraconicGuardianEntity guardisn) { int i = 0; public void serverTick() { if (this.targetLocation == null) { - this.targetLocation = this.guardian.getPositionVec(); + this.targetLocation = this.guardian.position(); } // // if (i++ > 10*20) { diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/LandingApproachPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/LandingApproachPhase.java index dcd3b8c8d..4faeb6511 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/LandingApproachPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/LandingApproachPhase.java @@ -15,7 +15,7 @@ @Deprecated //Old vanilla phase public class LandingApproachPhase extends Phase { - private static final EntityPredicate field_221118_b = (new EntityPredicate()).setDistance(128.0D); + private static final EntityPredicate NEAR_EGG_TARGETING = (new EntityPredicate()).range(128.0D); private Path currentPath; private Vector3d targetLocation; @@ -33,8 +33,8 @@ public void initPhase() { } public void serverTick() { - double d0 = this.targetLocation == null ? 0.0D : this.targetLocation.squareDistanceTo(this.guardian.getPosX(), this.guardian.getPosY(), this.guardian.getPosZ()); - if (d0 < 100.0D || d0 > 22500.0D || this.guardian.collidedHorizontally || this.guardian.collidedVertically) { + double d0 = this.targetLocation == null ? 0.0D : this.targetLocation.distanceToSqr(this.guardian.getX(), this.guardian.getY(), this.guardian.getZ()); + if (d0 < 100.0D || d0 > 22500.0D || this.guardian.horizontalCollision || this.guardian.verticalCollision) { this.findNewTarget(); } @@ -46,13 +46,13 @@ public Vector3d getTargetLocation() { } private void findNewTarget() { - if (this.currentPath == null || this.currentPath.isFinished()) { + if (this.currentPath == null || this.currentPath.isDone()) { int i = this.guardian.initPathPoints(false); - BlockPos blockpos = this.guardian.world.getHeight(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION); - PlayerEntity playerentity = this.guardian.world.getClosestPlayer(field_221118_b, (double)blockpos.getX(), (double)blockpos.getY(), (double)blockpos.getZ()); + BlockPos blockpos = this.guardian.level.getHeightmapPos(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION); + PlayerEntity playerentity = this.guardian.level.getNearestPlayer(NEAR_EGG_TARGETING, (double)blockpos.getX(), (double)blockpos.getY(), (double)blockpos.getZ()); int j; if (playerentity != null) { - Vector3d vector3d = (new Vector3d(playerentity.getPosX(), 0.0D, playerentity.getPosZ())).normalize(); + Vector3d vector3d = (new Vector3d(playerentity.getX(), 0.0D, playerentity.getZ())).normalize(); j = this.guardian.getNearestPpIdx(-vector3d.x * 40.0D, 105.0D, -vector3d.z * 40.0D); } else { j = this.guardian.getNearestPpIdx(40.0D, (double)blockpos.getY(), 0.0D); @@ -61,27 +61,27 @@ private void findNewTarget() { PathPoint pathpoint = new PathPoint(blockpos.getX(), blockpos.getY(), blockpos.getZ()); this.currentPath = this.guardian.findPath(i, j, pathpoint); if (this.currentPath != null) { - this.currentPath.incrementPathIndex(); + this.currentPath.advance(); } } this.navigateToNextPathNode(); - if (this.currentPath != null && this.currentPath.isFinished()) { + if (this.currentPath != null && this.currentPath.isDone()) { this.guardian.getPhaseManager().setPhase(PhaseType.LANDING); } } private void navigateToNextPathNode() { - if (this.currentPath != null && !this.currentPath.isFinished()) { - Vector3i vector3i = this.currentPath.func_242948_g(); - this.currentPath.incrementPathIndex(); + if (this.currentPath != null && !this.currentPath.isDone()) { + Vector3i vector3i = this.currentPath.getNextNodePos(); + this.currentPath.advance(); double d0 = (double)vector3i.getX(); double d1 = (double)vector3i.getZ(); double d2; do { - d2 = (double)((float)vector3i.getY() + this.guardian.getRNG().nextFloat() * 20.0F); + d2 = (double)((float)vector3i.getY() + this.guardian.getRandom().nextFloat() * 20.0F); } while(d2 < (double)vector3i.getY()); this.targetLocation = new Vector3d(d0, d2, d1); diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/LandingPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/LandingPhase.java index 9ab74a52c..c75ceda06 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/LandingPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/LandingPhase.java @@ -22,19 +22,19 @@ public LandingPhase(DraconicGuardianEntity guardisn) { @Override public void clientTick() { Vector3d vector3d = this.guardian.getHeadLookVec(1.0F).normalize(); - vector3d.rotateYaw((-(float)Math.PI / 4F)); - double d0 = this.guardian.dragonPartHead.getPosX(); - double d1 = this.guardian.dragonPartHead.getPosYHeight(0.5D); - double d2 = this.guardian.dragonPartHead.getPosZ(); + vector3d.yRot((-(float)Math.PI / 4F)); + double d0 = this.guardian.dragonPartHead.getX(); + double d1 = this.guardian.dragonPartHead.getY(0.5D); + double d2 = this.guardian.dragonPartHead.getZ(); for(int i = 0; i < 8; ++i) { - Random random = this.guardian.getRNG(); + Random random = this.guardian.getRandom(); double d3 = d0 + random.nextGaussian() / 2.0D; double d4 = d1 + random.nextGaussian() / 2.0D; double d5 = d2 + random.nextGaussian() / 2.0D; - Vector3d vector3d1 = this.guardian.getMotion(); - this.guardian.world.addParticle(ParticleTypes.DRAGON_BREATH, d3, d4, d5, -vector3d.x * (double)0.08F + vector3d1.x, -vector3d.y * (double)0.3F + vector3d1.y, -vector3d.z * (double)0.08F + vector3d1.z); - vector3d.rotateYaw(0.19634955F); + Vector3d vector3d1 = this.guardian.getDeltaMovement(); + this.guardian.level.addParticle(ParticleTypes.DRAGON_BREATH, d3, d4, d5, -vector3d.x * (double)0.08F + vector3d1.x, -vector3d.y * (double)0.3F + vector3d1.y, -vector3d.z * (double)0.08F + vector3d1.z); + vector3d.yRot(0.19634955F); } } @@ -42,10 +42,10 @@ public void clientTick() { @Override public void serverTick() { if (this.targetLocation == null) { - this.targetLocation = Vector3d.copyCenteredHorizontally(this.guardian.world.getHeight(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION)); + this.targetLocation = Vector3d.atBottomCenterOf(this.guardian.level.getHeightmapPos(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION)); } - if (this.targetLocation.squareDistanceTo(this.guardian.getPosX(), this.guardian.getPosY(), this.guardian.getPosZ()) < 1.0D) { + if (this.targetLocation.distanceToSqr(this.guardian.getX(), this.guardian.getY(), this.guardian.getZ()) < 1.0D) { this.guardian.getPhaseManager().getPhase(PhaseType.SITTING_FLAMING).resetFlameCount(); this.guardian.getPhaseManager().setPhase(PhaseType.SITTING_SCANNING); } @@ -59,7 +59,7 @@ public float getMaxRiseOrFall() { @Override public float getYawFactor() { - float f = MathHelper.sqrt(Entity.horizontalMag(this.guardian.getMotion())) + 1.0F; + float f = MathHelper.sqrt(Entity.getHorizontalDistanceSqr(this.guardian.getDeltaMovement())) + 1.0F; float f1 = Math.min(f, 40.0F); return f1 / f; } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/Phase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/Phase.java index 85c6423cb..5c8214c7b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/Phase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/Phase.java @@ -62,7 +62,7 @@ public float onAttacked(DamageSource source, float damage) { @Override public float getYawFactor() { - float f = MathHelper.sqrt(Entity.horizontalMag(this.guardian.getMotion())) + 1.0F; + float f = MathHelper.sqrt(Entity.getHorizontalDistanceSqr(this.guardian.getDeltaMovement())) + 1.0F; float f1 = Math.min(f, 40.0F); return 0.7F / f1 / f; } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/PhaseManager.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/PhaseManager.java index 296fb47d9..21a83a3cd 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/PhaseManager.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/PhaseManager.java @@ -22,11 +22,11 @@ public T setPhase(PhaseType phaseIn) { } phase = getPhase(phaseIn); - if (!dragon.world.isRemote) { - dragon.getDataManager().set(DraconicGuardianEntity.PHASE, phaseIn.getId()); + if (!dragon.level.isClientSide) { + dragon.getEntityData().set(DraconicGuardianEntity.PHASE, phaseIn.getId()); } - LOGGER.debug("Dragon is now in phase {} on the {}", phaseIn, dragon.world.isRemote ? "client" : "server"); + LOGGER.debug("Dragon is now in phase {} on the {}", phaseIn, dragon.level.isClientSide ? "client" : "server"); phase.initPhase(); return (T) phase; } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/ScanningSittingPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/ScanningSittingPhase.java index 167154856..b2a315cdb 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/ScanningSittingPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/ScanningSittingPhase.java @@ -8,45 +8,45 @@ @Deprecated //Old vanilla phase public class ScanningSittingPhase extends SittingPhase { - private static final EntityPredicate field_221115_b = (new EntityPredicate()).setDistance(150.0D); - private final EntityPredicate field_221116_c; + private static final EntityPredicate CHARGE_TARGETING = (new EntityPredicate()).range(150.0D); + private final EntityPredicate scanTargeting; private int scanningTime; public ScanningSittingPhase(DraconicGuardianEntity guardisn) { super(guardisn); - this.field_221116_c = (new EntityPredicate()).setDistance(20.0D).setCustomPredicate((p_221114_1_) -> { - return Math.abs(p_221114_1_.getPosY() - guardisn.getPosY()) <= 10.0D; + this.scanTargeting = (new EntityPredicate()).range(20.0D).selector((p_221114_1_) -> { + return Math.abs(p_221114_1_.getY() - guardisn.getY()) <= 10.0D; }); } public void serverTick() { ++this.scanningTime; - LivingEntity livingentity = this.guardian.world.getClosestPlayer(this.field_221116_c, this.guardian, this.guardian.getPosX(), this.guardian.getPosY(), this.guardian.getPosZ()); + LivingEntity livingentity = this.guardian.level.getNearestPlayer(this.scanTargeting, this.guardian, this.guardian.getX(), this.guardian.getY(), this.guardian.getZ()); if (livingentity != null) { if (this.scanningTime > 25) { this.guardian.getPhaseManager().setPhase(PhaseType.SITTING_ATTACKING); } else { - Vector3d vector3d = (new Vector3d(livingentity.getPosX() - this.guardian.getPosX(), 0.0D, livingentity.getPosZ() - this.guardian.getPosZ())).normalize(); - Vector3d vector3d1 = (new Vector3d((double)MathHelper.sin(this.guardian.rotationYaw * ((float)Math.PI / 180F)), 0.0D, (double)(-MathHelper.cos(this.guardian.rotationYaw * ((float)Math.PI / 180F))))).normalize(); - float f = (float)vector3d1.dotProduct(vector3d); + Vector3d vector3d = (new Vector3d(livingentity.getX() - this.guardian.getX(), 0.0D, livingentity.getZ() - this.guardian.getZ())).normalize(); + Vector3d vector3d1 = (new Vector3d((double)MathHelper.sin(this.guardian.yRot * ((float)Math.PI / 180F)), 0.0D, (double)(-MathHelper.cos(this.guardian.yRot * ((float)Math.PI / 180F))))).normalize(); + float f = (float)vector3d1.dot(vector3d); float f1 = (float)(Math.acos((double)f) * (double)(180F / (float)Math.PI)) + 0.5F; if (f1 < 0.0F || f1 > 10.0F) { - double d0 = livingentity.getPosX() - this.guardian.dragonPartHead.getPosX(); - double d1 = livingentity.getPosZ() - this.guardian.dragonPartHead.getPosZ(); - double d2 = MathHelper.clamp(MathHelper.wrapDegrees(180.0D - MathHelper.atan2(d0, d1) * (double)(180F / (float)Math.PI) - (double)this.guardian.rotationYaw), -100.0D, 100.0D); - this.guardian.field_226525_bB_ *= 0.8F; + double d0 = livingentity.getX() - this.guardian.dragonPartHead.getX(); + double d1 = livingentity.getZ() - this.guardian.dragonPartHead.getZ(); + double d2 = MathHelper.clamp(MathHelper.wrapDegrees(180.0D - MathHelper.atan2(d0, d1) * (double)(180F / (float)Math.PI) - (double)this.guardian.yRot), -100.0D, 100.0D); + this.guardian.yRotA *= 0.8F; float f2 = MathHelper.sqrt(d0 * d0 + d1 * d1) + 1.0F; float f3 = f2; if (f2 > 40.0F) { f2 = 40.0F; } - this.guardian.field_226525_bB_ = (float)((double)this.guardian.field_226525_bB_ + d2 * (double)(0.7F / f2 / f3)); - this.guardian.rotationYaw += this.guardian.field_226525_bB_; + this.guardian.yRotA = (float)((double)this.guardian.yRotA + d2 * (double)(0.7F / f2 / f3)); + this.guardian.yRot += this.guardian.yRotA; } } } else if (this.scanningTime >= 100) { - livingentity = this.guardian.world.getClosestPlayer(field_221115_b, this.guardian, this.guardian.getPosX(), this.guardian.getPosY(), this.guardian.getPosZ()); + livingentity = this.guardian.level.getNearestPlayer(CHARGE_TARGETING, this.guardian, this.guardian.getX(), this.guardian.getY(), this.guardian.getZ()); this.guardian.getPhaseManager().setPhase(PhaseType.TAKEOFF); if (livingentity != null) { this.guardian.getPhaseManager().setPhase(PhaseType.CHARGE_PLAYER); diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/SittingPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/SittingPhase.java index 9146bad0f..d7678f0b1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/SittingPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/SittingPhase.java @@ -15,8 +15,8 @@ public boolean getIsStationary() { } public float onAttacked(DamageSource source, float damage) { - if (source.getImmediateSource() instanceof AbstractArrowEntity) { - source.getImmediateSource().setFire(1); + if (source.getDirectEntity() instanceof AbstractArrowEntity) { + source.getDirectEntity().setSecondsOnFire(1); return 0.0F; } else { return super.onAttacked(source, damage); diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/StartPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/StartPhase.java index d68fa2752..df7e10b6f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/StartPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/StartPhase.java @@ -44,8 +44,8 @@ public void serverTick() { ticksUntilNextAttack--; } - double distanceFromTarget = targetLocation == null ? 0.0D : targetLocation.squareDistanceTo(guardian.getPosX(), guardian.getPosY(), guardian.getPosZ()); - if (distanceFromTarget < 100.0D || distanceFromTarget > 22500.0D || guardian.collidedHorizontally || guardian.collidedVertically || ticksSinceTargetUpdate++ > (20 * 3)) { + double distanceFromTarget = targetLocation == null ? 0.0D : targetLocation.distanceToSqr(guardian.getX(), guardian.getY(), guardian.getZ()); + if (distanceFromTarget < 100.0D || distanceFromTarget > 22500.0D || guardian.horizontalCollision || guardian.verticalCollision || ticksSinceTargetUpdate++ > (20 * 3)) { ticksSinceTargetUpdate = 0; findNewTarget(); } @@ -72,8 +72,8 @@ private void findNewTarget() { } //Check if there is anyone harassing us. - PlayerEntity closestToGuardian = guardian.world.getClosestPlayer(guardian.getPosX(), guardian.getPosY(), guardian.getPosZ(), 30, true); - if (closestToGuardian != null && guardian.getRNG().nextFloat() < 0.25) { //25% chance we retaliate + PlayerEntity closestToGuardian = guardian.level.getNearestPlayer(guardian.getX(), guardian.getY(), guardian.getZ(), 30, true); + if (closestToGuardian != null && guardian.getRandom().nextFloat() < 0.25) { //25% chance we retaliate guardian.getPhaseManager().setPhase(PhaseType.COVER_FIRE); LOGGER.info("Cover Fire!!!"); return; @@ -81,15 +81,15 @@ private void findNewTarget() { //Check if we can / should enter an attack phase. BlockPos focus = guardian.getArenaOrigin(); - PlayerEntity player = guardian.world.getClosestPlayer(focus.getX(), focus.getY(), focus.getZ(), 192, true); + PlayerEntity player = guardian.level.getNearestPlayer(focus.getX(), focus.getY(), focus.getZ(), 192, true); double distanceSq; - if (player == null || (distanceSq = guardian.getDistanceSq(player)) > 180 * 180) { + if (player == null || (distanceSq = guardian.distanceToSqr(player)) > 180 * 180) { resumePathing(); return; } - if (immediateAttack || guardian.getRNG().nextFloat() > 0.75) { - if (guardian.getRNG().nextFloat() < 0.75) { + if (immediateAttack || guardian.getRandom().nextFloat() > 0.75) { + if (guardian.getRandom().nextFloat() < 0.75) { if (distanceSq > 45 * 45) { guardian.getPhaseManager().setPhase(PhaseType.BOMBARD_PLAYER).setTarget(player); LOGGER.info("Bombarding player"); @@ -109,24 +109,24 @@ private void findNewTarget() { } private void resumePathing() { - if (this.currentPath == null || this.currentPath.isFinished()) { + if (this.currentPath == null || this.currentPath.isDone()) { int nearestIndex = this.guardian.initPathPoints(false); int endIndex = nearestIndex; - if (this.guardian.getRNG().nextInt(8) == 0) { + if (this.guardian.getRandom().nextInt(8) == 0) { this.clockwise = !this.clockwise; } if (this.clockwise) { - endIndex += 5 + guardian.getRNG().nextInt(7); + endIndex += 5 + guardian.getRandom().nextInt(7); } else { - endIndex -= 5 + guardian.getRNG().nextInt(7); + endIndex -= 5 + guardian.getRandom().nextInt(7); } endIndex = Math.floorMod(endIndex, 24); this.currentPath = this.guardian.findPath(nearestIndex, endIndex, null); if (this.currentPath != null) { - this.currentPath.incrementPathIndex(); + this.currentPath.advance(); } } @@ -139,7 +139,7 @@ public void immediateAttack() { } private void attackPlayer(PlayerEntity player) { - if (guardian.getRNG().nextFloat() > 0.5F && guardian.getDistanceSq(player) >= 40) { + if (guardian.getRandom().nextFloat() > 0.5F && guardian.distanceToSqr(player) >= 40) { guardian.getPhaseManager().setPhase(PhaseType.BOMBARD_PLAYER); guardian.getPhaseManager().getPhase(PhaseType.BOMBARD_PLAYER).setTarget(player); } else { @@ -149,19 +149,19 @@ private void attackPlayer(PlayerEntity player) { } private void navigateToNextPathNode() { - if (currentPath != null && !currentPath.isFinished()) { - Vector3i nextPos = currentPath.func_242948_g(); - currentPath.incrementPathIndex(); + if (currentPath != null && !currentPath.isDone()) { + Vector3i nextPos = currentPath.getNextNodePos(); + currentPath.advance(); double x = nextPos.getX(); double z = nextPos.getZ(); - double y = (float) nextPos.getY() + guardian.getRNG().nextFloat() * 20.0F; + double y = (float) nextPos.getY() + guardian.getRandom().nextFloat() * 20.0F; targetLocation = new Vector3d(x, y, z); } } @Override public void onCrystalDestroyed(GuardianCrystalEntity crystal, BlockPos pos, DamageSource dmgSrc, @Nullable PlayerEntity plyr) { - if (plyr != null && !plyr.abilities.disableDamage) { + if (plyr != null && !plyr.abilities.invulnerable) { attackPlayer(plyr); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/TakeoffPhase.java b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/TakeoffPhase.java index 2422c788d..3c7b87d2a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/TakeoffPhase.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/guardian/control/TakeoffPhase.java @@ -23,8 +23,8 @@ public TakeoffPhase(DraconicGuardianEntity guardisn) { public void serverTick() { if (!this.firstTick && this.currentPath != null) { - BlockPos blockpos = this.guardian.world.getHeight(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION); - if (!blockpos.withinDistance(this.guardian.getPositionVec(), 10.0D)) { + BlockPos blockpos = this.guardian.level.getHeightmapPos(Heightmap.Type.MOTION_BLOCKING_NO_LEAVES, EndPodiumFeature.END_PODIUM_LOCATION); + if (!blockpos.closerThan(this.guardian.position(), 10.0D)) { this.guardian.getPhaseManager().setPhase(PhaseType.START); } } else { @@ -61,14 +61,14 @@ private void findNewTarget() { private void navigateToNextPathNode() { if (this.currentPath != null) { - this.currentPath.incrementPathIndex(); - if (!this.currentPath.isFinished()) { - Vector3i vector3i = this.currentPath.func_242948_g(); - this.currentPath.incrementPathIndex(); + this.currentPath.advance(); + if (!this.currentPath.isDone()) { + Vector3i vector3i = this.currentPath.getNextNodePos(); + this.currentPath.advance(); double d0; do { - d0 = (double)((float)vector3i.getY() + this.guardian.getRNG().nextFloat() * 20.0F); + d0 = (double)((float)vector3i.getY() + this.guardian.getRandom().nextFloat() * 20.0F); } while(d0 < (double)vector3i.getY()); this.targetLocation = new Vector3d((double)vector3i.getX(), d0, (double)vector3i.getZ()); diff --git a/src/main/java/com/brandon3055/draconicevolution/entity/projectile/DraconicProjectileEntity.java b/src/main/java/com/brandon3055/draconicevolution/entity/projectile/DraconicProjectileEntity.java index 2525fa8a1..98665e9f1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/entity/projectile/DraconicProjectileEntity.java +++ b/src/main/java/com/brandon3055/draconicevolution/entity/projectile/DraconicProjectileEntity.java @@ -18,9 +18,11 @@ import net.minecraft.nbt.CompoundNBT; import net.minecraft.nbt.ListNBT; import net.minecraft.network.IPacket; +import net.minecraft.network.PacketBuffer; import net.minecraft.network.datasync.DataParameter; import net.minecraft.network.datasync.DataSerializers; import net.minecraft.network.datasync.EntityDataManager; +import net.minecraft.network.datasync.IDataSerializer; import net.minecraft.particles.ParticleTypes; import net.minecraft.potion.EffectInstance; import net.minecraft.potion.Potion; @@ -38,9 +40,24 @@ * But on top of that it has support for all my custom damage and effects. */ public class DraconicProjectileEntity extends AbstractArrowEntity { - private static final DataParameter COLOR = EntityDataManager.createKey(DraconicProjectileEntity.class, DataSerializers.VARINT); - private static final DataParameter ENERGY_PROJECTILE = EntityDataManager.createKey(DraconicProjectileEntity.class, DataSerializers.BOOLEAN); - private static final DataParameter>> DAMAGE_MODIFIER = EntityDataManager.createKey(DraconicProjectileEntity.class, DEModules.OPTIONAL_SERIALIZER); + private static final IDataSerializer>> OPTIONAL_SERIALIZER = new IDataSerializer>>() { + public void write(PacketBuffer buf, Optional> value) { + buf.writeBoolean(value.isPresent()); + value.ifPresent(module -> buf.writeResourceLocation(module.getRegistryName())); + } + + public Optional> read(PacketBuffer buf) { + Module module = DEModules.MODULE_REGISTRY.getValue(buf.readResourceLocation()); + return !buf.readBoolean() || module == null ? Optional.empty() : Optional.of(module); + } + + public Optional> copy(Optional> value) { + return value; + } + }; + private static final DataParameter COLOR = EntityDataManager.defineId(DraconicProjectileEntity.class, DataSerializers.INT); + private static final DataParameter ENERGY_PROJECTILE = EntityDataManager.defineId(DraconicProjectileEntity.class, DataSerializers.BOOLEAN); + private static final DataParameter>> DAMAGE_MODIFIER = EntityDataManager.defineId(DraconicProjectileEntity.class, OPTIONAL_SERIALIZER); private Potion potion = Potions.EMPTY; private final Set customPotionEffects = Sets.newHashSet(); private boolean fixedColor; @@ -60,8 +77,8 @@ public DraconicProjectileEntity(World worldIn, LivingEntity shooter) { public void setPotionEffect(ItemStack stack) { if (stack.getItem() == Items.TIPPED_ARROW) { - this.potion = PotionUtils.getPotionFromItem(stack); - Collection collection = PotionUtils.getFullEffectsFromItem(stack); + this.potion = PotionUtils.getPotion(stack); + Collection collection = PotionUtils.getCustomEffects(stack); if (!collection.isEmpty()) { for (EffectInstance effectinstance : collection) { this.customPotionEffects.add(new EffectInstance(effectinstance)); @@ -77,14 +94,14 @@ public void setPotionEffect(ItemStack stack) { } else if (stack.getItem() == Items.ARROW) { this.potion = Potions.EMPTY; this.customPotionEffects.clear(); - this.dataManager.set(COLOR, -1); + this.entityData.set(COLOR, -1); } } @Override - public boolean attackEntityFrom(DamageSource source, float amount) { - return super.attackEntityFrom(source, amount); + public boolean hurt(DamageSource source, float amount) { + return super.hurt(source, amount); } public static int getCustomColor(ItemStack colour) { @@ -95,41 +112,41 @@ public static int getCustomColor(ItemStack colour) { private void refreshColor() { this.fixedColor = false; if (this.potion == Potions.EMPTY && this.customPotionEffects.isEmpty()) { - this.dataManager.set(COLOR, -1); + this.entityData.set(COLOR, -1); } else { - this.dataManager.set(COLOR, PotionUtils.getPotionColorFromEffectList(PotionUtils.mergeEffects(this.potion, this.customPotionEffects))); + this.entityData.set(COLOR, PotionUtils.getColor(PotionUtils.getAllEffects(this.potion, this.customPotionEffects))); } } public void addEffect(EffectInstance effect) { this.customPotionEffects.add(effect); - this.getDataManager().set(COLOR, PotionUtils.getPotionColorFromEffectList(PotionUtils.mergeEffects(this.potion, this.customPotionEffects))); + this.getEntityData().set(COLOR, PotionUtils.getColor(PotionUtils.getAllEffects(this.potion, this.customPotionEffects))); } - protected void registerData() { - super.registerData(); - this.dataManager.register(COLOR, -1); - this.dataManager.register(ENERGY_PROJECTILE, false); - this.dataManager.register(DAMAGE_MODIFIER, Optional.empty()); + protected void defineSynchedData() { + super.defineSynchedData(); + this.entityData.define(COLOR, -1); + this.entityData.define(ENERGY_PROJECTILE, false); + this.entityData.define(DAMAGE_MODIFIER, Optional.empty()); } public void tick() { setNoGravity(true); - ticksExisted = 0; + tickCount = 0; super.tick(); - if (this.world.isRemote) { + if (this.level.isClientSide) { if (this.inGround) { - if (this.timeInGround % 5 == 0) { + if (this.inGroundTime % 5 == 0) { this.spawnPotionParticles(1); } } else { this.spawnPotionParticles(2); } - } else if (this.inGround && this.timeInGround != 0 && !this.customPotionEffects.isEmpty() && this.timeInGround >= 600) { - this.world.setEntityState(this, (byte) 0); + } else if (this.inGround && this.inGroundTime != 0 && !this.customPotionEffects.isEmpty() && this.inGroundTime >= 600) { + this.level.broadcastEntityEvent(this, (byte) 0); this.potion = Potions.EMPTY; this.customPotionEffects.clear(); - this.dataManager.set(COLOR, -1); + this.entityData.set(COLOR, -1); } } @@ -142,23 +159,23 @@ private void spawnPotionParticles(int particleCount) { double d2 = (double) (i >> 0 & 255) / 255.0D; for (int j = 0; j < particleCount; ++j) { - this.world.addParticle(ParticleTypes.ENTITY_EFFECT, this.getPosXRandom(0.5D), this.getPosYRandom(), this.getPosZRandom(0.5D), d0, d1, d2); + this.level.addParticle(ParticleTypes.ENTITY_EFFECT, this.getRandomX(0.5D), this.getRandomY(), this.getRandomZ(0.5D), d0, d1, d2); } } } public int getColor() { - return this.dataManager.get(COLOR); + return this.entityData.get(COLOR); } private void setFixedColor(int colour) { this.fixedColor = true; - this.dataManager.set(COLOR, colour); + this.entityData.set(COLOR, colour); } - public void writeAdditional(CompoundNBT compound) { - super.writeAdditional(compound); + public void addAdditionalSaveData(CompoundNBT compound) { + super.addAdditionalSaveData(compound); if (this.potion != Potions.EMPTY && this.potion != null) { compound.putString("Potion", Registry.POTION.getKey(this.potion).toString()); } @@ -171,7 +188,7 @@ public void writeAdditional(CompoundNBT compound) { ListNBT listnbt = new ListNBT(); for (EffectInstance effectinstance : this.customPotionEffects) { - listnbt.add(effectinstance.write(new CompoundNBT())); + listnbt.add(effectinstance.save(new CompoundNBT())); } compound.put("CustomPotionEffects", listnbt); @@ -179,13 +196,13 @@ public void writeAdditional(CompoundNBT compound) { } - public void readAdditional(CompoundNBT compound) { - super.readAdditional(compound); + public void readAdditionalSaveData(CompoundNBT compound) { + super.readAdditionalSaveData(compound); if (compound.contains("Potion", 8)) { - this.potion = PotionUtils.getPotionTypeFromNBT(compound); + this.potion = PotionUtils.getPotion(compound); } - for (EffectInstance effectinstance : PotionUtils.getFullEffectsFromTag(compound)) { + for (EffectInstance effectinstance : PotionUtils.getCustomEffects(compound)) { this.addEffect(effectinstance); } @@ -197,27 +214,27 @@ public void readAdditional(CompoundNBT compound) { } - protected void arrowHit(LivingEntity living) { - super.arrowHit(living); + protected void doPostHurtEffects(LivingEntity living) { + super.doPostHurtEffects(living); for (EffectInstance effectinstance : this.potion.getEffects()) { - living.addPotionEffect(new EffectInstance(effectinstance.getPotion(), Math.max(effectinstance.getDuration() / 8, 1), effectinstance.getAmplifier(), effectinstance.isAmbient(), effectinstance.doesShowParticles())); + living.addEffect(new EffectInstance(effectinstance.getEffect(), Math.max(effectinstance.getDuration() / 8, 1), effectinstance.getAmplifier(), effectinstance.isAmbient(), effectinstance.isVisible())); } if (!this.customPotionEffects.isEmpty()) { for (EffectInstance effectinstance1 : this.customPotionEffects) { - living.addPotionEffect(effectinstance1); + living.addEffect(effectinstance1); } } } - protected ItemStack getArrowStack() { + protected ItemStack getPickupItem() { if (this.customPotionEffects.isEmpty() && this.potion == Potions.EMPTY) { return new ItemStack(Items.ARROW); } else { ItemStack itemstack = new ItemStack(Items.TIPPED_ARROW); - PotionUtils.addPotionToItemStack(itemstack, this.potion); - PotionUtils.appendEffects(itemstack, this.customPotionEffects); + PotionUtils.setPotion(itemstack, this.potion); + PotionUtils.setCustomEffects(itemstack, this.customPotionEffects); if (this.fixedColor) { itemstack.getOrCreateTag().putInt("CustomPotionColor", this.getColor()); } @@ -227,7 +244,7 @@ protected ItemStack getArrowStack() { } @OnlyIn(Dist.CLIENT) - public void handleStatusUpdate(byte id) { + public void handleEntityEvent(byte id) { if (id == 0) { int i = this.getColor(); if (i != -1) { @@ -236,16 +253,16 @@ public void handleStatusUpdate(byte id) { double d2 = (double) (i >> 0 & 255) / 255.0D; for (int j = 0; j < 20; ++j) { - this.world.addParticle(ParticleTypes.ENTITY_EFFECT, this.getPosXRandom(0.5D), this.getPosYRandom(), this.getPosZRandom(0.5D), d0, d1, d2); + this.level.addParticle(ParticleTypes.ENTITY_EFFECT, this.getRandomX(0.5D), this.getRandomY(), this.getRandomZ(0.5D), d0, d1, d2); } } } else { - super.handleStatusUpdate(id); + super.handleEntityEvent(id); } } @Override - public IPacket createSpawnPacket() { + public IPacket getAddEntityPacket() { return NetworkHooks.getEntitySpawningPacket(this); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/handlers/BinderHandler.java b/src/main/java/com/brandon3055/draconicevolution/handlers/BinderHandler.java index 7280a38f4..57e8e52cb 100644 --- a/src/main/java/com/brandon3055/draconicevolution/handlers/BinderHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/handlers/BinderHandler.java @@ -43,7 +43,7 @@ import java.util.OptionalDouble; import static net.minecraft.client.renderer.RenderState.TRANSLUCENT_TRANSPARENCY; -import static net.minecraft.client.renderer.RenderState.field_239235_M_; +import static net.minecraft.client.renderer.RenderState.VIEW_OFFSET_Z_LAYERING; /** * Created by brandon3055 on 26/11/2016. @@ -57,15 +57,15 @@ public class BinderHandler { * @return true if an operation occurred (Cancels the right click event) */ public static boolean onBinderUse(PlayerEntity player, Hand hand, World world, BlockPos blockClicked, @Nonnull ItemStack binder, Direction sideClicked) { - TileEntity tile = world.getTileEntity(blockClicked); + TileEntity tile = world.getBlockEntity(blockClicked); boolean isBound = isBound(binder); //If the tile is linkable and the player is sneaking bind the tile to the tool. - if (tile instanceof ICrystalLink && player.isSneaking()) { + if (tile instanceof ICrystalLink && player.isShiftKeyDown()) { bind(binder, blockClicked); - if (world.isRemote) { - ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.pos_saved_to_tool").mergeStyle(TextFormatting.GREEN), 99); - player.swingArm(hand); + if (world.isClientSide) { + ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.pos_saved_to_tool").withStyle(TextFormatting.GREEN), 99); + player.swing(hand); } return true; } @@ -73,7 +73,7 @@ public static boolean onBinderUse(PlayerEntity player, Hand hand, World world, B //If the tool is not bound but the player clicked on a linkable block then give them a hint. //Note: We don't want to do this if they did not click on a linkable block because that would break other mods that implement ICrystalBinder in their tools. if (tile instanceof ICrystalLink && !isBound) { - ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.tool_not_bound").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.tool_not_bound").withStyle(TextFormatting.RED), 99); return true; } @@ -81,17 +81,17 @@ public static boolean onBinderUse(PlayerEntity player, Hand hand, World world, B if (isBound) { BlockPos boundLinkable = getBound(binder); if (boundLinkable.equals(blockClicked)) { - ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_to_self").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.link_to_self").withStyle(TextFormatting.RED), 99); return true; } - TileEntity boundTile = world.getTileEntity(boundLinkable); + TileEntity boundTile = world.getBlockEntity(boundLinkable); if (boundTile instanceof ICrystalLink) { if (((ICrystalLink) boundTile).binderUsed(player, blockClicked, sideClicked)) { - player.swingArm(hand); + player.swing(hand); } } else { - ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.bound_to_invalid").mergeStyle(TextFormatting.RED), 99); + ChatHelper.sendIndexed(player, new TranslationTextComponent("gui.draconicevolution.energy_net.bound_to_invalid").withStyle(TextFormatting.RED), 99); } return true; } @@ -131,22 +131,22 @@ public static void renderWorldOverlay(ClientPlayerEntity player, MatrixStack mat Matrix4 mat = new Matrix4(matrixStack); BlockPos pos = getBound(stack); - boolean valid = world.getTileEntity(pos) instanceof ICrystalLink; - ActiveRenderInfo renderInfo = mc.gameRenderer.getActiveRenderInfo(); - double projectedX = renderInfo.getProjectedView().x; - double projectedY = renderInfo.getProjectedView().y; - double projectedZ = renderInfo.getProjectedView().z; + boolean valid = world.getBlockEntity(pos) instanceof ICrystalLink; + ActiveRenderInfo renderInfo = mc.gameRenderer.getMainCamera(); + double projectedX = renderInfo.getPosition().x; + double projectedY = renderInfo.getPosition().y; + double projectedZ = renderInfo.getPosition().z; BlockState state = world.getBlockState(pos); VoxelShape shape = state.getShape(world, pos); if (shape.isEmpty()) { - shape = VoxelShapes.fullCube(); + shape = VoxelShapes.block(); } - IRenderTypeBuffer.Impl getter = IRenderTypeBuffer.getImpl(Tessellator.getInstance().getBuffer()); + IRenderTypeBuffer.Impl getter = IRenderTypeBuffer.immediate(Tessellator.getInstance().getBuilder()); - Cuboid6 cuboid6 = new Cuboid6(shape.getBoundingBox()); + Cuboid6 cuboid6 = new Cuboid6(shape.bounds()); RenderSystem.disableTexture(); RenderSystem.enableBlend(); RenderSystem.blendFunc(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA); @@ -159,7 +159,7 @@ public static void renderWorldOverlay(ClientPlayerEntity player, MatrixStack mat RenderUtils.bufferCuboidSolid(builder, cuboid6, valid ? 0 : 1, valid ? 1 : 0, 0, 0.5F); ccrs.draw(); - builder = new TransformingVertexBuilder(getter.getBuffer(RenderType.getLines()), mat); + builder = new TransformingVertexBuilder(getter.getBuffer(RenderType.lines()), mat); RenderUtils.bufferCuboidOutline(builder, cuboid6, 0, 0, 0, 1); ccrs.draw(); diff --git a/src/main/java/com/brandon3055/draconicevolution/handlers/BowHandler.java b/src/main/java/com/brandon3055/draconicevolution/handlers/BowHandler.java index ce363a3d4..a449c45a7 100644 --- a/src/main/java/com/brandon3055/draconicevolution/handlers/BowHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/handlers/BowHandler.java @@ -29,7 +29,7 @@ public static ActionResult onBowRightClick(ItemStack stack, World wor return ret; } - player.setActiveHand(hand); + player.startUsingItem(hand); } return new ActionResult<>(ActionResultType.SUCCESS, stack); @@ -38,7 +38,7 @@ public static ActionResult onBowRightClick(ItemStack stack, World wor public static void onBowUsingTick(ItemStack stack, PlayerEntity player, int count) { BowHandler.BowProperties properties = new BowHandler.BowProperties(stack, player); int j = 72000 - count; - if (properties.autoFire && j >= properties.getDrawTicks()) player.stopActiveHand(); + if (properties.autoFire && j >= properties.getDrawTicks()) player.releaseUsingItem(); } public static void onPlayerStoppedUsingBow(ItemStack stack, World world, PlayerEntity player, int timeLeft) { @@ -81,7 +81,7 @@ public static void onPlayerStoppedUsingBow(ItemStack stack, World world, PlayerE // world.addEntity(customArrow); // } - world.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(), SoundEvents.ENTITY_ARROW_SHOOT, SoundCategory.NEUTRAL, 1.0F, (1.0F / (world.rand.nextFloat() * 0.4F + 1.2F) + (drawArrowSpeedModifier + (velocity / 40F)) * 0.5F)); + world.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.ARROW_SHOOT, SoundCategory.NEUTRAL, 1.0F, (1.0F / (world.random.nextFloat() * 0.4F + 1.2F) + (drawArrowSpeedModifier + (velocity / 40F)) * 0.5F)); } public static void enderShot(ItemStack stack, World world, PlayerEntity player, int count, Random itemRand, float pullSpeedModifier, float speedModifier, float soundPitchModifier, int minRelease) { @@ -186,7 +186,7 @@ else if (energyBolt && explosionPower > 0) { // cantFireMessage = "msg.de.insufficientPowerToFire.txt"; // return false; // } - else if (!energyBolt && !player.inventory.hasItemStack(ammo) && EnchantmentHelper.getEnchantmentLevel(Enchantments.INFINITY, bow) == 0 && !player.abilities.isCreativeMode) { + else if (!energyBolt && !player.inventory.contains(ammo) && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.INFINITY_ARROWS, bow) == 0 && !player.abilities.instabuild) { cantFireMessage = "msg.de.outOfArrows.txt"; return false; } @@ -227,11 +227,11 @@ public int getDrawTicks() { */ public boolean consumeArrowAndEnergy() { - if (!player.abilities.isCreativeMode) { + if (!player.abilities.instabuild) { ((WyvernBow) bow.getItem()).modifyEnergy(bow, -calculateEnergyCost()); } - if (!energyBolt && EnchantmentHelper.getEnchantmentLevel(Enchantments.INFINITY, bow) == 0 && !player.abilities.isCreativeMode) { + if (!energyBolt && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.INFINITY_ARROWS, bow) == 0 && !player.abilities.instabuild) { InventoryUtils.consumeStack(new ItemStack(Items.ARROW), player.inventory); return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/handlers/ContributorHandler.java b/src/main/java/com/brandon3055/draconicevolution/handlers/ContributorHandler.java index 4d4dbdb5e..7366cb8b1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/handlers/ContributorHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/handlers/ContributorHandler.java @@ -75,7 +75,7 @@ public static boolean isPlayerContributor(PlayerEntity player) { public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { if (event.getPlayer() instanceof ServerPlayerEntity) { for (String contribName : ContributorHandler.contributors.keySet()) { - for (String name : BrandonsCore.proxy.getMCServer().getOnlinePlayerNames()) { + for (String name : BrandonsCore.proxy.getMCServer().getPlayerNames()) { if (name.equals(contribName)) { ContributorHandler.Contributor contributor = ContributorHandler.contributors.get(contribName); //Packet Stuff @@ -270,7 +270,7 @@ public boolean isUserValid(PlayerEntity player) { return false; } if (!validated) { - isValid = !UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName()).getBytes(Charsets.UTF_8)).equals(player.getUniqueID()); + isValid = !UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName()).getBytes(Charsets.UTF_8)).equals(player.getUUID()); validated = true; } return isValid; diff --git a/src/main/java/com/brandon3055/draconicevolution/handlers/DEEventHandler.java b/src/main/java/com/brandon3055/draconicevolution/handlers/DEEventHandler.java index b37a9c7b4..dac758310 100644 --- a/src/main/java/com/brandon3055/draconicevolution/handlers/DEEventHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/handlers/DEEventHandler.java @@ -97,7 +97,7 @@ public void onDropEvent(LivingDropsEvent event) { private void handleDragonDrops(LivingDropsEvent event) { Entity entity = event.getEntity(); - if (deadDragons.contains(entity.getUniqueID())) { + if (deadDragons.contains(entity.getUUID())) { LogHelper.dev("WTF Is Going On!?!?!? The dragon is already dead how can it die again!?!?!"); LogHelper.dev("Whoever is screwing with the dragon you need to fix your shit!"); LogHelper.dev("Offending Entity: " + entity + " Class: " + entity.getClass()); @@ -110,69 +110,69 @@ private void handleDragonDrops(LivingDropsEvent event) { event.setCanceled(true); return; } - if (!entity.world.isRemote && (entity instanceof EnderDragonEntity || entity instanceof DraconicGuardianEntity)) { - deadDragons.add(entity.getUniqueID()); + if (!entity.level.isClientSide && (entity instanceof EnderDragonEntity || entity instanceof DraconicGuardianEntity)) { + deadDragons.add(entity.getUUID()); - ItemEntity item = EntityType.ITEM.create(entity.world); + ItemEntity item = EntityType.ITEM.create(entity.level); if (item != null) { item.setItem(new ItemStack(DEContent.dragon_heart)); - BlockPos podiumPos = entity.world.getHeight(Heightmap.Type.WORLD_SURFACE, EndPodiumFeature.END_PODIUM_LOCATION).add(0, 3, 0); - item.setLocationAndAngles(podiumPos.getX() + 0.5, podiumPos.getY(), podiumPos.getZ() + 0.5, 0, 0); - item.setMotion(0, 0, 0); + BlockPos podiumPos = entity.level.getHeightmapPos(Heightmap.Type.WORLD_SURFACE, EndPodiumFeature.END_PODIUM_LOCATION).offset(0, 3, 0); + item.moveTo(podiumPos.getX() + 0.5, podiumPos.getY(), podiumPos.getZ() + 0.5, 0, 0); + item.setDeltaMovement(0, 0, 0); item.age = -32767; item.setNoGravity(true); - entity.world.addEntity(item); + entity.level.addFreshEntity(item); } if (entity instanceof EnderDragonEntity) { - DragonFightManager manager = ((EnderDragonEntity) entity).getFightManager(); + DragonFightManager manager = ((EnderDragonEntity) entity).getDragonFight(); if (DEOldConfig.dragonEggSpawnOverride && manager != null && manager.hasPreviouslyKilledDragon()) { - entity.world.setBlockState(entity.world.getHeight(Heightmap.Type.WORLD_SURFACE, EndPodiumFeature.END_PODIUM_LOCATION).add(0, 0, -4), Blocks.DRAGON_EGG.getDefaultState()); + entity.level.setBlockAndUpdate(entity.level.getHeightmapPos(Heightmap.Type.WORLD_SURFACE, EndPodiumFeature.END_PODIUM_LOCATION).offset(0, 0, -4), Blocks.DRAGON_EGG.defaultBlockState()); } } if (DEOldConfig.dragonDustLootModifier > 0) { - double count = (DEOldConfig.dragonDustLootModifier * 0.9D) + (entity.world.rand.nextDouble() * (DEOldConfig.dragonDustLootModifier * 0.2)); + double count = (DEOldConfig.dragonDustLootModifier * 0.9D) + (entity.level.random.nextDouble() * (DEOldConfig.dragonDustLootModifier * 0.2)); for (int i = 0; i < (int) count; i++) { float mm = 0.3F; - ItemEntity dust = new ItemEntity(entity.world, entity.getPosX() - 2 + entity.world.rand.nextInt(4), entity.getPosY() - 2 + entity.world.rand.nextInt(4), entity.getPosZ() - 2 + entity.world.rand.nextInt(4), new ItemStack(DEContent.dust_draconium)); - dust.setMotion( - mm * ((((float) entity.world.rand.nextInt(100)) / 100F) - 0.5F), - mm * ((((float) entity.world.rand.nextInt(100)) / 100F) - 0.5F), - mm * ((((float) entity.world.rand.nextInt(100)) / 100F) - 0.5F) + ItemEntity dust = new ItemEntity(entity.level, entity.getX() - 2 + entity.level.random.nextInt(4), entity.getY() - 2 + entity.level.random.nextInt(4), entity.getZ() - 2 + entity.level.random.nextInt(4), new ItemStack(DEContent.dust_draconium)); + dust.setDeltaMovement( + mm * ((((float) entity.level.random.nextInt(100)) / 100F) - 0.5F), + mm * ((((float) entity.level.random.nextInt(100)) / 100F) - 0.5F), + mm * ((((float) entity.level.random.nextInt(100)) / 100F) - 0.5F) ); - entity.world.addEntity(dust); + entity.level.addFreshEntity(dust); } } } } private void handleSoulDrops(LivingDropsEvent event) { - if (event.getEntity().world.isRemote || !(event.getSource().damageType.equals("player") || event.getSource().damageType.equals("arrow")) || !isValidEntity(event.getEntityLiving())) { + if (event.getEntity().level.isClientSide || !(event.getSource().msgId.equals("player") || event.getSource().msgId.equals("arrow")) || !isValidEntity(event.getEntityLiving())) { return; } LivingEntity entity = event.getEntityLiving(); - Entity attacker = event.getSource().getTrueSource(); + Entity attacker = event.getSource().getEntity(); if (attacker == null || !(attacker instanceof PlayerEntity)) { return; } - int dropChanceModifier = getDropChanceFromItem(((PlayerEntity) attacker).getHeldItemMainhand()); + int dropChanceModifier = getDropChanceFromItem(((PlayerEntity) attacker).getMainHandItem()); if (dropChanceModifier == 0) { return; } - World world = entity.world; + World world = entity.level; int rand = random.nextInt(Math.max(DEOldConfig.soulDropChance / dropChanceModifier, 1)); int rand2 = random.nextInt(Math.max(DEOldConfig.passiveSoulDropChance / dropChanceModifier, 1)); boolean isAnimal = entity instanceof AnimalEntity; if ((rand == 0 && !isAnimal) || (rand2 == 0 && isAnimal)) { ItemStack soul = DEContent.mob_soul.getSoulFromEntity(entity, false); - world.addEntity(new ItemEntity(world, entity.getPosX(), entity.getPosY(), entity.getPosZ(), soul)); + world.addFreshEntity(new ItemEntity(world, entity.getX(), entity.getY(), entity.getZ(), soul)); Achievements.triggerAchievement((PlayerEntity) attacker, "draconicevolution.soul"); } } @@ -187,12 +187,12 @@ private int getDropChanceFromItem(ItemStack stack) { chance = ((IReaperItem) stack.getItem()).getReaperLevel(stack); } - chance += EnchantmentHelper.getEnchantmentLevel(EnchantmentReaper.instance, stack); + chance += EnchantmentHelper.getItemEnchantmentLevel(EnchantmentReaper.instance, stack); return chance; } private boolean isValidEntity(LivingEntity entity) { - if (!entity.isNonBoss() && !DEOldConfig.allowBossSouls) { + if (!entity.canChangeDimensions() && !DEOldConfig.allowBossSouls) { return false; } for (int i = 0; i < DEOldConfig.spawnerList.length; i++) { @@ -211,8 +211,8 @@ private boolean isValidEntity(LivingEntity entity) { public void itemToss(ItemTossEvent event) { ItemEntity item = event.getEntityItem(); PlayerEntity player = event.getPlayer(); - if (DEOldConfig.forceDroppedItemOwner && player != null && (item.getThrowerId() == null)) { - item.setThrowerId(player.getUniqueID()); + if (DEOldConfig.forceDroppedItemOwner && player != null && (item.getThrower() == null)) { + item.setThrower(player.getUUID()); } } @@ -231,7 +231,7 @@ public void rightClickBlock(PlayerInteractEvent.RightClickBlock event) { //If you cancel the right click event for one hand the event will still fire for the other hand! //This check ensures that if the event was cancels by a binder in the other hand the event for this hand will also be canceled. //@Forge THIS IS HOW IT SHOULD WORK BY DEFAULT!!!!!! - ItemStack other = player.getHeldItem(event.getHand() == Hand.OFF_HAND ? Hand.MAIN_HAND : Hand.OFF_HAND); + ItemStack other = player.getItemInHand(event.getHand() == Hand.OFF_HAND ? Hand.MAIN_HAND : Hand.OFF_HAND); if (stack.getItem() instanceof ICrystalBinder && other.getItem() instanceof ICrystalBinder) { if (event.getHand() == Hand.OFF_HAND) { event.setCanceled(true); @@ -261,7 +261,7 @@ public void rightClickBlock(PlayerInteractEvent.RightClickBlock event) { @SubscribeEvent public void rightClickItem(PlayerInteractEvent.RightClickItem event) { - if (event.getWorld().isRemote || event.isCanceled() || !event.getPlayer().isSneaking() || !(event.getItemStack().getItem() instanceof ICrystalBinder)) { + if (event.getWorld().isClientSide || event.isCanceled() || !event.getPlayer().isShiftKeyDown() || !(event.getItemStack().getItem() instanceof ICrystalBinder)) { return; } diff --git a/src/main/java/com/brandon3055/draconicevolution/handlers/DislocatorLinkHandler.java b/src/main/java/com/brandon3055/draconicevolution/handlers/DislocatorLinkHandler.java index 36546287c..9b0a4ab56 100644 --- a/src/main/java/com/brandon3055/draconicevolution/handlers/DislocatorLinkHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/handlers/DislocatorLinkHandler.java @@ -52,7 +52,7 @@ public static DislocatorLinkHandler getDataInstance(World world) { // return null; // } if (world instanceof ServerWorld) { - return world.getServer().getWorld(World.OVERWORLD).getSavedData().getOrCreate(() -> new DislocatorLinkHandler(SAVE_DATA_NAME), SAVE_DATA_NAME); + return world.getServer().getLevel(World.OVERWORLD).getDataStorage().computeIfAbsent(() -> new DislocatorLinkHandler(SAVE_DATA_NAME), SAVE_DATA_NAME); } return null; // if (data != null && data instanceof DislocatorLinkHandler) { @@ -69,7 +69,7 @@ public static DislocatorLinkHandler getDataInstance(World world) { public static void updateLink(World world, ItemStack stack, BlockPos pos, RegistryKey dimension) { DislocatorLinkHandler data = getDataInstance(world); - if (data == null || world.isRemote || !dislocator_p2p.isValid(stack)) { + if (data == null || world.isClientSide || !dislocator_p2p.isValid(stack)) { return; } String linkID = dislocator_p2p.getLinkID(stack); @@ -79,7 +79,7 @@ public static void updateLink(World world, ItemStack stack, BlockPos pos, Regist public static void updateLink(World world, ItemStack stack, PlayerEntity player) { DislocatorLinkHandler data = getDataInstance(world); - if (data == null || world.isRemote || !dislocator_p2p.isValid(stack)) { + if (data == null || world.isClientSide || !dislocator_p2p.isValid(stack)) { return; } String linkID = dislocator_p2p.getLinkID(stack); @@ -90,12 +90,12 @@ public static void updateLink(World world, ItemStack stack, PlayerEntity player) public static void removeLink(World world, ItemStack stack) { DislocatorLinkHandler data = getDataInstance(world); - if (data == null || world.isRemote || !dislocator_p2p.isValid(stack)) { + if (data == null || world.isClientSide || !dislocator_p2p.isValid(stack)) { return; } String linkID = dislocator_p2p.getLinkID(stack); data.linkDataMap.remove(linkID); - data.markDirty(); + data.setDirty(); } /** @@ -158,9 +158,9 @@ public static TileEntity getTargetTile(World world, ItemStack stack) { if (server == null) { return null; } - World targetWorld = server.getWorld(link.dimension); + World targetWorld = server.getLevel(link.dimension); - TileEntity tile = targetWorld.getTileEntity(link.pos); + TileEntity tile = targetWorld.getBlockEntity(link.pos); if (tile instanceof ITeleportEndPoint) { return tile; } @@ -175,12 +175,12 @@ private static Vec3D getAndValidatePlayerPos(World world, DislocatorLinkHandler return null; } PlayerList players = world.getServer().getPlayerList(); - PlayerEntity player = players.getPlayerByUUID(UUID.fromString(link.playerUUID)); - boolean flag = DataUtils.firstMatch(player.inventory.mainInventory, stack -> dislocator_p2p.isValid(stack) && dislocator_p2p.getLinkID(stack).equals(linkID)) != null; - flag = flag || DataUtils.firstMatch(player.inventory.offHandInventory, stack -> dislocator_p2p.isValid(stack) && dislocator_p2p.getLinkID(stack).equals(linkID)) != null; + PlayerEntity player = players.getPlayer(UUID.fromString(link.playerUUID)); + boolean flag = DataUtils.firstMatch(player.inventory.items, stack -> dislocator_p2p.isValid(stack) && dislocator_p2p.getLinkID(stack).equals(linkID)) != null; + flag = flag || DataUtils.firstMatch(player.inventory.offhand, stack -> dislocator_p2p.isValid(stack) && dislocator_p2p.getLinkID(stack).equals(linkID)) != null; if (!flag) { data.linkDataMap.remove(linkID); - data.markDirty(); + data.setDirty(); return null; } return new Vec3D(player); @@ -191,9 +191,9 @@ private static Vec3D getTileOrEntityPos(LinkData link, String linkID) { if (server == null) { return null; } - World targetWorld = server.getWorld(link.dimension); + World targetWorld = server.getLevel(link.dimension); - TileEntity tile = targetWorld.getTileEntity(link.pos); + TileEntity tile = targetWorld.getBlockEntity(link.pos); if (tile instanceof ITeleportEndPoint) { BlockPos tilePos = ((ITeleportEndPoint) tile).getArrivalPos(linkID); if (tilePos == null) { @@ -201,9 +201,9 @@ private static Vec3D getTileOrEntityPos(LinkData link, String linkID) { } return new Vec3D(tilePos.getX() + 0.5, tilePos.getY() + 0.2, tilePos.getZ() + 0.5); } else { - AxisAlignedBB bb = new AxisAlignedBB(link.pos, link.pos.add(1, 1, 1)); - bb.grow(5); - List items = targetWorld.getEntitiesWithinAABB(PersistentItemEntity.class, bb); + AxisAlignedBB bb = new AxisAlignedBB(link.pos, link.pos.offset(1, 1, 1)); + bb.inflate(5); + List items = targetWorld.getEntitiesOfClass(PersistentItemEntity.class, bb); for (PersistentItemEntity item : items) { ItemStack i = item.getItem(); if (dislocator_p2p.isValid(i)) { @@ -233,7 +233,7 @@ public static Vec3D getPlayerPos(String playerID, World world) { return null; } PlayerList players = world.getServer().getPlayerList(); - PlayerEntity player = players.getPlayerByUUID(UUID.fromString(playerID)); + PlayerEntity player = players.getPlayer(UUID.fromString(playerID)); return player == null ? null : new Vec3D(player); } @@ -242,7 +242,7 @@ public static Vec3D getPlayerPos(String playerID, World world) { // } @Override - public void read(CompoundNBT nbt) { + public void load(CompoundNBT nbt) { linkDataMap.clear(); ListNBT dataList = nbt.getList("LinkList", 10); dataList.forEach(nbtBase -> { @@ -252,7 +252,7 @@ public void read(CompoundNBT nbt) { } @Override - public CompoundNBT write(CompoundNBT compound) { + public CompoundNBT save(CompoundNBT compound) { ListNBT dataList = new ListNBT(); linkDataMap.forEach((id, linkData) -> dataList.add(linkData.toNBT(new CompoundNBT()))); compound.put("LinkList", dataList); @@ -279,24 +279,24 @@ public void setTarget(BlockPos pos, RegistryKey dimension) { this.pos = pos; this.dimension = dimension; isPlayer = false; - handler.markDirty(); + handler.setDirty(); } public void setTarget(String playerUUID) { this.playerUUID = playerUUID; isPlayer = true; - handler.markDirty(); + handler.setDirty(); } public CompoundNBT toNBT(CompoundNBT compound) { compound.putString("LinkID", linkID); compound.putBoolean("IsPlayer", isPlayer); - compound.putString("Dim", dimension.getLocation().toString()); + compound.putString("Dim", dimension.location().toString()); if (isPlayer) { compound.putString("PlayerID", playerUUID); } else { - compound.putLong("Pos", pos.toLong()); + compound.putLong("Pos", pos.asLong()); } return compound; } @@ -304,12 +304,12 @@ public CompoundNBT toNBT(CompoundNBT compound) { public LinkData fromNBT(CompoundNBT compound) { linkID = compound.getString("LinkID"); isPlayer = compound.getBoolean("IsPlayer"); - dimension = RegistryKey.getOrCreateKey(Registry.WORLD_KEY, new ResourceLocation(compound.getString("Dim"))); + dimension = RegistryKey.create(Registry.DIMENSION_REGISTRY, new ResourceLocation(compound.getString("Dim"))); if (isPlayer) { playerUUID = compound.getString("PlayerID"); } else { - pos = BlockPos.fromLong(compound.getLong("Pos")); + pos = BlockPos.of(compound.getLong("Pos")); } return this; } diff --git a/src/main/java/com/brandon3055/draconicevolution/handlers/ModularArmorEventHandler.java b/src/main/java/com/brandon3055/draconicevolution/handlers/ModularArmorEventHandler.java index 5032cd7d5..cf051602f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/handlers/ModularArmorEventHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/handlers/ModularArmorEventHandler.java @@ -47,20 +47,20 @@ public class ModularArmorEventHandler { private static final EquipmentSlotType[] ARMOR_SLOTS = new EquipmentSlotType[]{EquipmentSlotType.FEET, EquipmentSlotType.LEGS, EquipmentSlotType.CHEST, EquipmentSlotType.HEAD}; public static final UUID WALK_SPEED_UUID = UUID.fromString("0ea6ce8e-d2e8-11e5-ab30-625662870761"); - private static final DamageSource KILL_COMMAND = new DamageSource("administrative.kill").setDamageAllowedInCreativeMode().setDamageBypassesArmor().setDamageIsAbsolute(); + private static final DamageSource KILL_COMMAND = new DamageSource("administrative.kill").bypassInvul().bypassArmor().bypassMagic(); public static Map playersWithFlight = new WeakHashMap<>(); public static List playersWithUphillStep = new ArrayList<>(); @SubscribeEvent(priority = EventPriority.LOW) public static void onEntityAttacked(LivingAttackEvent event) { - if (event.isCanceled() || event.getAmount() <= 0 || event.getEntityLiving().world.isRemote || event.getSource() == KILL_COMMAND) { + if (event.isCanceled() || event.getAmount() <= 0 || event.getEntityLiving().level.isClientSide || event.getSource() == KILL_COMMAND) { return; } //Allows /kill to completely bypass all protections if (event.getAmount() == Float.MAX_VALUE && event.getSource() == DamageSource.OUT_OF_WORLD) { event.setCanceled(true); - event.getEntityLiving().attackEntityFrom(KILL_COMMAND, Float.MAX_VALUE); + event.getEntityLiving().hurt(KILL_COMMAND, Float.MAX_VALUE); return; } @@ -88,7 +88,7 @@ public static void onEntityAttacked(LivingAttackEvent event) { @SubscribeEvent(priority = EventPriority.LOW) public static void onEntityDamaged(LivingDamageEvent event) { - if (event.isCanceled() || event.getAmount() <= 0 || event.getEntityLiving().world.isRemote || event.getSource() == KILL_COMMAND) { + if (event.isCanceled() || event.getAmount() <= 0 || event.getEntityLiving().level.isClientSide || event.getSource() == KILL_COMMAND) { return; } @@ -126,7 +126,7 @@ public static void onEntityFall(LivingFallEvent event) { @SubscribeEvent(priority = EventPriority.HIGHEST) public static void onEntityDeath(LivingDeathEvent event) { - if (event.isCanceled() || event.getEntityLiving().world.isRemote) { + if (event.isCanceled() || event.getEntityLiving().level.isClientSide) { return; } @@ -135,14 +135,14 @@ public static void onEntityDeath(LivingDeathEvent event) { if (entity instanceof PlayerEntity) { PlayerEntity player = (PlayerEntity) entity; - NonNullList stacks = player.inventory.mainInventory; + NonNullList stacks = player.inventory.items; for (int i = 0; i < stacks.size(); ++i) { - getLastStandEntities(stacks.get(i), lastStandModules, player.inventory.currentItem == i ? EquipmentSlotType.MAINHAND : null, false); + getLastStandEntities(stacks.get(i), lastStandModules, player.inventory.selected == i ? EquipmentSlotType.MAINHAND : null, false); } for (EquipmentSlotType slot : ARMOR_SLOTS) { - getLastStandEntities(player.inventory.armorInventory.get(slot.getIndex()), lastStandModules, slot, false); + getLastStandEntities(player.inventory.armor.get(slot.getIndex()), lastStandModules, slot, false); } - for (ItemStack stack : player.inventory.offHandInventory) { + for (ItemStack stack : player.inventory.offhand) { getLastStandEntities(stack, lastStandModules, EquipmentSlotType.OFFHAND, false); } for (ItemStack stack : EquipmentManager.getAllItems(entity)) { @@ -151,7 +151,7 @@ public static void onEntityDeath(LivingDeathEvent event) { } else { if (EquipmentManager.equipModLoaded()) { for (EquipmentSlotType slot : EquipmentSlotType.values()) { - getLastStandEntities(entity.getItemStackFromSlot(slot), lastStandModules, slot, true); + getLastStandEntities(entity.getItemBySlot(slot), lastStandModules, slot, true); } } } @@ -189,14 +189,14 @@ public static void livingTick(LivingEvent.LivingUpdateEvent event) { ArmorAbilities armorAbilities = new ArmorAbilities(); if (entity instanceof PlayerEntity) { PlayerEntity player = (PlayerEntity) entity; - NonNullList stacks = player.inventory.mainInventory; + NonNullList stacks = player.inventory.items; for (int i = 0; i < stacks.size(); ++i) { - tryTickStack(stacks.get(i), player, player.inventory.currentItem == i ? EquipmentSlotType.MAINHAND : null, armorAbilities, false); + tryTickStack(stacks.get(i), player, player.inventory.selected == i ? EquipmentSlotType.MAINHAND : null, armorAbilities, false); } for (EquipmentSlotType slot : ARMOR_SLOTS) { - tryTickStack(player.inventory.armorInventory.get(slot.getIndex()), player, slot, armorAbilities, false); + tryTickStack(player.inventory.armor.get(slot.getIndex()), player, slot, armorAbilities, false); } - for (ItemStack stack : player.inventory.offHandInventory) { + for (ItemStack stack : player.inventory.offhand) { tryTickStack(stack, player, EquipmentSlotType.OFFHAND, armorAbilities, false); } if (EquipmentManager.equipModLoaded()) { @@ -206,27 +206,27 @@ public static void livingTick(LivingEvent.LivingUpdateEvent event) { } } else { for (EquipmentSlotType slot : EquipmentSlotType.values()) { - tryTickStack(entity.getItemStackFromSlot(slot), entity, slot, armorAbilities, false); + tryTickStack(entity.getItemBySlot(slot), entity, slot, armorAbilities, false); } } //region/*---------------- HillStep -----------------*/ - if (entity.world.isRemote) { + if (entity.level.isClientSide) { ItemStack chestStack = ModularChestpiece.getChestpiece(entity); LazyOptional optional = chestStack.getCapability(DECapabilities.MODULE_HOST_CAPABILITY); boolean hasHost = !chestStack.isEmpty() && optional.isPresent(); - boolean highStepListed = playersWithUphillStep.contains(entity.getUniqueID()) && entity.stepHeight >= 1f; + boolean highStepListed = playersWithUphillStep.contains(entity.getUUID()) && entity.maxUpStep >= 1f; boolean hasHighStep = hasHost && optional.orElseThrow(IllegalStateException::new).getEntitiesByType(ModuleTypes.HILL_STEP).findAny().isPresent(); if (hasHighStep && !highStepListed) { - playersWithUphillStep.add(entity.getUniqueID()); - entity.stepHeight = 1.0625f; + playersWithUphillStep.add(entity.getUUID()); + entity.maxUpStep = 1.0625f; } if (!hasHighStep && highStepListed) { - playersWithUphillStep.remove(entity.getUniqueID()); - entity.stepHeight = 0.6F; + playersWithUphillStep.remove(entity.getUUID()); + entity.maxUpStep = 0.6F; } } @@ -248,14 +248,14 @@ public static void livingTick(LivingEvent.LivingUpdateEvent event) { AttributeModifier currentModifier = entity.getAttribute(speedAttr).getModifier(WALK_SPEED_UUID); if (speedModifier > 0) { if (currentModifier == null) { - entity.getAttribute(speedAttr).applyNonPersistentModifier(new AttributeModifier(WALK_SPEED_UUID, speedAttr.getAttributeName(), speedModifier, AttributeModifier.Operation.MULTIPLY_BASE)); + entity.getAttribute(speedAttr).addTransientModifier(new AttributeModifier(WALK_SPEED_UUID, speedAttr.getDescriptionId(), speedModifier, AttributeModifier.Operation.MULTIPLY_BASE)); } else if (currentModifier.getAmount() != speedModifier) { entity.getAttribute(speedAttr).removeModifier(currentModifier); - entity.getAttribute(speedAttr).applyNonPersistentModifier(new AttributeModifier(WALK_SPEED_UUID, speedAttr.getAttributeName(), speedModifier, AttributeModifier.Operation.MULTIPLY_BASE)); + entity.getAttribute(speedAttr).addTransientModifier(new AttributeModifier(WALK_SPEED_UUID, speedAttr.getDescriptionId(), speedModifier, AttributeModifier.Operation.MULTIPLY_BASE)); } - if (!entity.isOnGround() && entity.getRidingEntity() == null) { - entity.jumpMovementFactor = 0.02F + (0.02F * (float) speedModifier); + if (!entity.isOnGround() && entity.getVehicle() == null) { + entity.flyingSpeed = 0.02F + (0.02F * (float) speedModifier); } } else { if (currentModifier != null) { @@ -271,10 +271,10 @@ public static void livingTick(LivingEvent.LivingUpdateEvent event) { PlayerEntity player = (PlayerEntity) entity; boolean canFly = true; boolean noPower = false; - if (armorAbilities.creativeFlight && armorAbilities.flightPower != null && !player.abilities.isCreativeMode) { + if (armorAbilities.creativeFlight && armorAbilities.flightPower != null && !player.abilities.instabuild) { canFly = armorAbilities.flightPower.getOPStored() >= EquipCfg.creativeFlightEnergy; noPower = !canFly; - if (canFly && player.abilities.isFlying && !entity.world.isRemote) { + if (canFly && player.abilities.flying && !entity.level.isClientSide) { if (armorAbilities.flightPower instanceof IOPStorageModifiable) { ((IOPStorageModifiable) armorAbilities.flightPower).modifyEnergyStored(-EquipCfg.creativeFlightEnergy); } else { @@ -283,32 +283,32 @@ public static void livingTick(LivingEvent.LivingUpdateEvent event) { } } if (armorAbilities.creativeFlight && canFly) { - player.abilities.allowFlying = true; + player.abilities.mayfly = true; playersWithFlight.put(player, true); } else { if (!playersWithFlight.containsKey(player)) { playersWithFlight.put(player, false); } - if (playersWithFlight.get(player) && !entity.world.isRemote) { + if (playersWithFlight.get(player) && !entity.level.isClientSide) { playersWithFlight.put(player, false); - if (!player.abilities.isCreativeMode) { - boolean wasFlying = player.abilities.isFlying; - player.abilities.allowFlying = false; - player.abilities.isFlying = false; - player.sendPlayerAbilities(); + if (!player.abilities.instabuild) { + boolean wasFlying = player.abilities.flying; + player.abilities.mayfly = false; + player.abilities.flying = false; + player.onUpdateAbilities(); if (wasFlying && noPower) { player.tryToStartFallFlying(); } } } - if (player.world.isRemote && playersWithFlight.get(player)) { + if (player.level.isClientSide && playersWithFlight.get(player)) { playersWithFlight.put(player, false); - if (!player.abilities.isCreativeMode) { - player.abilities.allowFlying = false; - player.abilities.isFlying = false; + if (!player.abilities.instabuild) { + player.abilities.mayfly = false; + player.abilities.flying = false; } } } @@ -344,7 +344,7 @@ private static void tryTickStack(ItemStack stack, LivingEntity entity, Equipment if (stack.getItem() instanceof IModularItem) { ((IModularItem) stack.getItem()).handleTick(stack, entity, slot, equipMod); - if ((slot != null && slot.getSlotType() == EquipmentSlotType.Group.ARMOR) || equipMod) { + if ((slot != null && slot.getType() == EquipmentSlotType.Group.ARMOR) || equipMod) { LazyOptional optional = stack.getCapability(DECapabilities.MODULE_HOST_CAPABILITY); optional.ifPresent(host -> { gatherArmorProps(stack, host, entity, abilities); @@ -357,8 +357,8 @@ private static void tryTickStack(ItemStack stack, LivingEntity entity, Equipment public static void onLivingJumpEvent(LivingEvent.LivingJumpEvent event) { LivingEntity entity = event.getEntityLiving(); float jumpBoost = getJumpBoost(entity, false); - if (jumpBoost > 0 && !entity.isSneaking()) { - entity.addVelocity(0, 0.1F * (jumpBoost + 1), 0); + if (jumpBoost > 0 && !entity.isShiftKeyDown()) { + entity.push(0, 0.1F * (jumpBoost + 1), 0); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/init/DEContent.java b/src/main/java/com/brandon3055/draconicevolution/init/DEContent.java index 531fe11ac..d3e705b70 100644 --- a/src/main/java/com/brandon3055/draconicevolution/init/DEContent.java +++ b/src/main/java/com/brandon3055/draconicevolution/init/DEContent.java @@ -66,8 +66,8 @@ import static com.brandon3055.draconicevolution.blocks.energynet.EnergyCrystal.CrystalType.*; import static com.brandon3055.draconicevolution.inventory.GuiLayoutFactories.*; import static net.minecraft.block.material.Material.GLASS; -import static net.minecraft.block.material.Material.IRON; -import static net.minecraft.block.material.MaterialColor.GRAY; +import static net.minecraft.block.material.Material.METAL; +import static net.minecraft.block.material.MaterialColor.COLOR_GRAY; import static net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.MOD; /** @@ -122,38 +122,38 @@ public static void registerTileEntity(RegistryEvent.Register> Block[] entityDetectors = {entity_detector, entity_detector_advanced}; Block[] craftInjectors = {crafting_injector_basic, crafting_injector_wyvern, crafting_injector_awakened, crafting_injector_chaotic}; //@formatter:off - event.getRegistry().register(TileEntityType.Builder.create(TileGenerator::new, generator ).build(null).setRegistryName("generator")); - event.getRegistry().register(TileEntityType.Builder.create(TileGrinder::new, grinder ).build(null).setRegistryName("grinder")); + event.getRegistry().register(TileEntityType.Builder.of(TileGenerator::new, generator ).build(null).setRegistryName("generator")); + event.getRegistry().register(TileEntityType.Builder.of(TileGrinder::new, grinder ).build(null).setRegistryName("grinder")); // event.getRegistry().register(TileEntityType.Builder.create(TileDissEnchanter::new, disenchanter ).build(null).setRegistryName("disenchanter")); - event.getRegistry().register(TileEntityType.Builder.create(TileEnergyTransfuser::new, energy_transfuser ).build(null).setRegistryName("energy_transfuser")); + event.getRegistry().register(TileEntityType.Builder.of(TileEnergyTransfuser::new, energy_transfuser ).build(null).setRegistryName("energy_transfuser")); // event.getRegistry().register(TileEntityType.Builder.create(TileDislocatorPedestal::new, dislocator_pedestal ).build(null).setRegistryName("dislocator_pedestal")); // event.getRegistry().register(TileEntityType.Builder.create(TileDislocatorReceptacle::new, dislocator_receptacle ).build(null).setRegistryName("dislocator_receptacle")); - event.getRegistry().register(TileEntityType.Builder.create(TileCreativeOPCapacitor::new, creative_op_capacitor ).build(null).setRegistryName("creative_op_capacitor")); + event.getRegistry().register(TileEntityType.Builder.of(TileCreativeOPCapacitor::new, creative_op_capacitor ).build(null).setRegistryName("creative_op_capacitor")); // event.getRegistry().register(TileEntityType.Builder.create(TileEntityDetector::new, entityDetectors ).build(null).setRegistryName("entity_detector")); - event.getRegistry().register(TileEntityType.Builder.create(TileStabilizedSpawner::new, stabilized_spawner ).build(null).setRegistryName("stabilized_spawner")); - event.getRegistry().register(TileEntityType.Builder.create(TilePotentiometer::new, potentiometer ).build(null).setRegistryName("potentiometer")); + event.getRegistry().register(TileEntityType.Builder.of(TileStabilizedSpawner::new, stabilized_spawner ).build(null).setRegistryName("stabilized_spawner")); + event.getRegistry().register(TileEntityType.Builder.of(TilePotentiometer::new, potentiometer ).build(null).setRegistryName("potentiometer")); // event.getRegistry().register(TileEntityType.Builder.create(TileCelestialManipulator::new, celestial_manipulator ).build(null).setRegistryName("celestial_manipulator")); // event.getRegistry().register(TileEntityType.Builder.create(TileDraconiumChest::new, draconium_chest ).build(null).setRegistryName("draconium_chest")); // event.getRegistry().register(TileEntityType.Builder.create(TileParticleGenerator::new, particle_generator ).build(null).setRegistryName("particle_generator")); // event.getRegistry().register(TileEntityType.Builder.create(TilePlacedItem::new, placed_item ).build(null).setRegistryName("placed_item")); // event.getRegistry().register(TileEntityType.Builder.create(TilePortal::new, portal ).build(null).setRegistryName("portal")); // event.getRegistry().register(TileEntityType.Builder.create(TilePortalClient::new, portal ).build(null).setRegistryName("portal_client")); - event.getRegistry().register(TileEntityType.Builder.create(TileChaosCrystal::new, chaos_crystal, chaos_crystal_part ).build(null).setRegistryName("chaos_crystal")); - event.getRegistry().register(TileEntityType.Builder.create(TileCraftingInjector::new, craftInjectors ).build(null).setRegistryName("crafting_injector")); - event.getRegistry().register(TileEntityType.Builder.create(TileCraftingCore::new, crafting_core ).build(null).setRegistryName("crafting_core")); - event.getRegistry().register(TileEntityType.Builder.create(TileEnergyCore::new, energy_core ).build(null).setRegistryName("storage_core")); - event.getRegistry().register(TileEntityType.Builder.create(TileEnergyCoreStabilizer::new, energy_core_stabilizer ).build(null).setRegistryName("core_stabilizer")); - event.getRegistry().register(TileEntityType.Builder.create(TileEnergyPylon::new, energy_pylon ).build(null).setRegistryName("energy_pylon")); - event.getRegistry().register(TileEntityType.Builder.create(TileCoreStructure::new, energy_core_structure ).build(null).setRegistryName("core_structure")); - event.getRegistry().register(TileEntityType.Builder.create(TileReactorCore::new, reactor_core ).build(null).setRegistryName("reactor_core")); - event.getRegistry().register(TileEntityType.Builder.create(TileReactorStabilizer::new, reactor_stabilizer ).build(null).setRegistryName("reactor_stabilizer")); - event.getRegistry().register(TileEntityType.Builder.create(TileReactorInjector::new, reactor_injector ).build(null).setRegistryName("reactor_injector")); - event.getRegistry().register(TileEntityType.Builder.create(TileFluxGate::new, flux_gate ).build(null).setRegistryName("flux_gate")); - event.getRegistry().register(TileEntityType.Builder.create(TileFluidGate::new, fluid_gate ).build(null).setRegistryName("fluid_gate")); - - event.getRegistry().register(TileEntityType.Builder.create(TileCrystalDirectIO::new, crystal_io_basic, crystal_io_wyvern, crystal_io_draconic/*, crystal_io_chaotic*/).build(null).setRegistryName("io_crystal")); - event.getRegistry().register(TileEntityType.Builder.create(TileCrystalRelay::new, crystal_relay_basic, crystal_relay_wyvern, crystal_relay_draconic/*, crystal_relay_chaotic*/).build(null).setRegistryName("relay_crystal")); - event.getRegistry().register(TileEntityType.Builder.create(TileCrystalWirelessIO::new, crystal_wireless_basic, crystal_wireless_wyvern, crystal_wireless_draconic/*, crystal_wireless_chaotic*/).build(null).setRegistryName("wireless_crystal")); + event.getRegistry().register(TileEntityType.Builder.of(TileChaosCrystal::new, chaos_crystal, chaos_crystal_part ).build(null).setRegistryName("chaos_crystal")); + event.getRegistry().register(TileEntityType.Builder.of(TileCraftingInjector::new, craftInjectors ).build(null).setRegistryName("crafting_injector")); + event.getRegistry().register(TileEntityType.Builder.of(TileCraftingCore::new, crafting_core ).build(null).setRegistryName("crafting_core")); + event.getRegistry().register(TileEntityType.Builder.of(TileEnergyCore::new, energy_core ).build(null).setRegistryName("storage_core")); + event.getRegistry().register(TileEntityType.Builder.of(TileEnergyCoreStabilizer::new, energy_core_stabilizer ).build(null).setRegistryName("core_stabilizer")); + event.getRegistry().register(TileEntityType.Builder.of(TileEnergyPylon::new, energy_pylon ).build(null).setRegistryName("energy_pylon")); + event.getRegistry().register(TileEntityType.Builder.of(TileCoreStructure::new, energy_core_structure ).build(null).setRegistryName("core_structure")); + event.getRegistry().register(TileEntityType.Builder.of(TileReactorCore::new, reactor_core ).build(null).setRegistryName("reactor_core")); + event.getRegistry().register(TileEntityType.Builder.of(TileReactorStabilizer::new, reactor_stabilizer ).build(null).setRegistryName("reactor_stabilizer")); + event.getRegistry().register(TileEntityType.Builder.of(TileReactorInjector::new, reactor_injector ).build(null).setRegistryName("reactor_injector")); + event.getRegistry().register(TileEntityType.Builder.of(TileFluxGate::new, flux_gate ).build(null).setRegistryName("flux_gate")); + event.getRegistry().register(TileEntityType.Builder.of(TileFluidGate::new, fluid_gate ).build(null).setRegistryName("fluid_gate")); + + event.getRegistry().register(TileEntityType.Builder.of(TileCrystalDirectIO::new, crystal_io_basic, crystal_io_wyvern, crystal_io_draconic/*, crystal_io_chaotic*/).build(null).setRegistryName("io_crystal")); + event.getRegistry().register(TileEntityType.Builder.of(TileCrystalRelay::new, crystal_relay_basic, crystal_relay_wyvern, crystal_relay_draconic/*, crystal_relay_chaotic*/).build(null).setRegistryName("relay_crystal")); + event.getRegistry().register(TileEntityType.Builder.of(TileCrystalWirelessIO::new, crystal_wireless_basic, crystal_wireless_wyvern, crystal_wireless_draconic/*, crystal_wireless_chaotic*/).build(null).setRegistryName("wireless_crystal")); //@formatter:on } @@ -262,11 +262,11 @@ public static void registerContainers(RegistryEvent.Register> e @SubscribeEvent public static void registerBlocks(RegistryEvent.Register event) { - Properties machine = Properties.create(IRON, GRAY).hardnessAndResistance(3.0F, 8F).notSolid().harvestTool(ToolType.PICKAXE).harvestLevel(1); - Properties hardenedMachine = Properties.create(IRON, GRAY).hardnessAndResistance(5.0F, 12F).notSolid().harvestTool(ToolType.PICKAXE).harvestLevel(1); - Properties storageBlock = Properties.create(IRON, GRAY).hardnessAndResistance(30.0F, 600F).harvestTool(ToolType.PICKAXE).harvestLevel(3); - Properties stoneProp = Properties.create(Material.ROCK, GRAY).hardnessAndResistance(1.5F, 6F).harvestTool(ToolType.PICKAXE).harvestLevel(2); - Properties ore = Properties.create(Material.ROCK, GRAY).hardnessAndResistance(6.0F, 16F).harvestTool(ToolType.PICKAXE).harvestLevel(2); + Properties machine = Properties.of(METAL, COLOR_GRAY).strength(3.0F, 8F).noOcclusion().harvestTool(ToolType.PICKAXE).harvestLevel(1); + Properties hardenedMachine = Properties.of(METAL, COLOR_GRAY).strength(5.0F, 12F).noOcclusion().harvestTool(ToolType.PICKAXE).harvestLevel(1); + Properties storageBlock = Properties.of(METAL, COLOR_GRAY).strength(30.0F, 600F).harvestTool(ToolType.PICKAXE).harvestLevel(3); + Properties stoneProp = Properties.of(Material.STONE, COLOR_GRAY).strength(1.5F, 6F).harvestTool(ToolType.PICKAXE).harvestLevel(2); + Properties ore = Properties.of(Material.STONE, COLOR_GRAY).strength(6.0F, 16F).harvestTool(ToolType.PICKAXE).harvestLevel(2); //Machines event.getRegistry().register(new Generator(machine).setRegistryName("generator")); @@ -300,11 +300,11 @@ public static void registerBlocks(RegistryEvent.Register event) { event.getRegistry().register(new EnergyCore(hardenedMachine).setRegistryName("energy_core")); event.getRegistry().register(new EnergyCoreStabilizer(hardenedMachine).setRegistryName("energy_core_stabilizer")); event.getRegistry().register(new EnergyPylon(hardenedMachine).setRegistryName("energy_pylon")); - event.getRegistry().register(new EnergyCoreStructureBlock(Properties.create(IRON, GRAY).hardnessAndResistance(5.0F, 12F).noDrops().notSolid()).setRegistryName("energy_core_structure")); + event.getRegistry().register(new EnergyCoreStructureBlock(Properties.of(METAL, COLOR_GRAY).strength(5.0F, 12F).noDrops().noOcclusion()).setRegistryName("energy_core_structure")); //Reactor event.getRegistry().register(new ReactorCore(hardenedMachine).setRegistryName("reactor_core")); - event.getRegistry().register(new ReactorComponent(Properties.create(IRON, GRAY).hardnessAndResistance(5.0F, 6000F).notSolid(), false).setRegistryName("reactor_stabilizer")); - event.getRegistry().register(new ReactorComponent(Properties.create(IRON, GRAY).hardnessAndResistance(5.0F, 6000F).notSolid(), true).setRegistryName("reactor_injector")); + event.getRegistry().register(new ReactorComponent(Properties.of(METAL, COLOR_GRAY).strength(5.0F, 6000F).noOcclusion(), false).setRegistryName("reactor_stabilizer")); + event.getRegistry().register(new ReactorComponent(Properties.of(METAL, COLOR_GRAY).strength(5.0F, 6000F).noOcclusion(), true).setRegistryName("reactor_injector")); //Ore event.getRegistry().register(new DraconiumOre(ore).setRegistryName("overworld_draconium_ore")); event.getRegistry().register(new DraconiumOre(ore).setRegistryName("nether_draconium_ore")); @@ -314,15 +314,15 @@ public static void registerBlocks(RegistryEvent.Register event) { event.getRegistry().register(new DraconiumBlock(storageBlock).setRegistryName("awakened_draconium_block")); // //Special // event.getRegistry().register(new Portal(Properties.create(Material.GLASS).hardnessAndResistance(-1F)).setRegistryName("portal")); - event.getRegistry().register(new ChaosCrystal(Properties.create(Material.GLASS).hardnessAndResistance(100, 4000)).setRegistryName("chaos_crystal")); - event.getRegistry().register(new ChaosCrystal(Properties.create(Material.GLASS).hardnessAndResistance(100, 4000)).setRegistryName("chaos_crystal_part")); - event.getRegistry().register(new BlockBCore(Block.Properties.create(Material.ROCK, MaterialColor.BLACK).hardnessAndResistance(100.0F, 2400.0F)).setMobResistant().setRegistryName("infused_obsidian")); + event.getRegistry().register(new ChaosCrystal(Properties.of(Material.GLASS).strength(100, 4000)).setRegistryName("chaos_crystal")); + event.getRegistry().register(new ChaosCrystal(Properties.of(Material.GLASS).strength(100, 4000)).setRegistryName("chaos_crystal_part")); + event.getRegistry().register(new BlockBCore(Block.Properties.of(Material.STONE, MaterialColor.COLOR_BLACK).strength(100.0F, 2400.0F)).setMobResistant().setRegistryName("infused_obsidian")); //Energy Crystals - Properties crystalB = Properties.create(GLASS, DyeColor.BLUE).hardnessAndResistance(3.0F, 8F); //TODO may want to tweak these after testing - Properties crystalW = Properties.create(GLASS, DyeColor.PURPLE).hardnessAndResistance(5.0F, 16F); - Properties crystalD = Properties.create(GLASS, DyeColor.ORANGE).hardnessAndResistance(8.0F, 32F); - Properties crystalC = Properties.create(GLASS, DyeColor.BLACK).hardnessAndResistance(16.0F, 64F); + Properties crystalB = Properties.of(GLASS, DyeColor.BLUE).strength(3.0F, 8F); //TODO may want to tweak these after testing + Properties crystalW = Properties.of(GLASS, DyeColor.PURPLE).strength(5.0F, 16F); + Properties crystalD = Properties.of(GLASS, DyeColor.ORANGE).strength(8.0F, 32F); + Properties crystalC = Properties.of(GLASS, DyeColor.BLACK).strength(16.0F, 64F); event.getRegistry().register(new EnergyCrystal(crystalB, DRACONIUM, CRYSTAL_IO).setRegistryName("basic_io_crystal")); event.getRegistry().register(new EnergyCrystal(crystalW, WYVERN, CRYSTAL_IO).setRegistryName("wyvern_io_crystal")); event.getRegistry().register(new EnergyCrystal(crystalD, DRACONIC, CRYSTAL_IO).setRegistryName("draconic_io_crystal")); @@ -422,93 +422,93 @@ public static void registerItems(RegistryEvent.Register event) { CyclingItemGroup itemGroup = new CyclingItemGroup("draconicevolution.items", 40, tabItems, ITEM_REGISTRY_ORDER); //@formatter:off - registerItem(event, new ItemBlockBCore(generator, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(generator.getRegistryName()))); - registerItem(event, new ItemBlockBCore(grinder, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(grinder.getRegistryName()))); + registerItem(event, new ItemBlockBCore(generator, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(generator.getRegistryName()))); + registerItem(event, new ItemBlockBCore(grinder, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(grinder.getRegistryName()))); // registerItem(event, new ItemBlockBCore(disenchanter, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(disenchanter.getRegistryName()))); - registerItem(event, new ItemBlockBCore(energy_transfuser, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(energy_transfuser.getRegistryName()))); + registerItem(event, new ItemBlockBCore(energy_transfuser, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(energy_transfuser.getRegistryName()))); // registerItem(event, new ItemBlockBCore(dislocator_pedestal, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(dislocator_pedestal.getRegistryName()))); // registerItem(event, new ItemBlockBCore(dislocator_receptacle, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(dislocator_receptacle.getRegistryName()))); - registerItem(event, new ItemBlockBCore(creative_op_capacitor, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(creative_op_capacitor.getRegistryName()))); + registerItem(event, new ItemBlockBCore(creative_op_capacitor, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(creative_op_capacitor.getRegistryName()))); // registerItem(event, new ItemBlockBCore(entityDetectors[0], new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(entityDetectors[0].getRegistryName()))); // registerItem(event, new ItemBlockBCore(entityDetectors[1], new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(entityDetectors[1].getRegistryName()))); - registerItem(event, new ItemBlockBCore(stabilized_spawner, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(stabilized_spawner.getRegistryName()))); - registerItem(event, new ItemBlockBCore(potentiometer, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(potentiometer.getRegistryName()))); + registerItem(event, new ItemBlockBCore(stabilized_spawner, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(stabilized_spawner.getRegistryName()))); + registerItem(event, new ItemBlockBCore(potentiometer, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(potentiometer.getRegistryName()))); // registerItem(event, new ItemBlockBCore(celestial_manipulator, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(celestial_manipulator.getRegistryName()))); // registerItem(event, new ItemBlockBCore(draconium_chest, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(draconium_chest.getRegistryName()))); - registerItem(event, new ItemBlockBCore(particle_generator, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(particle_generator.getRegistryName()))); - registerItem(event, new ItemBlockBCore(dislocation_inhibitor, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(dislocation_inhibitor.getRegistryName()))); + registerItem(event, new ItemBlockBCore(particle_generator, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(particle_generator.getRegistryName()))); + registerItem(event, new ItemBlockBCore(dislocation_inhibitor, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(dislocation_inhibitor.getRegistryName()))); // registerItem(event, new ItemBlockBCore(placed_item, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(placed_item.getRegistryName()))); - registerItem(event, new ItemBlockBCore(flux_gate, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(flux_gate.getRegistryName()))); - registerItem(event, new ItemBlockBCore(fluid_gate, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(fluid_gate.getRegistryName()))); - registerItem(event, new ItemBlockBCore(infused_obsidian, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(infused_obsidian.getRegistryName()))); + registerItem(event, new ItemBlockBCore(flux_gate, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(flux_gate.getRegistryName()))); + registerItem(event, new ItemBlockBCore(fluid_gate, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(fluid_gate.getRegistryName()))); + registerItem(event, new ItemBlockBCore(infused_obsidian, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(infused_obsidian.getRegistryName()))); // registerItem(event, new ItemBlockBCore(portal, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(portal.getRegistryName()))); // registerItem(event, new ItemBlockBCore(chaos_crystal, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(chaos_crystal.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crafting_injector_basic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_injector_basic.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crafting_injector_wyvern, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_injector_wyvern.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crafting_injector_awakened, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_injector_awakened.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crafting_injector_chaotic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_injector_chaotic.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crafting_core, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_core.getRegistryName()))); - registerItem(event, new ItemBlockBCore(energy_core, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(energy_core.getRegistryName()))); - registerItem(event, new ItemBlockBCore(energy_core_stabilizer, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(energy_core_stabilizer.getRegistryName()))); - registerItem(event, new ItemBlockBCore(energy_pylon, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(energy_pylon.getRegistryName()))); - registerItem(event, new ItemBlockBCore(reactor_core, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(reactor_core.getRegistryName()))); - registerItem(event, new ItemBlockBCore(reactor_stabilizer, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(reactor_stabilizer.getRegistryName()))); - registerItem(event, new ItemBlockBCore(reactor_injector, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(reactor_injector.getRegistryName()))); - registerItem(event, new ItemBlockBCore(block_draconium, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(block_draconium.getRegistryName()))); - registerItem(event, new ItemBlockBCore(block_draconium_awakened, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(block_draconium_awakened.getRegistryName()))); - registerItem(event, new ItemBlockBCore(ore_draconium_end, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(ore_draconium_end.getRegistryName()))); - registerItem(event, new ItemBlockBCore(ore_draconium_nether, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(ore_draconium_nether.getRegistryName()))); - registerItem(event, new ItemBlockBCore(ore_draconium_overworld, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(ore_draconium_overworld.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crystal_io_basic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_io_basic.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crystal_io_wyvern, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_io_wyvern.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crystal_io_draconic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_io_draconic.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crafting_injector_basic, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_injector_basic.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crafting_injector_wyvern, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_injector_wyvern.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crafting_injector_awakened, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_injector_awakened.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crafting_injector_chaotic, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_injector_chaotic.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crafting_core, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crafting_core.getRegistryName()))); + registerItem(event, new ItemBlockBCore(energy_core, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(energy_core.getRegistryName()))); + registerItem(event, new ItemBlockBCore(energy_core_stabilizer, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(energy_core_stabilizer.getRegistryName()))); + registerItem(event, new ItemBlockBCore(energy_pylon, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(energy_pylon.getRegistryName()))); + registerItem(event, new ItemBlockBCore(reactor_core, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(reactor_core.getRegistryName()))); + registerItem(event, new ItemBlockBCore(reactor_stabilizer, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(reactor_stabilizer.getRegistryName()))); + registerItem(event, new ItemBlockBCore(reactor_injector, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(reactor_injector.getRegistryName()))); + registerItem(event, new ItemBlockBCore(block_draconium, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(block_draconium.getRegistryName()))); + registerItem(event, new ItemBlockBCore(block_draconium_awakened, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(block_draconium_awakened.getRegistryName()))); + registerItem(event, new ItemBlockBCore(ore_draconium_end, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(ore_draconium_end.getRegistryName()))); + registerItem(event, new ItemBlockBCore(ore_draconium_nether, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(ore_draconium_nether.getRegistryName()))); + registerItem(event, new ItemBlockBCore(ore_draconium_overworld, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(ore_draconium_overworld.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crystal_io_basic, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_io_basic.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crystal_io_wyvern, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_io_wyvern.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crystal_io_draconic, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_io_draconic.getRegistryName()))); // registerItem(event, new ItemBlockBCore(crystal_io_chaotic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_io_chaotic.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crystal_relay_basic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_relay_basic.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crystal_relay_wyvern, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_relay_wyvern.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crystal_relay_draconic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_relay_draconic.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crystal_relay_basic, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_relay_basic.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crystal_relay_wyvern, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_relay_wyvern.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crystal_relay_draconic, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_relay_draconic.getRegistryName()))); // registerItem(event, new ItemBlockBCore(crystal_relay_chaotic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_relay_chaotic.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crystal_wireless_basic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_wireless_basic.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crystal_wireless_wyvern, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_wireless_wyvern.getRegistryName()))); - registerItem(event, new ItemBlockBCore(crystal_wireless_draconic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_wireless_draconic.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crystal_wireless_basic, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_wireless_basic.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crystal_wireless_wyvern, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_wireless_wyvern.getRegistryName()))); + registerItem(event, new ItemBlockBCore(crystal_wireless_draconic, new Item.Properties().tab(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_wireless_draconic.getRegistryName()))); // registerItem(event, new ItemBlockBCore(crystal_wireless_chaotic, new Item.Properties().group(blockGroup)).setRegistryName(Objects.requireNonNull(crystal_wireless_chaotic.getRegistryName()))); //Components - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("draconium_dust")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("awakened_draconium_dust")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("draconium_ingot")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("awakened_draconium_ingot")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("draconium_nugget")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("awakened_draconium_nugget")); - registerItem(event, new ItemCore(new Item.Properties().group(itemGroup)).setRegistryName("draconium_core")); - registerItem(event, new ItemCore(new Item.Properties().group(itemGroup)).setRegistryName("wyvern_core")); - registerItem(event, new ItemCore(new Item.Properties().group(itemGroup)).setRegistryName("awakened_core")); - registerItem(event, new ItemCore(new Item.Properties().group(itemGroup)).setRegistryName("chaotic_core")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("wyvern_energy_core")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("draconic_energy_core")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("chaotic_energy_core")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("dragon_heart")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("chaos_shard")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("large_chaos_frag")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("medium_chaos_frag")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("small_chaos_frag")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("module_core")); - - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("reactor_prt_stab_frame")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("reactor_prt_in_rotor")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("reactor_prt_out_rotor")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("reactor_prt_rotor_full")); - registerItem(event, new Item(new Item.Properties().group(itemGroup)).setRegistryName("reactor_prt_focus_ring")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("draconium_dust")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("awakened_draconium_dust")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("draconium_ingot")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("awakened_draconium_ingot")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("draconium_nugget")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("awakened_draconium_nugget")); + registerItem(event, new ItemCore(new Item.Properties().tab(itemGroup)).setRegistryName("draconium_core")); + registerItem(event, new ItemCore(new Item.Properties().tab(itemGroup)).setRegistryName("wyvern_core")); + registerItem(event, new ItemCore(new Item.Properties().tab(itemGroup)).setRegistryName("awakened_core")); + registerItem(event, new ItemCore(new Item.Properties().tab(itemGroup)).setRegistryName("chaotic_core")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("wyvern_energy_core")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("draconic_energy_core")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("chaotic_energy_core")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("dragon_heart")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("chaos_shard")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("large_chaos_frag")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("medium_chaos_frag")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("small_chaos_frag")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("module_core")); + + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("reactor_prt_stab_frame")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("reactor_prt_in_rotor")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("reactor_prt_out_rotor")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("reactor_prt_rotor_full")); + registerItem(event, new Item(new Item.Properties().tab(itemGroup)).setRegistryName("reactor_prt_focus_ring")); // //Items - registerItem(event, new Magnet(new Item.Properties().maxStackSize(1).group(itemGroup), 8).setRegistryName("magnet")); - registerItem(event, new Magnet(new Item.Properties().maxStackSize(1).group(itemGroup), 32).setRegistryName("advanced_magnet")); - registerItem(event, new Dislocator(new Item.Properties().maxStackSize(1).maxDamage(31).group(itemGroup)).setRegistryName("dislocator")); - registerItem(event, new DislocatorAdvanced(new Item.Properties().maxStackSize(1).group(itemGroup)).setRegistryName("advanced_dislocator")); - registerItem(event, new DislocatorBound(new Item.Properties().maxStackSize(1).group(itemGroup)).setRegistryName("p2p_dislocator")); - registerItem(event, new DislocatorBound(new Item.Properties().maxStackSize(1).group(itemGroup)).setRegistryName("player_dislocator")); - registerItem(event, new CrystalBinder(new Item.Properties().maxStackSize(1).group(itemGroup)).setRegistryName("crystal_binder")); - registerItem(event, new InfoTablet(new Item.Properties().maxStackSize(1).group(itemGroup)).setRegistryName("info_tablet")); + registerItem(event, new Magnet(new Item.Properties().stacksTo(1).tab(itemGroup), 8).setRegistryName("magnet")); + registerItem(event, new Magnet(new Item.Properties().stacksTo(1).tab(itemGroup), 32).setRegistryName("advanced_magnet")); + registerItem(event, new Dislocator(new Item.Properties().stacksTo(1).durability(31).tab(itemGroup)).setRegistryName("dislocator")); + registerItem(event, new DislocatorAdvanced(new Item.Properties().stacksTo(1).tab(itemGroup)).setRegistryName("advanced_dislocator")); + registerItem(event, new DislocatorBound(new Item.Properties().stacksTo(1).tab(itemGroup)).setRegistryName("p2p_dislocator")); + registerItem(event, new DislocatorBound(new Item.Properties().stacksTo(1).tab(itemGroup)).setRegistryName("player_dislocator")); + registerItem(event, new CrystalBinder(new Item.Properties().stacksTo(1).tab(itemGroup)).setRegistryName("crystal_binder")); + registerItem(event, new InfoTablet(new Item.Properties().stacksTo(1).tab(itemGroup)).setRegistryName("info_tablet")); // registerItem(event, new EnderEnergyManipulator(new Item.Properties().group(itemGroup)).setRegistryName("ender_energy_manipulator")); // registerItem(event, new CreativeExchanger(new Item.Properties().group(itemGroup)).setRegistryName("creative_exchanger")); - registerItem(event, new MobSoul(new Item.Properties().group(itemGroup)).setRegistryName("mob_soul")); + registerItem(event, new MobSoul(new Item.Properties().tab(itemGroup)).setRegistryName("mob_soul")); // //Tools TechPropBuilder wyvernTools = new TechPropBuilder(WYVERN).maxStackSize(1).group(itemGroup).rarity(Rarity.UNCOMMON).maxDamage(-1); @@ -569,12 +569,12 @@ private static void registerItem(RegistryEvent.Register event, Item item) @SuppressWarnings("unchecked") @SubscribeEvent public static void registerEntities(RegistryEvent.Register> event) { - event.getRegistry().register(draconicGuardian = (EntityType)EntityType.Builder.create(DraconicGuardianEntity::new, EntityClassification.MONSTER).immuneToFire().size(16.0F, 8.0F).trackingRange(20).build("draconic_guardian").setRegistryName("draconic_guardian")); - GlobalEntityTypeAttributes.put(draconicGuardian, MobEntity.func_233666_p_().createMutableAttribute(Attributes.MAX_HEALTH, 1000.0D).create()); - event.getRegistry().register(EntityType.Builder.create(GuardianProjectileEntity::new, EntityClassification.MISC).immuneToFire().size(2F, 2F).trackingRange(20)/*.func_233608_b_(10)*/.build("guardian_projectile").setRegistryName("guardian_projectile")); - event.getRegistry().register(EntityType.Builder.create(GuardianCrystalEntity::new, EntityClassification.MISC).immuneToFire().size(2F, 2F).trackingRange(20).func_233608_b_(100).build("guardian_crystal").setRegistryName("guardian_crystal")); - event.getRegistry().register(EntityType.Builder.create(PersistentItemEntity::new, EntityClassification.MISC).size(0.25F, 0.25F).trackingRange(6).func_233608_b_(20).build("persistent_item").setRegistryName("persistent_item")); - event.getRegistry().register(EntityType.Builder.create(DraconicProjectileEntity::new, EntityClassification.MISC).size(0.5F, 0.5F).trackingRange(4).func_233608_b_(20).build("draconic_arrow").setRegistryName("draconic_arrow")); + event.getRegistry().register(draconicGuardian = (EntityType)EntityType.Builder.of(DraconicGuardianEntity::new, EntityClassification.MONSTER).fireImmune().sized(16.0F, 8.0F).clientTrackingRange(20).build("draconic_guardian").setRegistryName("draconic_guardian")); + GlobalEntityTypeAttributes.put(draconicGuardian, MobEntity.createMobAttributes().add(Attributes.MAX_HEALTH, 1000.0D).build()); + event.getRegistry().register(EntityType.Builder.of(GuardianProjectileEntity::new, EntityClassification.MISC).fireImmune().sized(2F, 2F).clientTrackingRange(20)/*.updateInterval(10)*/.build("guardian_projectile").setRegistryName("guardian_projectile")); + event.getRegistry().register(EntityType.Builder.of(GuardianCrystalEntity::new, EntityClassification.MISC).fireImmune().sized(2F, 2F).clientTrackingRange(20).updateInterval(100).build("guardian_crystal").setRegistryName("guardian_crystal")); + event.getRegistry().register(EntityType.Builder.of(PersistentItemEntity::new, EntityClassification.MISC).sized(0.25F, 0.25F).clientTrackingRange(6).updateInterval(20).build("persistent_item").setRegistryName("persistent_item")); + event.getRegistry().register(EntityType.Builder.of(DraconicProjectileEntity::new, EntityClassification.MISC).sized(0.5F, 0.5F).clientTrackingRange(4).updateInterval(20).build("draconic_arrow").setRegistryName("draconic_arrow")); } diff --git a/src/main/java/com/brandon3055/draconicevolution/init/DEModules.java b/src/main/java/com/brandon3055/draconicevolution/init/DEModules.java index 3196801ff..742d0a16c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/init/DEModules.java +++ b/src/main/java/com/brandon3055/draconicevolution/init/DEModules.java @@ -117,7 +117,7 @@ public class DEModules { private static void registerModules() { - Properties props = new Properties().group(moduleGroup); + Properties props = new Properties().tab(moduleGroup); //@formatter:off //Energy @@ -290,7 +290,7 @@ public static void createRegistries(RegistryEvent.NewRegistry event) { } private static void register(ModuleImpl module, String name) { - ModuleItem item = new ModuleItem<>(new Properties().group(moduleGroup), module); + ModuleItem item = new ModuleItem<>(new Properties().tab(moduleGroup), module); item.setRegistryName(name + "_module"); module.setRegistryName(name); module.setModuleItem(item); @@ -320,23 +320,4 @@ public static void registerModules(RegistryEvent.Register> event) { } //endregion - - - - public static final IDataSerializer>> OPTIONAL_SERIALIZER = new IDataSerializer>>() { - public void write(PacketBuffer buf, Optional> value) { - buf.writeBoolean(value.isPresent()); - value.ifPresent(module -> buf.writeResourceLocation(module.getRegistryName())); - - } - - public Optional> read(PacketBuffer buf) { - Module module = MODULE_REGISTRY.getValue(buf.readResourceLocation()); - return !buf.readBoolean() || module == null ? Optional.empty() : Optional.of(module); - } - - public Optional> copyValue(Optional> value) { - return value; - } - }; } \ No newline at end of file diff --git a/src/main/java/com/brandon3055/draconicevolution/init/OreDoublingRegistry.java b/src/main/java/com/brandon3055/draconicevolution/init/OreDoublingRegistry.java index 6213791ad..28aa3560f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/init/OreDoublingRegistry.java +++ b/src/main/java/com/brandon3055/draconicevolution/init/OreDoublingRegistry.java @@ -92,13 +92,13 @@ public static ItemStack getDoubledSmeltingResult(ItemStack stack, World world) { return stackToStackRecipes.get(stack); } - FurnaceRecipe recipe = world.getRecipeManager().getRecipe(IRecipeType.SMELTING, new RecipeWrapper(new Wrap(stack)), world).orElse(null); - return recipe == null ? ItemStack.EMPTY : recipe.getCraftingResult(new RecipeWrapper(new Wrap(stack))); + FurnaceRecipe recipe = world.getRecipeManager().getRecipeFor(IRecipeType.SMELTING, new RecipeWrapper(new Wrap(stack)), world).orElse(null); + return recipe == null ? ItemStack.EMPTY : recipe.assemble(new RecipeWrapper(new Wrap(stack))); } public static ItemStack getSmeltingResult(ItemStack stack, World world) { - FurnaceRecipe recipe = world.getRecipeManager().getRecipe(IRecipeType.SMELTING, new RecipeWrapper(new Wrap(stack)), world).orElse(null); - return recipe == null ? ItemStack.EMPTY : recipe.getCraftingResult(new RecipeWrapper(new Wrap(stack))); + FurnaceRecipe recipe = world.getRecipeManager().getRecipeFor(IRecipeType.SMELTING, new RecipeWrapper(new Wrap(stack)), world).orElse(null); + return recipe == null ? ItemStack.EMPTY : recipe.assemble(new RecipeWrapper(new Wrap(stack))); } private static void registerDEOverrides() { diff --git a/src/main/java/com/brandon3055/draconicevolution/integration/ModHelper.java b/src/main/java/com/brandon3055/draconicevolution/integration/ModHelper.java index c4c5d51a7..a2c05fc70 100644 --- a/src/main/java/com/brandon3055/draconicevolution/integration/ModHelper.java +++ b/src/main/java/com/brandon3055/draconicevolution/integration/ModHelper.java @@ -59,7 +59,7 @@ else if (avaritiaSword == null) { avaritiaSword = ForgeRegistries.ITEMS.getValue(new ResourceLocation("avaritia", "infinity_sword")); } - return avaritiaSword != null && !player.getHeldItemMainhand().isEmpty() && player.getHeldItemMainhand().getItem().equals(avaritiaSword); + return avaritiaSword != null && !player.getMainHandItem().isEmpty() && player.getMainHandItem().getItem().equals(avaritiaSword); } public static boolean isHoldingBedrockSword(PlayerEntity player) { @@ -70,7 +70,7 @@ else if (bedrockSword == null) { bedrockSword = ForgeRegistries.ITEMS.getValue(new ResourceLocation("rotarycraft", "rotarycraft_item_bedsword")); } - return bedrockSword != null && !player.getHeldItemMainhand().isEmpty() && player.getHeldItemMainhand().getItem().equals(bedrockSword); + return bedrockSword != null && !player.getMainHandItem().isEmpty() && player.getMainHandItem().getItem().equals(bedrockSword); } public static boolean canRemoveEnchants(ItemStack stack) { @@ -86,13 +86,13 @@ public static boolean canRemoveEnchants(ItemStack stack) { } public static float applyModDamageAdjustments(LivingAttackEvent event, ModuleHost host) { - PlayerEntity attacker = event.getSource().getTrueSource() instanceof PlayerEntity ? (PlayerEntity) event.getSource().getTrueSource() : null; + PlayerEntity attacker = event.getSource().getEntity() instanceof PlayerEntity ? (PlayerEntity) event.getSource().getEntity() : null; if (attacker == null) { return event.getAmount(); } if (isHoldingAvaritiaSword(attacker)) { - event.getEntityLiving().hurtResistantTime = 0; + event.getEntityLiving().invulnerableTime = 0; return 300F; } // else if (isHoldingBedrockSword(attacker)) { @@ -104,7 +104,7 @@ public static float applyModDamageAdjustments(LivingAttackEvent event, ModuleHos // // return Math.max(event.getAmount(), Math.min(50F, summery.protectionPoints)); // } - else if (event.getSource().isUnblockable() || event.getSource().canHarmInCreative()) { + else if (event.getSource().isBypassArmor() || event.getSource().isBypassInvul()) { // summery.entropy += 3; // // if (summery.entropy > 100) { diff --git a/src/main/java/com/brandon3055/draconicevolution/integration/jei/DEJEIPlugin.java b/src/main/java/com/brandon3055/draconicevolution/integration/jei/DEJEIPlugin.java index 5071bc09b..6f1f7dfc5 100644 --- a/src/main/java/com/brandon3055/draconicevolution/integration/jei/DEJEIPlugin.java +++ b/src/main/java/com/brandon3055/draconicevolution/integration/jei/DEJEIPlugin.java @@ -74,8 +74,8 @@ public void registerRecipes(IRecipeRegistration registration) { // registry.handleRecipes(EIOSpawnerRecipesWrapper.class, recipe -> recipe, VanillaRecipeCategoryUid.CRAFTING); - ClientWorld world = Minecraft.getInstance().world; - registration.addRecipes(world.getRecipeManager().getRecipesForType(DraconicAPI.FUSION_RECIPE_TYPE), RecipeCategoryUids.FUSION_CRAFTING); + ClientWorld world = Minecraft.getInstance().level; + registration.addRecipes(world.getRecipeManager().getAllRecipesFor(DraconicAPI.FUSION_RECIPE_TYPE), RecipeCategoryUids.FUSION_CRAFTING); } diff --git a/src/main/java/com/brandon3055/draconicevolution/integration/jei/FusionRecipeCategory.java b/src/main/java/com/brandon3055/draconicevolution/integration/jei/FusionRecipeCategory.java index 14eb7e232..8b307cf5f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/integration/jei/FusionRecipeCategory.java +++ b/src/main/java/com/brandon3055/draconicevolution/integration/jei/FusionRecipeCategory.java @@ -42,7 +42,7 @@ public class FusionRecipeCategory implements IRecipeCategory { public FusionRecipeCategory(IGuiHelper guiHelper) { background = guiHelper.createDrawable(ResourceHelperDE.getResource(DETextures.GUI_JEI_FUSION), 0, 0, xSize, ySize); - localizedName = I18n.format(DEContent.crafting_core.getTranslationKey()); + localizedName = I18n.get(DEContent.crafting_core.getDescriptionId()); icon = guiHelper.createDrawableIngredient(new ItemStack(DEContent.crafting_core)); // craftingGridHelper = guiHelper.createCraftingGridHelper(craftInputSlot1); @@ -79,13 +79,13 @@ public Class getRecipeClass() { @Override public void draw(IFusionRecipe recipe, MatrixStack matrixStack, double mouseX, double mouseY) { Minecraft mc = Minecraft.getInstance(); - if (mc.fontRenderer != null) { + if (mc.font != null) { TechLevel tier = recipe.getRecipeTier(); int colour = tier.index == 0 ? 5263615 : (tier.index == 1 ? 8388863 : (tier.index == 2 ? 16737792 : 5263440)); - GuiHelper.drawCenteredString(mc.fontRenderer, matrixStack, I18n.format("gui.de.tier." + recipe.getRecipeTier().name(), new Object[0]), this.xSize / 2, 5, colour, false); - GuiHelper.drawCenteredString(mc.fontRenderer, matrixStack, I18n.format("gui.de.energyCost.txt"), this.xSize / 2, this.ySize - 20, 4474111, false); - GuiHelper.drawCenteredString(mc.fontRenderer, matrixStack, Utils.addCommas(recipe.getEnergyCost()) + " OP", this.xSize / 2, this.ySize - 10, 4500223, false); + GuiHelper.drawCenteredString(mc.font, matrixStack, I18n.get("gui.de.tier." + recipe.getRecipeTier().name(), new Object[0]), this.xSize / 2, 5, colour, false); + GuiHelper.drawCenteredString(mc.font, matrixStack, I18n.get("gui.de.energyCost.txt"), this.xSize / 2, this.ySize - 20, 4474111, false); + GuiHelper.drawCenteredString(mc.font, matrixStack, Utils.addCommas(recipe.getEnergyCost()) + " OP", this.xSize / 2, this.ySize - 10, 4500223, false); } } @@ -95,7 +95,7 @@ public void setIngredients(IFusionRecipe recipe, IIngredients ingredients) { recipeIngredients.add(recipe.getCatalyst()); recipeIngredients.addAll(recipe.getIngredients()); ingredients.setInputIngredients(recipeIngredients); - ingredients.setOutput(VanillaTypes.ITEM, recipe.getRecipeOutput()); + ingredients.setOutput(VanillaTypes.ITEM, recipe.getResultItem()); } @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerConfigurableItem.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerConfigurableItem.java index c9288d77a..618c702f2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerConfigurableItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerConfigurableItem.java @@ -70,8 +70,8 @@ private Stream getInventoryStacks() { // inventorySlots.stream().map(Slot::getStack)) // .filter(stack -> !stack.isEmpty()); // } - return inventorySlots.stream() - .map(Slot::getStack) + return slots.stream() + .map(Slot::getItem) .filter(stack -> !stack.isEmpty()); } @@ -105,19 +105,19 @@ private void sanitizeProviders() { } @Override - public ItemStack slotClick(int slotId, int button, ClickType clickTypeIn, PlayerEntity player) { - if (slotId >= 0 && slotId < inventorySlots.size()) { - Slot slot = this.inventorySlots.get(slotId); - if (slot != null && !slot.getStack().isEmpty()) { - LazyOptional optionalCap = slot.getStack().getCapability(PROPERTY_PROVIDER_CAPABILITY); + public ItemStack clicked(int slotId, int button, ClickType clickTypeIn, PlayerEntity player) { + if (slotId >= 0 && slotId < slots.size()) { + Slot slot = this.slots.get(slotId); + if (slot != null && !slot.getItem().isEmpty()) { + LazyOptional optionalCap = slot.getItem().getCapability(PROPERTY_PROVIDER_CAPABILITY); if (optionalCap.isPresent()) { PropertyProvider provider = optionalCap.orElseThrow(WTFException::new); - if (clickTypeIn == ClickType.PICKUP && button == 0 && player.inventory.getItemStack().isEmpty()) { + if (clickTypeIn == ClickType.PICKUP && button == 0 && player.inventory.getCarried().isEmpty()) { selectedId = provider.getProviderID(); if (onSelectionMade != null) { onSelectionMade.accept(false); } - stackCache = slot.getStack(); + stackCache = slot.getItem(); return ItemStack.EMPTY; } } @@ -126,7 +126,7 @@ public ItemStack slotClick(int slotId, int button, ClickType clickTypeIn, Player if (slotId > 40) { return ItemStack.EMPTY; } - ItemStack ret = super.slotClick(slotId, button, clickTypeIn, player); + ItemStack ret = super.clicked(slotId, button, clickTypeIn, player); if (onInventoryChange != null) { onInventoryChange.run(); } @@ -146,7 +146,7 @@ private UUID getProviderID(ItemStack stack) { } private static Stream getPlayerInventory(PlayerInventory player) { - return Streams.concat(player.mainInventory.stream(), player.armorInventory.stream(), player.offHandInventory.stream(), EquipmentManager.getAllItems(player.player).stream()).filter(e -> !e.isEmpty()); + return Streams.concat(player.items.stream(), player.armor.stream(), player.offhand.stream(), EquipmentManager.getAllItems(player.player).stream()).filter(e -> !e.isEmpty()); } public static Stream> getStackProviders(Stream stacks) { @@ -182,13 +182,13 @@ public void setAll(List stacks) { } @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); + public void broadcastChanges() { + super.broadcastChanges(); } @Override - public void putStackInSlot(int slotID, ItemStack stack) { - super.putStackInSlot(slotID, stack); + public void setItem(int slotID, ItemStack stack) { + super.setItem(slotID, stack); onSyncDataReceived(); } @@ -218,7 +218,7 @@ public ItemStack getLastStack() { public static void tryOpenGui(ServerPlayerEntity sender) { - ItemStack stack = sender.getHeldItemMainhand(); + ItemStack stack = sender.getMainHandItem(); if (!stack.isEmpty() && stack.getCapability(PROPERTY_PROVIDER_CAPABILITY).isPresent()) { PlayerSlot slot = new PlayerSlot(sender, Hand.MAIN_HAND); NetworkHooks.openGui(sender, new ContainerConfigurableItem.Provider(slot), slot::toBuff); @@ -231,7 +231,7 @@ public static void tryOpenGui(ServerPlayerEntity sender) { } } - sender.sendMessage(new TranslationTextComponent("msg.draconicevolution.configure_item.no_configurabel_item").mergeStyle(TextFormatting.RED), Util.DUMMY_UUID); + sender.sendMessage(new TranslationTextComponent("msg.draconicevolution.configure_item.no_configurabel_item").withStyle(TextFormatting.RED), Util.NIL_UUID); } public static class Provider implements INamedContainerProvider { diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDissEnchanter.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDissEnchanter.java index 0a534cb8e..3a369723b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDissEnchanter.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDissEnchanter.java @@ -34,39 +34,39 @@ public ContainerDissEnchanter(@Nullable ContainerType type, int windowId, Pla } @Override - public boolean canInteractWith(PlayerEntity player) { + public boolean stillValid(PlayerEntity player) { return true;//tile.isUsableByPlayer(player); } @Override - public ItemStack transferStackInSlot(PlayerEntity player, int i) { + public ItemStack quickMoveStack(PlayerEntity player, int i) { Slot slot = getSlot(i); - if (slot != null && slot.getHasStack()) { - ItemStack stack = slot.getStack(); + if (slot != null && slot.hasItem()) { + ItemStack stack = slot.getItem(); ItemStack result = stack.copy(); if (i >= 36) { - if (!mergeItemStack(stack, 0, 36, false)) { + if (!moveItemStackTo(stack, 0, 36, false)) { return ItemStack.EMPTY; } } else { if (stack.getItem() == Items .BOOK) { - if (!mergeItemStack(stack, 36, 36 + 2, false)) { + if (!moveItemStackTo(stack, 36, 36 + 2, false)) { return ItemStack.EMPTY; } } - else if (!tile.isItemValidForSlot(0, stack) || !mergeItemStack(stack, 36, 36 + tile.itemHandler.getSlots(), false)) { + else if (!tile.isItemValidForSlot(0, stack) || !moveItemStackTo(stack, 36, 36 + tile.itemHandler.getSlots(), false)) { return ItemStack.EMPTY; } } if (stack.getCount() == 0) { - slot.putStack(ItemStack.EMPTY); + slot.set(ItemStack.EMPTY); } else { - slot.onSlotChanged(); + slot.setChanged(); } slot.onTake(player, stack); diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDraconiumChest.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDraconiumChest.java index 07ff7f478..bdd3c7347 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDraconiumChest.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDraconiumChest.java @@ -90,57 +90,57 @@ public ContainerDraconiumChest(@Nullable ContainerType type, int windowId, Pl } @Override - public void onCraftMatrixChanged(IInventory inventory) { + public void slotsChanged(IInventory inventory) { // craftResult.setInventorySlotContents(0, RecipeMatcher.findMatches(craftMatrix, tile.getWorld())); } @Nullable @Override - public ItemStack transferStackInSlot(PlayerEntity playerIn, int index) { + public ItemStack quickMoveStack(PlayerEntity playerIn, int index) { ItemStack itemstack = ItemStack.EMPTY; - Slot slot = inventorySlots.get(index); - if (slot != null && slot.getHasStack()) { - ItemStack itemstack1 = slot.getStack(); + Slot slot = slots.get(index); + if (slot != null && slot.hasItem()) { + ItemStack itemstack1 = slot.getItem(); itemstack = itemstack1.copy(); //Transferring from Main Container if (index < 260) { - if (!mergeItemStack(itemstack1, 277, inventorySlots.size(), false)) { + if (!moveItemStackTo(itemstack1, 277, slots.size(), false)) { return ItemStack.EMPTY; } - slot.onSlotChange(itemstack1, itemstack); + slot.onQuickCraft(itemstack1, itemstack); } //Transferring from a crafting inventory else if (index == 267 || index == 265 || index == 266) { //First try placing the stack in the players inventory - if (!mergeItemStack(itemstack1, 277, inventorySlots.size(), false)) { + if (!moveItemStackTo(itemstack1, 277, slots.size(), false)) { //If that fails try the chest inventory - if (!mergeItemStack(itemstack1, 0, 259, false)) { + if (!moveItemStackTo(itemstack1, 0, 259, false)) { return ItemStack.EMPTY; } } - slot.onSlotChange(itemstack1, itemstack); + slot.onQuickCraft(itemstack1, itemstack); } else if (index >= 260 && index < 277) { //First try the players inventory - if (!mergeItemStack(itemstack1, 0, 259, false)) { + if (!moveItemStackTo(itemstack1, 0, 259, false)) { //If that fails try the chest inventory - if (!mergeItemStack(itemstack1, 277, inventorySlots.size(), false)) { + if (!moveItemStackTo(itemstack1, 277, slots.size(), false)) { return ItemStack.EMPTY; } } - slot.onSlotChange(itemstack1, itemstack); + slot.onQuickCraft(itemstack1, itemstack); } //Transferring from Player Inventory - else if (!DraconiumChest.isStackValid(itemstack1) || !mergeItemStack(itemstack1, 0, 259, false)) { + else if (!DraconiumChest.isStackValid(itemstack1) || !moveItemStackTo(itemstack1, 0, 259, false)) { return ItemStack.EMPTY; } if (itemstack1.getCount() == 0) { - slot.putStack(ItemStack.EMPTY); + slot.set(ItemStack.EMPTY); } else { - slot.onSlotChanged(); + slot.setChanged(); } slot.onTake(player, itemstack1); @@ -150,8 +150,8 @@ else if (!DraconiumChest.isStackValid(itemstack1) || !mergeItemStack(itemstack1, @Nullable @Override - public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, PlayerEntity player) { - ItemStack stack = super.slotClick(slotId, dragType, clickTypeIn, player); + public ItemStack clicked(int slotId, int dragType, ClickType clickTypeIn, PlayerEntity player) { + ItemStack stack = super.clicked(slotId, dragType, clickTypeIn, player); if (dragType == 1 && clickTypeIn == ClickType.PICKUP && slotId >= 260 && slotId <= 264) { tile.validateSmelting(); @@ -161,8 +161,8 @@ public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, Play } @Override - public void onContainerClosed(PlayerEntity playerIn) { - super.onContainerClosed(playerIn); + public void removed(PlayerEntity playerIn) { + super.removed(playerIn); tile.onPlayerCloseContainer(playerIn); } @@ -172,7 +172,7 @@ public SlotSmeltable(IItemHandler p_i1824_1_, int p_i1824_2_, int p_i1824_3_, in } @Override - public boolean isItemValid(ItemStack stack) { + public boolean mayPlace(ItemStack stack) { return tile.getSmeltResult(stack) != null; } } @@ -184,15 +184,15 @@ public SlotRFCapacitor(IItemHandler inventory, int id, int x, int y) { } @Override - public boolean isItemValid(ItemStack stack) { - if (super.isItemValid(stack)) { + public boolean mayPlace(ItemStack stack) { + if (super.mayPlace(stack)) { return EnergyUtils.canExtractEnergy(stack); } return false; } @Override - public int getSlotStackLimit() { + public int getMaxStackSize() { return 1; } } @@ -204,15 +204,15 @@ public SlotCore(IItemHandler inventory, int id, int x, int y) { } @Override - public boolean isItemValid(ItemStack stack) { - if (super.isItemValid(stack)) { + public boolean mayPlace(ItemStack stack) { + if (super.mayPlace(stack)) { return !stack.isEmpty() && stack.getItem() instanceof ItemCore /*&& stack.getItem() != DEContent.draconicCore*/; } return false; } @Override - public int getSlotStackLimit() { + public int getMaxStackSize() { return 1; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDummy.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDummy.java index 4262e7a0b..af5c79a14 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDummy.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerDummy.java @@ -46,7 +46,7 @@ public ContainerDummy(ContainerType type, int windowId, PlayerInventory playe // } @Override - public boolean canInteractWith(PlayerEntity playerIn) { - return tile instanceof IInventory ? ((IInventory) tile).isUsableByPlayer(playerIn) : tile != null; + public boolean stillValid(PlayerEntity playerIn) { + return tile instanceof IInventory ? ((IInventory) tile).stillValid(playerIn) : tile != null; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerEnergyCrystal.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerEnergyCrystal.java index 5b4a0a1fc..966942c3d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerEnergyCrystal.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerEnergyCrystal.java @@ -28,8 +28,8 @@ public ContainerEnergyCrystal(@Nullable ContainerType type, int windowId, Pla // } @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - tile.detectAndSendContainerChanges(listeners); + public void broadcastChanges() { + super.broadcastChanges(); + tile.detectAndSendContainerChanges(containerListeners); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerFusionCraftingCore.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerFusionCraftingCore.java index b3e80d134..876479557 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerFusionCraftingCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerFusionCraftingCore.java @@ -34,32 +34,32 @@ public ContainerFusionCraftingCore(@Nullable ContainerType type, int windowId @Override - public boolean canInteractWith(PlayerEntity player) { + public boolean stillValid(PlayerEntity player) { return true;//tile.isUsableByPlayer(player); } @Override - public ItemStack transferStackInSlot(PlayerEntity player, int i) { + public ItemStack quickMoveStack(PlayerEntity player, int i) { Slot slot = getSlot(i); - if (slot != null && slot.getHasStack()) { - ItemStack stack = slot.getStack(); + if (slot != null && slot.hasItem()) { + ItemStack stack = slot.getItem(); ItemStack result = stack.copy(); if (i >= 36) { - if (!mergeItemStack(stack, 0, 36, false)) { + if (!moveItemStackTo(stack, 0, 36, false)) { return ItemStack.EMPTY; } } - else if (!tile.itemHandler.isItemValid(0, stack) || !mergeItemStack(stack, 36, 36 + tile.itemHandler.getSlots(), false)) { + else if (!tile.itemHandler.isItemValid(0, stack) || !moveItemStackTo(stack, 36, 36 + tile.itemHandler.getSlots(), false)) { return ItemStack.EMPTY; } if (stack.getCount() == 0) { - slot.putStack(ItemStack.EMPTY); + slot.set(ItemStack.EMPTY); } else { - slot.onSlotChanged(); + slot.setChanged(); } slot.onTake(player, stack); @@ -77,7 +77,7 @@ public OutputSlot(IItemHandler inventoryIn, int index, int xPosition, int yPosit } @Override - public boolean isItemValid(@Nullable ItemStack stack) { + public boolean mayPlace(@Nullable ItemStack stack) { return false; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerJunkFilter.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerJunkFilter.java index 687fdb016..cae39f6c0 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerJunkFilter.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerJunkFilter.java @@ -50,53 +50,53 @@ public ContainerJunkFilter(@Nullable ContainerType type, int id, PlayerEntity // } @Override - public void detectAndSendChanges() { - if (stack != slot.getStackInSlot(player) && !player.world.isRemote) { - player.closeScreen(); + public void broadcastChanges() { + if (stack != slot.getStackInSlot(player) && !player.level.isClientSide) { + player.closeContainer(); } - super.detectAndSendChanges(); + super.broadcastChanges(); } @Override - public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, PlayerEntity player) { - if (slotId >= 0 && slotId < inventorySlots.size() && inventorySlots.get(slotId).getStack() == stack) { + public ItemStack clicked(int slotId, int dragType, ClickType clickTypeIn, PlayerEntity player) { + if (slotId >= 0 && slotId < slots.size() && slots.get(slotId).getItem() == stack) { return ItemStack.EMPTY; } - return super.slotClick(slotId, dragType, clickTypeIn, player); + return super.clicked(slotId, dragType, clickTypeIn, player); } @Override - public boolean canInteractWith(PlayerEntity playerIn) { + public boolean stillValid(PlayerEntity playerIn) { return true; } @Nullable @Override - public ItemStack transferStackInSlot(PlayerEntity playerIn, int i) { + public ItemStack quickMoveStack(PlayerEntity playerIn, int i) { Slot slot = getSlot(i); - if (slot != null && slot.getHasStack()) { - ItemStack stack = slot.getStack(); + if (slot != null && slot.hasItem()) { + ItemStack stack = slot.getItem(); ItemStack result = stack.copy(); //Move To Player Inventory if (i >= 36) { - if (!mergeItemStack(stack, 0, 36, false)) { + if (!moveItemStackTo(stack, 0, 36, false)) { return ItemStack.EMPTY; } } //Move From Player inventory else { - if (!mergeItemStack(stack, 36, 36 + itemHandler.getSlots(), false)) { + if (!moveItemStackTo(stack, 36, 36 + itemHandler.getSlots(), false)) { return ItemStack.EMPTY; } } if (stack.getCount() == 0) { - slot.putStack(ItemStack.EMPTY); + slot.set(ItemStack.EMPTY); } else { - slot.onSlotChanged(); + slot.setChanged(); } slot.onTake(player, stack); @@ -110,17 +110,17 @@ public ItemStack transferStackInSlot(PlayerEntity playerIn, int i) { //The following are some safety checks to handle conditions vanilla normally does not have to deal with. @Override - public void putStackInSlot(int slotID, ItemStack stack) { + public void setItem(int slotID, ItemStack stack) { Slot slot = this.getSlot(slotID); if (slot != null) { - slot.putStack(stack); + slot.set(stack); } } @Override public Slot getSlot(int slotId) { - if (slotId < inventorySlots.size() && slotId >= 0) { - return inventorySlots.get(slotId); + if (slotId < slots.size() && slotId >= 0) { + return slots.get(slotId); } return null; } @@ -131,7 +131,7 @@ public void setAll(List stacks) { for (int i = 0; i < stacks.size(); ++i) { Slot slot = getSlot(i); if (slot != null) { - slot.putStack(stacks.get(i)); + slot.set(stacks.get(i)); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerModularItem.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerModularItem.java index 8deeaecf0..e02f17bb7 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerModularItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerModularItem.java @@ -63,11 +63,11 @@ public ContainerModularItem(int windowId, PlayerInventory player, PlayerSlot ite } private static Stream getPlayerInventory(PlayerInventory player) { - return Streams.concat(player.mainInventory.stream(), player.armorInventory.stream(), player.offHandInventory.stream()).filter(e -> !e.isEmpty()); + return Streams.concat(player.items.stream(), player.armor.stream(), player.offhand.stream()).filter(e -> !e.isEmpty()); } public static void tryOpenGui(ServerPlayerEntity sender) { - ItemStack stack = sender.getHeldItemMainhand(); + ItemStack stack = sender.getMainHandItem(); if (!stack.isEmpty() && stack.getCapability(MODULE_HOST_CAPABILITY).isPresent()) { PlayerSlot slot = new PlayerSlot(sender, Hand.MAIN_HAND); NetworkHooks.openGui(sender, new ContainerModularItem.Provider(stack, slot), slot::toBuff); @@ -80,7 +80,7 @@ public static void tryOpenGui(ServerPlayerEntity sender) { } } - sender.sendMessage(new TranslationTextComponent("msg.draconicevolution.modular_item.no_module_hosts").mergeStyle(TextFormatting.RED), Util.DUMMY_UUID); + sender.sendMessage(new TranslationTextComponent("msg.draconicevolution.modular_item.no_module_hosts").withStyle(TextFormatting.RED), Util.NIL_UUID); } @Override @@ -102,14 +102,14 @@ public ModuleContext getModuleContext() { @Override public void onGridChange() { if (EffectiveSide.get().isServer()) { - for (int i = 0; i < this.inventorySlots.size(); ++i) { - ItemStack itemstack = this.inventorySlots.get(i).getStack(); - ItemStack itemstack1 = this.inventoryItemStacks.get(i); - if (!ItemStack.areItemStacksEqual(itemstack1, itemstack)) { + for (int i = 0; i < this.slots.size(); ++i) { + ItemStack itemstack = this.slots.get(i).getItem(); + ItemStack itemstack1 = this.lastSlots.get(i); + if (!ItemStack.matches(itemstack1, itemstack)) { itemstack1 = itemstack.copy(); - this.inventoryItemStacks.set(i, itemstack1); - for (IContainerListener icontainerlistener : this.listeners) { - icontainerlistener.sendSlotContents(this, i, itemstack1); + this.lastSlots.set(i, itemstack1); + for (IContainerListener icontainerlistener : this.containerListeners) { + icontainerlistener.slotChanged(this, i, itemstack1); } } } @@ -122,7 +122,7 @@ private void onContainerOpen() { } @Override - public boolean canInteractWith(PlayerEntity playerIn) { + public boolean stillValid(PlayerEntity playerIn) { if (moduleHost == null || hostStack != slot.getStackInSlot(player)) { return false; } @@ -156,8 +156,8 @@ public void setAll(List stacks) { } @Override - public void putStackInSlot(int slotID, ItemStack stack) { - super.putStackInSlot(slotID, stack); + public void setItem(int slotID, ItemStack stack) { + super.setItem(slotID, stack); stack = slot.getStackInSlot(player); if (stack != hostStack && !stack.isEmpty() && stack.getCapability(MODULE_HOST_CAPABILITY).isPresent()) { hostStack = stack; //Because the client side stack is invalidated every time the server sends an update. @@ -165,21 +165,21 @@ public void putStackInSlot(int slotID, ItemStack stack) { } @Override - public ItemStack slotClick(int slotId, int button, ClickType clickTypeIn, PlayerEntity player) { - if (slotId >= 0 && slotId < inventorySlots.size()) { - Slot slot = this.inventorySlots.get(slotId); - if (slot != null && !slot.getStack().isEmpty()) { - if (slot.getStack() == hostStack) { + public ItemStack clicked(int slotId, int button, ClickType clickTypeIn, PlayerEntity player) { + if (slotId >= 0 && slotId < slots.size()) { + Slot slot = this.slots.get(slotId); + if (slot != null && !slot.getItem().isEmpty()) { + if (slot.getItem() == hostStack) { return ItemStack.EMPTY; - } else if (clickTypeIn == ClickType.PICKUP && button == 0 && player.inventory.getItemStack().isEmpty()) { - if (slot.getStack().getCapability(MODULE_HOST_CAPABILITY).isPresent()) { + } else if (clickTypeIn == ClickType.PICKUP && button == 0 && player.inventory.getCarried().isEmpty()) { + if (slot.getItem().getCapability(MODULE_HOST_CAPABILITY).isPresent()) { if (player instanceof ServerPlayerEntity) { PlayerSlot playerSlot; if (slotId >= 41) playerSlot = new PlayerSlot(slotId - 41, PlayerSlot.EnumInvCategory.EQUIPMENT); else if (slotId >= 40) playerSlot = new PlayerSlot(slotId - 40, PlayerSlot.EnumInvCategory.OFF_HAND); else if (slotId >= 36) playerSlot = new PlayerSlot(slotId - 36, PlayerSlot.EnumInvCategory.ARMOR); else playerSlot = new PlayerSlot(slotId, PlayerSlot.EnumInvCategory.MAIN); - NetworkHooks.openGui((ServerPlayerEntity) player, new Provider(slot.getStack(), playerSlot), playerSlot::toBuff); + NetworkHooks.openGui((ServerPlayerEntity) player, new Provider(slot.getItem(), playerSlot), playerSlot::toBuff); } else { GuiButton.playGenericClick(); } @@ -191,7 +191,7 @@ public ItemStack slotClick(int slotId, int button, ClickType clickTypeIn, Player if (slotId > 40) { return ItemStack.EMPTY; } - return super.slotClick(slotId, button, clickTypeIn, player); + return super.clicked(slotId, button, clickTypeIn, player); } public static class Provider implements INamedContainerProvider { @@ -205,7 +205,7 @@ public Provider(ItemStack stack, PlayerSlot slot) { @Override public ITextComponent getDisplayName() { - return stack.getDisplayName().copyRaw().appendString(" ").append(new TranslationTextComponent("gui.draconicevolution.modular_item.modules")); + return stack.getHoverName().plainCopy().append(" ").append(new TranslationTextComponent("gui.draconicevolution.modular_item.modules")); } @Nullable diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerModuleHost.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerModuleHost.java index a77fa6c1e..0945bdc57 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerModuleHost.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerModuleHost.java @@ -45,11 +45,11 @@ public ContainerModuleHost(@Nullable ContainerType type, int windowId, Player public abstract ModuleHost getModuleHost(); @Override - public ItemStack transferStackInSlot(PlayerEntity player, int i) { + public ItemStack quickMoveStack(PlayerEntity player, int i) { Slot slot = getSlot(i); - if (slot != null && slot.getHasStack()) { - ItemStack stack = slot.getStack(); + if (slot != null && slot.hasItem()) { + ItemStack stack = slot.getItem(); Module module = ModuleItem.getModule(stack); if (module != null) { ModuleEntity entity = module.createEntity(); @@ -61,7 +61,7 @@ public ItemStack transferStackInSlot(PlayerEntity player, int i) { } } - return super.transferStackInSlot(player, i); + return super.quickMoveStack(player, i); } @OnlyIn(Dist.CLIENT) diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerReactor.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerReactor.java index 14d4f7c98..52bed20e6 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerReactor.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerReactor.java @@ -41,8 +41,8 @@ public ContainerReactor(@Nullable ContainerType type, int windowId, PlayerInv public void setSlotState() { fuelSlots = tile.reactorState.get() == TileReactorCore.ReactorState.COLD; - inventorySlots.clear(); - inventoryItemStacks.clear(); + slots.clear(); + lastSlots.clear(); if (fuelSlots) { addPlayerSlots(44 - 31, 140); @@ -64,8 +64,8 @@ public void setSlotState() { } @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); + public void broadcastChanges() { + super.broadcastChanges(); if (tile.reactorState.get() == TileReactorCore.ReactorState.COLD != fuelSlots) { setSlotState(); @@ -74,7 +74,7 @@ public void detectAndSendChanges() { @Nullable @Override - public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, PlayerEntity player) { + public ItemStack clicked(int slotId, int dragType, ClickType clickTypeIn, PlayerEntity player) { int maxFuel = 10368 + 15; int installedFuel = (int) (tile.reactableFuel.get() + tile.convertedFuel.get()); int free = maxFuel - installedFuel; @@ -82,8 +82,8 @@ public ItemStack slotClick(int slotId, int dragType, ClickType clickTypeIn, Play Slot slot = getSlot(slotId); if (slot instanceof SlotReactor && clickTypeIn == ClickType.PICKUP) { PlayerInventory inventory = player.inventory; - ItemStack stackInSlot = slot.getStack(); - ItemStack heldStack = inventory.getItemStack(); + ItemStack stackInSlot = slot.getItem(); + ItemStack heldStack = inventory.getCarried(); if (!heldStack.isEmpty()) { int value; @@ -110,19 +110,19 @@ else if ((value = getChaosValue(copy)) > 0) { // } if (heldStack.getCount() <= 0) { - inventory.setItemStack(ItemStack.EMPTY); + inventory.setCarried(ItemStack.EMPTY); } } else if (!stackInSlot.isEmpty()) { tile.reactableFuel.subtract(getFuelValue(stackInSlot)); tile.convertedFuel.subtract(getChaosValue(stackInSlot)); - inventory.setItemStack(stackInSlot); + inventory.setCarried(stackInSlot); } return ItemStack.EMPTY; } else if (slotId <= 35) { - return super.slotClick(slotId, dragType, clickTypeIn, player); + return super.clicked(slotId, dragType, clickTypeIn, player); } return ItemStack.EMPTY; } @@ -168,26 +168,26 @@ public SlotReactor(TileReactorCore tile, int index, int xPosition, int yPosition } @Override - public void onSlotChange(ItemStack before, ItemStack after) { + public void onQuickCraft(ItemStack before, ItemStack after) { if (!before.isEmpty() && !after.isEmpty()) { if (before.getItem() == after.getItem()) { int i = after.getCount() - before.getCount(); if (i > 0) { - this.onCrafting(before, i); + this.onQuickCraft(before, i); } } } } @Override - public boolean isItemValid(@Nullable ItemStack stack) { + public boolean mayPlace(@Nullable ItemStack stack) { return false; } @Nullable @Override - public ItemStack getStack() { + public ItemStack getItem() { int index = getSlotIndex(); if (index < 3) { int fuel = MathHelper.floor(tile.reactableFuel.get()); @@ -226,23 +226,23 @@ else if (index == 5 && nugget > 0) { } @Override - public void putStack(@Nonnull ItemStack stack) { + public void set(@Nonnull ItemStack stack) { //this.inventory.setInventorySlotContents(this.slotIndex, stack); - this.onSlotChanged(); + this.setChanged(); } @Override - public void onSlotChanged() { - this.tile.markDirty(); + public void setChanged() { + this.tile.setChanged(); } @Override - public int getSlotStackLimit() { + public int getMaxStackSize() { return 64;//this.inventory.getInventoryStackLimit(); } @Override - public ItemStack decrStackSize(int amount) { + public ItemStack remove(int amount) { return ItemStack.EMPTY;//this.inventory.decrStackSize(this.getSlotIndex, amount); } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerRecipeBuilder.java b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerRecipeBuilder.java index 15ce69668..f5a3317d7 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerRecipeBuilder.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/ContainerRecipeBuilder.java @@ -44,7 +44,7 @@ public void addSlots() { } } - for (int i = 0; i < inventoryCache.getSizeInventory(); i++) { + for (int i = 0; i < inventoryCache.getContainerSize(); i++) { Slot slot = new Slot(inventoryCache, i, 1000, 1000); addSlot(slot); craftingSlots.add(slot); @@ -53,7 +53,7 @@ public void addSlots() { public void arangeCraftingSlots(int craftingType) { for (Slot slot : craftingSlots) { - slot.xPos = slot.yPos = 1000; + slot.x = slot.y = 1000; } if (craftingType == 0) { @@ -61,53 +61,53 @@ public void arangeCraftingSlots(int craftingType) { int posY = 30; for (int y = 0; y < 3; y++) { for (int x = 0; x < 3; x++) { - craftingSlots.get(x + y * 3 + 1).xPos = posX + 18 * x; - craftingSlots.get(x + y * 3 + 1).yPos = posY + y * 18; + craftingSlots.get(x + y * 3 + 1).x = posX + 18 * x; + craftingSlots.get(x + y * 3 + 1).y = posY + y * 18; } } - craftingSlots.get(0).xPos = 107; - craftingSlots.get(0).yPos = posY + 18; + craftingSlots.get(0).x = 107; + craftingSlots.get(0).y = posY + 18; } else if (craftingType == 1) { - craftingSlots.get(0).xPos = 90 - 18; - craftingSlots.get(0).yPos = 20; - craftingSlots.get(1).xPos = 90 + 18; - craftingSlots.get(1).yPos = 20; + craftingSlots.get(0).x = 90 - 18; + craftingSlots.get(0).y = 20; + craftingSlots.get(1).x = 90 + 18; + craftingSlots.get(1).y = 20; for (int i = 2; i < 11; i++) { - craftingSlots.get(i).xPos = 20 + (i - 2) * 18; - craftingSlots.get(i).yPos = 50; + craftingSlots.get(i).x = 20 + (i - 2) * 18; + craftingSlots.get(i).y = 50; - craftingSlots.get(i + 9).xPos = 20 + (i - 2) * 18; - craftingSlots.get(i + 9).yPos = 68; + craftingSlots.get(i + 9).x = 20 + (i - 2) * 18; + craftingSlots.get(i + 9).y = 68; } } } @Nullable @Override - public ItemStack transferStackInSlot(PlayerEntity playerIn, int index) { + public ItemStack quickMoveStack(PlayerEntity playerIn, int index) { Slot slot = getSlot(index); - if (slot.getHasStack()) { - ItemStack stack = slot.getStack(); + if (slot.hasItem()) { + ItemStack stack = slot.getItem(); ItemStack result = stack.copy(); if (index >= 36) { - if (!mergeItemStack(stack, 0, 36, false)) { + if (!moveItemStackTo(stack, 0, 36, false)) { return ItemStack.EMPTY; } } - else if (ForgeHooks.getBurnTime(stack) == 0 || !mergeItemStack(stack, 36, 36 + inventoryCache.getSizeInventory(), false)) { + else if (ForgeHooks.getBurnTime(stack) == 0 || !moveItemStackTo(stack, 36, 36 + inventoryCache.getContainerSize(), false)) { return ItemStack.EMPTY; } if (stack.getCount() == 0) { - slot.putStack(ItemStack.EMPTY); + slot.set(ItemStack.EMPTY); } else { - slot.onSlotChanged(); + slot.setChanged(); } slot.onTake(player, stack); @@ -119,7 +119,7 @@ else if (ForgeHooks.getBurnTime(stack) == 0 || !mergeItemStack(stack, 36, 36 + i } @Override - public boolean canInteractWith(PlayerEntity playerIn) { + public boolean stillValid(PlayerEntity playerIn) { return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/InvJunkFilter.java b/src/main/java/com/brandon3055/draconicevolution/inventory/InvJunkFilter.java index 435aba33f..50cc3e25d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/InvJunkFilter.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/InvJunkFilter.java @@ -136,7 +136,7 @@ public void saveItems() { for (ItemStack stack : stacks) { if (stack != null && stack.getCount() > 0) { CompoundNBT tag = new CompoundNBT(); - stack.write(tag); + stack.save(tag); list.add(tag); } } @@ -155,7 +155,7 @@ public void loadItems() { stacks.clear(); for (int i = 0; i < list.size(); i++) { - stacks.add(ItemStack.read(list.getCompound(i))); + stacks.add(ItemStack.of(list.getCompound(i))); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCache.java b/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCache.java index 6601370ef..ad3b488e8 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCache.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCache.java @@ -23,7 +23,7 @@ public InventoryCache(int inventorySize) { } @Override - public int getSizeInventory() { + public int getContainerSize() { return inventoryStacks.length; } @@ -34,23 +34,23 @@ public boolean isEmpty() { @Nonnull @Override - public ItemStack getStackInSlot(int index) { + public ItemStack getItem(int index) { return inventoryStacks[index] == null ? ItemStack.EMPTY : inventoryStacks[index]; } @Nullable @Override - public ItemStack decrStackSize(int index, int count) { - ItemStack itemstack = getStackInSlot(index); + public ItemStack removeItem(int index, int count) { + ItemStack itemstack = getItem(index); if (!itemstack.isEmpty()) { if (itemstack.getCount() <= count) { - setInventorySlotContents(index, ItemStack.EMPTY); + setItem(index, ItemStack.EMPTY); } else { itemstack = itemstack.split(count); if (itemstack.getCount() == 0) { - setInventorySlotContents(index, ItemStack.EMPTY); + setItem(index, ItemStack.EMPTY); } } } @@ -59,61 +59,61 @@ public ItemStack decrStackSize(int index, int count) { @Nullable @Override - public ItemStack removeStackFromSlot(int index) { - ItemStack item = getStackInSlot(index); + public ItemStack removeItemNoUpdate(int index) { + ItemStack item = getItem(index); if (!item.isEmpty()) { - setInventorySlotContents(index, ItemStack.EMPTY); + setItem(index, ItemStack.EMPTY); } return item; } @Override - public void setInventorySlotContents(int index, @Nonnull ItemStack stack) { + public void setItem(int index, @Nonnull ItemStack stack) { if (index < 0 || index >= inventoryStacks.length) { return; } inventoryStacks[index] = stack; - if (!stack.isEmpty() && stack.getCount() > getInventoryStackLimit()) { - stack.setCount(getInventoryStackLimit()); + if (!stack.isEmpty() && stack.getCount() > getMaxStackSize()) { + stack.setCount(getMaxStackSize()); } } @Override - public int getInventoryStackLimit() { + public int getMaxStackSize() { return 64; } @Override - public void markDirty() { + public void setChanged() { } @Override - public boolean isUsableByPlayer(PlayerEntity player) { + public boolean stillValid(PlayerEntity player) { return true; } @Override - public void openInventory(PlayerEntity player) { + public void startOpen(PlayerEntity player) { } @Override - public void closeInventory(PlayerEntity player) { + public void stopOpen(PlayerEntity player) { } @Override - public boolean isItemValidForSlot(int index, ItemStack stack) { + public boolean canPlaceItem(int index, ItemStack stack) { return false; } @Override - public void clear() { + public void clearContent() { for (int i = 0; i < inventoryStacks.length; i++) { inventoryStacks[i] = ItemStack.EMPTY; } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCraftingChest.java b/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCraftingChest.java index 4e8cb7ee7..b5a5c58f7 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCraftingChest.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCraftingChest.java @@ -33,14 +33,14 @@ public InventoryCraftingChest(Container par1Container, int size, int height, Til * Returns the number of slots in the inventory. */ @Override - public int getSizeInventory() { + public int getContainerSize() { return 9; } @Override - public ItemStack getStackInSlot(int slot) { + public ItemStack getItem(int slot) { // the 9 slots + 1 output slot that's not accessible, we therefore have to add 1 to the slot accessed - return slot >= getSizeInventory() ? ItemStack.EMPTY : tile.getStackInCraftingSlot(slot + 1); + return slot >= getContainerSize() ? ItemStack.EMPTY : tile.getStackInCraftingSlot(slot + 1); } // @Override @@ -63,7 +63,7 @@ public boolean isInvNameLocalized() { } @Override - public ItemStack removeStackFromSlot(int par1) { + public ItemStack removeItemNoUpdate(int par1) { return ItemStack.EMPTY; } @@ -72,7 +72,7 @@ public ItemStack removeStackFromSlot(int par1) { * (second arg) of items and returns them in a new stack. */ @Override - public ItemStack decrStackSize(int slotID, int par2) { + public ItemStack removeItem(int slotID, int par2) { ItemStack stack = tile.getStackInCraftingSlot(slotID + 1); if (!stack.isEmpty()) { ItemStack itemstack; @@ -81,7 +81,7 @@ public ItemStack decrStackSize(int slotID, int par2) { itemstack = stack.copy(); stack = ItemStack.EMPTY; tile.setInventoryCraftingSlotContents(slotID + 1, ItemStack.EMPTY); - eventHandler.onCraftMatrixChanged(this); + eventHandler.slotsChanged(this); return itemstack; } else { @@ -91,7 +91,7 @@ public ItemStack decrStackSize(int slotID, int par2) { stack = ItemStack.EMPTY; } - eventHandler.onCraftMatrixChanged(this); + eventHandler.slotsChanged(this); return itemstack; } } @@ -105,9 +105,9 @@ public ItemStack decrStackSize(int slotID, int par2) { * crafting or armor sections). */ @Override - public void setInventorySlotContents(int slot, ItemStack itemstack) { + public void setItem(int slot, ItemStack itemstack) { tile.setInventoryCraftingSlotContents(slot + 1, itemstack); - eventHandler.onCraftMatrixChanged(this); + eventHandler.slotsChanged(this); } /** @@ -115,7 +115,7 @@ public void setInventorySlotContents(int slot, ItemStack itemstack) { * 64, possibly will be extended. *Isn't this more of a set than a get?* */ @Override - public int getInventoryStackLimit() { + public int getMaxStackSize() { return 64; } @@ -123,7 +123,7 @@ public int getInventoryStackLimit() { * Called when an the contents of an Inventory change, usually */ @Override - public void markDirty() { + public void setChanged() { } /** @@ -131,7 +131,7 @@ public void markDirty() { * with Container */ @Override - public boolean isUsableByPlayer(PlayerEntity par1EntityPlayer) { + public boolean stillValid(PlayerEntity par1EntityPlayer) { return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCraftingChestResult.java b/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCraftingChestResult.java index 41e4a6bda..26e0b7523 100644 --- a/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCraftingChestResult.java +++ b/src/main/java/com/brandon3055/draconicevolution/inventory/InventoryCraftingChestResult.java @@ -20,7 +20,7 @@ public InventoryCraftingChestResult(TileDraconiumChest tile) { * Returns the number of slots in the inventory. */ @Override - public int getSizeInventory() { + public int getContainerSize() { return 1; } @@ -28,7 +28,7 @@ public int getSizeInventory() { * Returns the stack in slot i */ @Override - public ItemStack getStackInSlot(int par1) { + public ItemStack getItem(int par1) { return tile.getStackInCraftingSlot(0);// this.stackResult[0]; } @@ -53,7 +53,7 @@ public boolean isInvNameLocalized() { * (second arg) of items and returns them in a new stack. */ @Override - public ItemStack decrStackSize(int par1, int par2) { + public ItemStack removeItem(int par1, int par2) { ItemStack stack = tile.getStackInCraftingSlot(0); if (!stack.isEmpty()) { tile.setInventoryCraftingSlotContents(0, ItemStack.EMPTY); @@ -70,7 +70,7 @@ public ItemStack decrStackSize(int par1, int par2) { * GUI. */ @Override - public ItemStack removeStackFromSlot(int par1) { + public ItemStack removeItemNoUpdate(int par1) { return ItemStack.EMPTY; } @@ -79,7 +79,7 @@ public ItemStack removeStackFromSlot(int par1) { * crafting or armor sections). */ @Override - public void setInventorySlotContents(int par1, ItemStack par2ItemStack) { + public void setItem(int par1, ItemStack par2ItemStack) { tile.setInventoryCraftingSlotContents(0, par2ItemStack); } @@ -88,7 +88,7 @@ public void setInventorySlotContents(int par1, ItemStack par2ItemStack) { * 64, possibly will be extended. *Isn't this more of a set than a get?* */ @Override - public int getInventoryStackLimit() { + public int getMaxStackSize() { return 64; } @@ -96,7 +96,7 @@ public int getInventoryStackLimit() { * Called when an the contents of an Inventory change, usually */ @Override - public void markDirty() { + public void setChanged() { } /** @@ -104,7 +104,7 @@ public void markDirty() { * with Container */ @Override - public boolean isUsableByPlayer(PlayerEntity par1EntityPlayer) { + public boolean stillValid(PlayerEntity par1EntityPlayer) { return true; } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/Debugger.java b/src/main/java/com/brandon3055/draconicevolution/items/Debugger.java index ae6d5817a..1b644af1a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/Debugger.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/Debugger.java @@ -43,7 +43,7 @@ public Debugger(Properties properties) { @Override public boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity entity) { - World world = player.world; + World world = player.level; // EntityChaosGuardian guardian = DataUtils.firstMatch(world.getEntitiesWithinAABB(EntityChaosGuardian.class, player.getEntityBoundingBox().grow(300)), entityChaosGuardian -> true); // if (guardian != null) { // guardian.removePassengers(); @@ -119,18 +119,18 @@ public void inventoryTick(ItemStack stack, World worldIn, Entity entityIn, int i // } @Override - public boolean hasEffect(ItemStack stack) { + public boolean isFoil(ItemStack stack) { return true; } // private @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { - ItemStack itemStack = player.getHeldItem(hand); + public ActionResult use(World world, PlayerEntity player, Hand hand) { + ItemStack itemStack = player.getItemInHand(hand); //if (!world.isRemote) { - double posX = player.getPosX() - (player.getPosX() % 16) + 8; - double posZ = player.getPosZ() - (player.getPosZ() % 16) + 8; + double posX = player.getX() - (player.getX() % 16) + 8; + double posZ = player.getZ() - (player.getZ() % 16) + 8; // player.setPosition(posX, player.getPosY(), posZ); @@ -623,7 +623,7 @@ public ActionResult onItemRightClick(World world, PlayerEntity player // } - return super.onItemRightClick(world, player, hand); + return super.use(world, player, hand); } public ActionResult handleRightClick(ItemStack stack, World world, PlayerEntity player, Hand hand) { @@ -758,13 +758,13 @@ public ActionResult handleRightClick(ItemStack stack, World world, Pl int mode = ItemNBTHelper.getInteger(stack, "mode", 0); - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { mode++; if (mode == MODES.size()) { mode = 0; } - if (!world.isRemote) { - player.sendMessage(new StringTextComponent(MODES.get(mode)), Util.DUMMY_UUID); + if (!world.isClientSide) { + player.sendMessage(new StringTextComponent(MODES.get(mode)), Util.NIL_UUID); } ItemNBTHelper.setInteger(stack, "mode", mode); return new ActionResult<>(ActionResultType.SUCCESS, stack); @@ -774,7 +774,7 @@ public ActionResult handleRightClick(ItemStack stack, World world, Pl case 0: break; case 3: - if (world.isRemote) { + if (world.isClientSide) { // Map[][]> texturedRenderQueue = ReflectionHelper.getPrivateValue(BCEffectRenderer.class, BCEffectHandler.effectRenderer, "texturedRenderQueue"); // // for (ArrayDeque[][] array : texturedRenderQueue.values()) { @@ -788,23 +788,23 @@ public ActionResult handleRightClick(ItemStack stack, World world, Pl } break; case 4: - if (!world.isRemote) { + if (!world.isClientSide) { // player.openGui(DraconicEvolution.instance, 2016, world, 0, 0, 0); } break; case 6: - if (world.isRemote) { + if (world.isClientSide) { openWiki(); } break; case 7: - if (!world.isRemote) { + if (!world.isClientSide) { destroyUniverse(player); } break; case 8: - if (!world.isRemote) { + if (!world.isClientSide) { // lightingTest(world, new BlockPos(player)); } break; @@ -815,9 +815,9 @@ public ActionResult handleRightClick(ItemStack stack, World world, Pl @Override public ActionResultType onItemUseFirst(ItemStack stack, ItemUseContext context) { - World world = context.getWorld(); - BlockPos pos = context.getPos(); - Direction side = context.getFace(); + World world = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction side = context.getClickedFace(); // ItemStack stack = player.getHeldItem(hand); // if (world.isRemote) return EnumActionResult.PASS; @@ -884,7 +884,7 @@ public ActionResultType onItemUseFirst(ItemStack stack, ItemUseContext context) case 1: case 2: - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); // if (mode == 1 && tile instanceof IEnergyReceiver) { // if (!world.isRemote) { // LogHelper.info(((IEnergyReceiver) tile).receiveEnergy(side, Integer.MAX_VALUE, false)); @@ -1260,7 +1260,7 @@ private void destroyUniverse(PlayerEntity player) { // double r = 1 + rand.nextDouble(); // // for (int rayD = 0; rayD < rayDist; rayD++) { -// double d2 = direction + (ng.func_151605_a(x/1.8, z/1.8) * r); +// double d2 = direction + (ng.getValue(x/1.8, z/1.8) * r); // x += Math.cos(d2); // z += Math.sin(d2); // @@ -1296,7 +1296,7 @@ private void destroyUniverse(PlayerEntity player) { //// for (int rayD = 0; rayD < rayDist; rayD++) { //// double dpc = 1D - (rayD / (double) rayDist); //// -//// double d2 = direction + (ng.func_151605_a(x / 1.8, z / 1.8) * r); +//// double d2 = direction + (ng.getValue(x / 1.8, z / 1.8) * r); //// x += Math.cos(d2); //// z += Math.sin(d2); //// @@ -1334,7 +1334,7 @@ private void destroyUniverse(PlayerEntity player) { //// for (int rayD = 0; rayD < rayDist; rayD++) { //// double dpc = 1D - (rayD / (double) rayDist); //// -//// double d2 = direction + (ng.func_151605_a(x / 1.8, z / 1.8) * r); +//// double d2 = direction + (ng.getValue(x / 1.8, z / 1.8) * r); //// x += Math.cos(d2); //// z += Math.sin(d2); //// diff --git a/src/main/java/com/brandon3055/draconicevolution/items/EnderEnergyManipulator.java b/src/main/java/com/brandon3055/draconicevolution/items/EnderEnergyManipulator.java index 6540b7d6e..64b69dfc8 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/EnderEnergyManipulator.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/EnderEnergyManipulator.java @@ -38,21 +38,21 @@ public EnderEnergyManipulator(Properties properties) { } @Override - public ActionResultType onItemUse(ItemUseContext context) { + public ActionResultType useOn(ItemUseContext context) { assert false; //Not Implemented PlayerEntity player = context.getPlayer(); - World cWorld = context.getWorld(); + World cWorld = context.getLevel(); Hand hand = context.getHand(); - BlockPos pos = context.getPos(); + BlockPos pos = context.getClickedPos(); if (cWorld instanceof ServerWorld) { ServerWorld world = (ServerWorld) cWorld; - ItemStack stack = context.getItem(); + ItemStack stack = context.getItemInHand(); BlockState state = world.getBlockState(pos); List list = world.getEntities(null, Entity::isAlive); - if (world.getDimensionKey() == World.THE_END && Utils.getDistanceAtoB(Vec3D.getCenter(pos), new Vec3D(0, pos.getY(), 0)) <= 8 && state.getBlock() == Blocks.BEDROCK && list.isEmpty()) { - if (!world.isRemote) { + if (world.dimension() == World.END && Utils.getDistanceAtoB(Vec3D.getCenter(pos), new Vec3D(0, pos.getY(), 0)) <= 8 && state.getBlock() == Blocks.BEDROCK && list.isEmpty()) { + if (!world.isClientSide) { // EntityEnderEnergyManipulator entity = new EntityEnderEnergyManipulator(world); // entity.setPosition(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5); // world.addEntity(entity); @@ -62,15 +62,15 @@ public ActionResultType onItemUse(ItemUseContext context) { return ActionResultType.SUCCESS; } - if (!world.isRemote) { + if (!world.isClientSide) { if (!list.isEmpty()) { - player.sendMessage(new TranslationTextComponent("info.de.ender_energy_manipulator.running.msg"), Util.DUMMY_UUID); + player.sendMessage(new TranslationTextComponent("info.de.ender_energy_manipulator.running.msg"), Util.NIL_UUID); } else { - player.sendMessage(new TranslationTextComponent("info.de.ender_energy_manipulator.location.msg"), Util.DUMMY_UUID); + player.sendMessage(new TranslationTextComponent("info.de.ender_energy_manipulator.location.msg"), Util.NIL_UUID); } } } - return super.onItemUse(context); + return super.useOn(context); } // @OnlyIn(Dist.CLIENT) @@ -86,8 +86,8 @@ public ActionResultType onItemUse(ItemUseContext context) { @OnlyIn(Dist.CLIENT) @Override - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { - super.addInformation(stack, worldIn, tooltip, flagIn); + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + super.appendHoverText(stack, worldIn, tooltip, flagIn); tooltip.add(new TranslationTextComponent("info.de.ender_energy_manipulator.info.txt")); tooltip.add(new TranslationTextComponent("info.de.ender_energy_manipulator.info2.txt")); } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/InfoTablet.java b/src/main/java/com/brandon3055/draconicevolution/items/InfoTablet.java index 29e3aed35..93a4c100f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/InfoTablet.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/InfoTablet.java @@ -2,7 +2,6 @@ import com.brandon3055.brandonscore.items.ItemBCore; import com.brandon3055.draconicevolution.DraconicEvolution; -//import com.brandon3055.projectintelligence.api.PiAPI; import com.brandon3055.draconicevolution.client.gui.WhatsBrokenGui; import net.minecraft.client.Minecraft; import net.minecraft.entity.player.PlayerEntity; @@ -14,6 +13,8 @@ import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraft.item.Item.Properties; + /** * Created by brandon3055 on 22/09/2016. */ @@ -26,11 +27,11 @@ public InfoTablet(Properties properties) { } @Override - public ActionResult onItemRightClick(World worldIn, PlayerEntity playerIn, Hand hand) { - if (worldIn.isRemote) { + public ActionResult use(World worldIn, PlayerEntity playerIn, Hand hand) { + if (worldIn.isClientSide) { openPIGui(); } - return super.onItemRightClick(worldIn, playerIn, hand); + return super.use(worldIn, playerIn, hand); } @@ -39,7 +40,7 @@ public static void openPIGui() { // if (Loader.isModLoaded("projectintelligence")) { // return doOpenPiGui(); // } - Minecraft.getInstance().displayGuiScreen(new WhatsBrokenGui()); + Minecraft.getInstance().setScreen(new WhatsBrokenGui()); // return false; } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/ItemCore.java b/src/main/java/com/brandon3055/draconicevolution/items/ItemCore.java index 86304e9be..6bdbb754f 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/ItemCore.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/ItemCore.java @@ -28,37 +28,37 @@ public ItemCore(Properties properties) { } @Override - public ActionResultType onItemUse(ItemUseContext context) { - World world = context.getWorld(); + public ActionResultType useOn(ItemUseContext context) { + World world = context.getLevel(); Hand hand = context.getHand(); - BlockPos pos = context.getPos(); + BlockPos pos = context.getClickedPos(); - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof MobSpawnerTileEntity) { - if (!world.isRemote) { - ResourceLocation name = ((MobSpawnerTileEntity) tile).getSpawnerBaseLogic().getEntityId(); + if (!world.isClientSide) { + ResourceLocation name = ((MobSpawnerTileEntity) tile).getSpawner().getEntityId(); ItemStack soul = new ItemStack(DEContent.mob_soul); DEContent.mob_soul.setEntity(name, soul); SpawnerTier tier = SpawnerTier.getTierFromCore(this); ItemStack spawner = new ItemStack(DEContent.stabilized_spawner); CompoundNBT managedData = new CompoundNBT(); - spawner.getOrCreateChildTag(BlockBCore.BC_TILE_DATA_TAG).put(BlockBCore.BC_MANAGED_DATA_FLAG, managedData); + spawner.getOrCreateTagElement(BlockBCore.BC_TILE_DATA_TAG).put(BlockBCore.BC_MANAGED_DATA_FLAG, managedData); managedData.put("mob_soul", soul.serializeNBT()); managedData.putByte("spawner_tier", (byte) tier.ordinal()); world.removeBlock(pos, false); - world.addEntity(new ItemEntity(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, spawner)); - InventoryUtils.consumeHeldItem(context.getPlayer(), context.getPlayer().getHeldItem(hand), hand); + world.addFreshEntity(new ItemEntity(world, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, spawner)); + InventoryUtils.consumeHeldItem(context.getPlayer(), context.getPlayer().getItemInHand(hand), hand); } return ActionResultType.SUCCESS; } - return super.onItemUse(context); + return super.useOn(context); } @Override - public boolean hasEffect(ItemStack stack) { + public boolean isFoil(ItemStack stack) { return stack.getItem() == DEContent.core_chaotic; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/MobSoul.java b/src/main/java/com/brandon3055/draconicevolution/items/MobSoul.java index c0f440c06..b03227be5 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/MobSoul.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/MobSoul.java @@ -41,37 +41,37 @@ public MobSoul(Properties properties) { } @Override - public ActionResultType onItemUse(ItemUseContext context) { - World world = context.getWorld(); - Direction facing = context.getFace(); - BlockPos pos = context.getPos(); + public ActionResultType useOn(ItemUseContext context) { + World world = context.getLevel(); + Direction facing = context.getClickedFace(); + BlockPos pos = context.getClickedPos(); PlayerEntity player = context.getPlayer(); - ItemStack stack = player.getHeldItem(context.getHand()); - if (player.isSneaking()) { + ItemStack stack = player.getItemInHand(context.getHand()); + if (player.isShiftKeyDown()) { Entity entity = createEntity(world, stack); - double sX = pos.getX() + facing.getXOffset() + 0.5; - double sY = pos.getY() + facing.getYOffset() + 0.5; - double sZ = pos.getZ() + facing.getZOffset() + 0.5; + double sX = pos.getX() + facing.getStepX() + 0.5; + double sY = pos.getY() + facing.getStepY() + 0.5; + double sZ = pos.getZ() + facing.getStepZ() + 0.5; if (entity == null) { LogHelper.error("Mob Soul bound entity = null"); - return super.onItemUse(context); + return super.useOn(context); } - entity.setLocationAndAngles(sX, sY, sZ, player.rotationYaw, 0F); + entity.moveTo(sX, sY, sZ, player.yRot, 0F); - if (!world.isRemote) { + if (!world.isClientSide) { CompoundNBT compound = ItemNBTHelper.getCompound(stack); if (!compound.contains("EntityData") && entity instanceof MobEntity) { - ((MobEntity) entity).onInitialSpawn((ServerWorld)world, world.getDifficultyForLocation(new BlockPos(0, 0, 0)), SpawnReason.SPAWN_EGG, null, null); + ((MobEntity) entity).finalizeSpawn((ServerWorld)world, world.getCurrentDifficultyAt(new BlockPos(0, 0, 0)), SpawnReason.SPAWN_EGG, null, null); } - world.addEntity(entity); - if (!player.abilities.isCreativeMode) { + world.addFreshEntity(entity); + if (!player.abilities.instabuild) { InventoryUtils.consumeHeldItem(player, stack, context.getHand()); } } } - return super.onItemUse(context); + return super.useOn(context); } // @Override @@ -156,12 +156,12 @@ public Entity createEntity(World world, ItemStack stack) { else { entity = type.create(world); if (entityData != null) { - entity.read(entityData); + entity.load(entityData); } else { loadAdditionalEntityInfo(stack, entity); if (entity instanceof MobEntity) { - ((MobEntity) entity).onInitialSpawn((ServerWorld)world, world.getDifficultyForLocation(new BlockPos(0, 0, 0)), SpawnReason.SPAWN_EGG, null, null); + ((MobEntity) entity).finalizeSpawn((ServerWorld)world, world.getCurrentDifficultyAt(new BlockPos(0, 0, 0)), SpawnReason.SPAWN_EGG, null, null); // entitytype.spawn(worldIn, itemstack, playerIn, blockpos, SpawnReason.SPAWN_EGG, false, false) // type.spawn(world, stack, null, new BlockPos(0, 0, 0), SpawnReason.SPAWN_EGG, false, false); @@ -186,7 +186,7 @@ public ItemStack getSoulFromEntity(Entity entity, boolean saveEntityData) { if (saveEntityData) { CompoundNBT compound = new CompoundNBT(); - entity.writeWithoutTypeId(compound); + entity.saveWithoutId(compound); setEntityData(compound, soul); } else { @@ -205,7 +205,7 @@ public Entity getRenderEntity(String name) { if (name.equals("[Random-Display]")) { if (randomDisplayList == null) { randomDisplayList = new ArrayList<>(); - SpawnEggItem.EGGS.keySet().forEach(type -> randomDisplayList.add(type.getRegistryName().toString())); + SpawnEggItem.BY_ID.keySet().forEach(type -> randomDisplayList.add(type.getRegistryName().toString())); } if (randomDisplayList.size() > 0) { @@ -214,7 +214,7 @@ public Entity getRenderEntity(String name) { } if (!renderEntityMap.containsKey(name)) { - World world = Minecraft.getInstance().world; + World world = Minecraft.getInstance().level; Entity entity; try { EntityType type = ForgeRegistries.ENTITIES.getValue(getCachedRegName(name)); diff --git a/src/main/java/com/brandon3055/draconicevolution/items/ToolUpgrade.java b/src/main/java/com/brandon3055/draconicevolution/items/ToolUpgrade.java index a1ab20e54..7ed5283c4 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/ToolUpgrade.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/ToolUpgrade.java @@ -137,7 +137,7 @@ public static Collection createUpgradeRecipes() { @OnlyIn(Dist.CLIENT) @Override - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { if (!Screen.hasShiftDown()) { tooltip.add(new TranslationTextComponent("upgrade.de.holdShiftForRecipes.info", TextFormatting.AQUA + "" + TextFormatting.ITALIC, TextFormatting.RESET + "" + TextFormatting.GRAY)); } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/DEItemTier.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/DEItemTier.java index f00f0eeb7..8e2053367 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/DEItemTier.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/DEItemTier.java @@ -31,17 +31,17 @@ public DEItemTier(TechPropBuilder itemProps, Supplier damageMultiplier, S } @Override - public int getMaxUses() { + public int getUses() { return 0; // = unbreakable but ~can be~ "IS" overridden by item properties "Unless extending TieredItem" } @Override - public int getHarvestLevel() { + public int getLevel() { return itemProps.miningLevel; } @Override - public int getEnchantability() { + public int getEnchantmentValue() { return getEnchantability(techLevel); } @@ -60,7 +60,7 @@ public static int getEnchantability(TechLevel techLevel) { } @Override - public float getEfficiency() { + public float getSpeed() { switch (techLevel) { case DRACONIUM: return (float) EquipCfg.draconiumEfficiency * (efficiencyMultiplier == null ? 1 : efficiencyMultiplier.get()); @@ -75,7 +75,7 @@ public float getEfficiency() { } @Override - public float getAttackDamage() { + public float getAttackDamageBonus() { switch (techLevel) { case DRACONIUM: return (float) EquipCfg.draconiumDamage * damageMultiplier.get(); @@ -104,7 +104,7 @@ public float getAttackSpeed() { } @Override - public Ingredient getRepairMaterial() { + public Ingredient getRepairIngredient() { return Ingredient.EMPTY; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularArmor.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularArmor.java index 8563014a4..e7892948b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularArmor.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularArmor.java @@ -47,7 +47,7 @@ default void addModularItemInformation(ItemStack stack, @Nullable World worldIn, ModuleHost host = stack.getCapability(MODULE_HOST_CAPABILITY).orElseThrow(IllegalStateException::new); SpeedData speed = host.getModuleData(ModuleTypes.SPEED); if (speed != null && speed.getSpeedMultiplier() > DEConfig.armorSpeedLimit) { - tooltip.add(new StringTextComponent("Speed limit on this server is +" + (int) (DEConfig.armorSpeedLimit * 100) + "%").mergeStyle(TextFormatting.RED)); + tooltip.add(new StringTextComponent("Speed limit on this server is +" + (int) (DEConfig.armorSpeedLimit * 100) + "%").withStyle(TextFormatting.RED)); } } } @@ -57,8 +57,8 @@ default boolean elytraFlightTick(ItemStack stack, LivingEntity entity, int fligh LazyOptional power = stack.getCapability(OP_STORAGE); power.ifPresent(storage -> { if (storage.getOPStored() < 512) { - Vector3d motion = entity.getMotion(); - entity.setMotion(motion.x * 0.95, motion.y > 0 ? motion.y * 0.95 : motion.y, motion.z * 0.95); + Vector3d motion = entity.getDeltaMovement(); + entity.setDeltaMovement(motion.x * 0.95, motion.y > 0 ? motion.y * 0.95 : motion.y, motion.z * 0.95); } else if (storage instanceof IOPStorageModifiable) { int energy = EquipCfg.elytraFlightEnergy; @@ -69,9 +69,9 @@ default boolean elytraFlightTick(ItemStack stack, LivingEntity entity, int fligh if (flightSpeed > 0) { double speed = 1.5D * flightSpeed; double accel = 0.01 * flightSpeed; - Vector3d look = entity.getLookVec(); - Vector3d motion = entity.getMotion(); - entity.setMotion(motion.add( + Vector3d look = entity.getLookAngle(); + Vector3d motion = entity.getDeltaMovement(); + entity.setDeltaMovement(motion.add( look.x * accel + (look.x * speed - motion.x) * accel, look.y * accel + (look.y * speed - motion.y) * accel, look.z * accel + (look.z * speed - motion.z) * accel @@ -80,7 +80,7 @@ default boolean elytraFlightTick(ItemStack stack, LivingEntity entity, int fligh } } - if (!entity.world.isRemote) { + if (!entity.level.isClientSide) { ((IOPStorageModifiable) storage).modifyEnergyStored(-energy); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularItem.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularItem.java index eefbf96c2..81ea76f99 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularItem.java @@ -114,13 +114,13 @@ default void initCapabilities(ItemStack stack, ModuleHostImpl host, MultiCapabil @OnlyIn(Dist.CLIENT) default void addModularItemInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { if (!Screen.hasShiftDown()) { - tooltip.add(new TranslationTextComponent("[Modular Item]").mergeStyle(TextFormatting.BLUE)); + tooltip.add(new TranslationTextComponent("[Modular Item]").withStyle(TextFormatting.BLUE)); } EnergyUtils.addEnergyInfo(stack, tooltip); if (EnergyUtils.isEnergyItem(stack) && EnergyUtils.getMaxEnergyStored(stack) == 0) { - tooltip.add(new TranslationTextComponent("modular_item.draconicevolution.requires_energy").mergeStyle(TextFormatting.RED)); - if (KeyBindings.toolModules != null && KeyBindings.toolModules.func_238171_j_() != null){ - tooltip.add(new TranslationTextComponent("modular_item.draconicevolution.requires_energy_press", KeyBindings.toolModules.func_238171_j_().getString()).mergeStyle(TextFormatting.BLUE)); + tooltip.add(new TranslationTextComponent("modular_item.draconicevolution.requires_energy").withStyle(TextFormatting.RED)); + if (KeyBindings.toolModules != null && KeyBindings.toolModules.getTranslatedKeyMessage() != null){ + tooltip.add(new TranslationTextComponent("modular_item.draconicevolution.requires_energy_press", KeyBindings.toolModules.getTranslatedKeyMessage().getString()).withStyle(TextFormatting.BLUE)); } } } @@ -151,7 +151,7 @@ default void handleTick(ItemStack stack, LivingEntity entity, @Nullable Equipmen * @return true if this stack is in a valid slot. */ default boolean isEquipped(ItemStack stack, @Nullable EquipmentSlotType slot, boolean inEquipSlot) { - if (this instanceof IModularArmor) return (slot != null && slot.getSlotType() == EquipmentSlotType.Group.ARMOR) || inEquipSlot; + if (this instanceof IModularArmor) return (slot != null && slot.getType() == EquipmentSlotType.Group.ARMOR) || inEquipSlot; return true; } @@ -231,7 +231,7 @@ default long getEnergyStored(ItemStack stack) { } default long extractEnergy(PlayerEntity player, ItemStack stack, long amount) { - if (player != null && player.abilities.isCreativeMode) { + if (player != null && player.abilities.instabuild) { return amount; } IOPStorage storage = EnergyUtils.getStorage(stack); diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularMelee.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularMelee.java index 9c47c85f8..105aaf9ba 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularMelee.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularMelee.java @@ -43,7 +43,7 @@ default boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity t aoe = ((PropertyProvider) host).getDecimal("attack_aoe").getValue(); } - float attackStrength = player.getCooledAttackStrength(0.5F); + float attackStrength = player.getAttackStrengthScale(0.5F); if (aoe > 0 && attackStrength > 0.9) { damage = damage * (0.2F + (attackStrength * attackStrength * 0.8F)); dealAOEDamage(player, target, stack, energyPerHit, damage, aoe); @@ -52,45 +52,45 @@ default boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity t } default void dealAOEDamage(PlayerEntity player, Entity target, ItemStack stack, long energyPerHit, float damage, double aoe) { - List entities = player.world.getEntitiesWithinAABB(LivingEntity.class, target.getBoundingBox().grow(aoe, 0.25D, aoe)); + List entities = player.level.getEntitiesOfClass(LivingEntity.class, target.getBoundingBox().inflate(aoe, 0.25D, aoe)); double aoeAngle = 100; - double yaw = player.rotationYaw - 180; - int fireAspect = EnchantmentHelper.getFireAspectModifier(player); + double yaw = player.yRot - 180; + int fireAspect = EnchantmentHelper.getFireAspect(player); for (LivingEntity entity : entities) { - if (getEnergyStored(stack) < energyPerHit && !player.abilities.isCreativeMode) break; - float distance = player.getDistance(entity); - if (entity == player || entity == target || player.isOnSameTeam(entity) || distance < 1 || entity.getDistance(target) > aoe) continue; - double angle = Math.atan2(player.getPosX() - entity.getPosX(), player.getPosZ() - entity.getPosZ()) * MathHelper.todeg; + if (getEnergyStored(stack) < energyPerHit && !player.abilities.instabuild) break; + float distance = player.distanceTo(entity); + if (entity == player || entity == target || player.isAlliedTo(entity) || distance < 1 || entity.distanceTo(target) > aoe) continue; + double angle = Math.atan2(player.getX() - entity.getX(), player.getZ() - entity.getZ()) * MathHelper.todeg; double relativeAngle = Math.abs((angle + yaw) % 360); if (relativeAngle <= aoeAngle / 2 || relativeAngle > 360 - (aoeAngle / 2)) { boolean lit = false; float health = entity.getHealth(); - if (fireAspect > 0 && !entity.isBurning()) { + if (fireAspect > 0 && !entity.isOnFire()) { lit = true; - entity.setFire(1); + entity.setSecondsOnFire(1); } - if (entity.attackEntityFrom(DamageSource.causePlayerDamage(player), damage)) { + if (entity.hurt(DamageSource.playerAttack(player), damage)) { float damageDealt = health - entity.getHealth(); - entity.applyKnockback(0.4F, MathHelper.sin(player.rotationYaw * MathHelper.torad), (-MathHelper.cos(player.rotationYaw * MathHelper.torad))); + entity.knockback(0.4F, MathHelper.sin(player.yRot * MathHelper.torad), (-MathHelper.cos(player.yRot * MathHelper.torad))); if (fireAspect > 0) { - entity.setFire(fireAspect * 4); + entity.setSecondsOnFire(fireAspect * 4); } - if (player.world instanceof ServerWorld && damageDealt > 2.0F) { + if (player.level instanceof ServerWorld && damageDealt > 2.0F) { int k = (int)((double)damage * 0.5D); - ((ServerWorld)player.world).spawnParticle(ParticleTypes.DAMAGE_INDICATOR, entity.getPosX(), entity.getPosYHeight(0.5D), entity.getPosZ(), k, 0.1D, 0.0D, 0.1D, 0.2D); + ((ServerWorld)player.level).sendParticles(ParticleTypes.DAMAGE_INDICATOR, entity.getX(), entity.getY(0.5D), entity.getZ(), k, 0.1D, 0.0D, 0.1D, 0.2D); } - player.addStat(Stats.DAMAGE_DEALT, Math.round(damageDealt * 10.0F)); - if (player.world instanceof ServerWorld && damageDealt > 2.0F) { + player.awardStat(Stats.DAMAGE_DEALT, Math.round(damageDealt * 10.0F)); + if (player.level instanceof ServerWorld && damageDealt > 2.0F) { int k = (int) ((double) damageDealt * 0.5D); - ((ServerWorld) player.world).spawnParticle(ParticleTypes.DAMAGE_INDICATOR, entity.getPosX(), entity.getPosYHeight(0.5D), entity.getPosZ(), k, 0.1D, 0.0D, 0.1D, 0.2D); + ((ServerWorld) player.level).sendParticles(ParticleTypes.DAMAGE_INDICATOR, entity.getX(), entity.getY(0.5D), entity.getZ(), k, 0.1D, 0.0D, 0.1D, 0.2D); } } else if (lit) { - entity.extinguish(); + entity.clearFire(); } } extractEnergy(player, stack, energyPerHit); diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularMiningTool.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularMiningTool.java index e9c3b283f..a11335595 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularMiningTool.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularMiningTool.java @@ -44,7 +44,7 @@ public interface IModularMiningTool extends IModularTieredItem { @Override default boolean onBlockStartBreak(ItemStack stack, BlockPos pos, PlayerEntity player) { - if (getEnergyStored(stack) < EquipCfg.energyHarvest && !player.abilities.isCreativeMode) { + if (getEnergyStored(stack) < EquipCfg.energyHarvest && !player.abilities.instabuild) { return false; } @@ -69,30 +69,30 @@ default boolean onBlockStartBreak(ItemStack stack, BlockPos pos, PlayerEntity pl } default boolean breakAOEBlocks(ItemStack stack, BlockPos pos, int breakRadius, int breakDepth, PlayerEntity player, boolean aoeSafe) { - BlockState blockState = player.world.getBlockState(pos); + BlockState blockState = player.level.getBlockState(pos); if (!isToolEffective(stack, blockState)) { return false; } InventoryDynamic inventoryDynamic = new InventoryDynamic(); - float refStrength = blockStrength(blockState, player, player.world, pos); + float refStrength = blockStrength(blockState, player, player.level, pos); Pair aoe = getMiningArea(pos, player, breakRadius, breakDepth); - List aoeBlocks = BlockPos.getAllInBox(aoe.key(), aoe.value()).map(BlockPos::new).collect(Collectors.toList()); + List aoeBlocks = BlockPos.betweenClosedStream(aoe.key(), aoe.value()).map(BlockPos::new).collect(Collectors.toList()); if (aoeSafe) { for (BlockPos block : aoeBlocks) { - if (!player.world.isAirBlock(block) && player.world.getTileEntity(block) != null) { - if (player.world.isRemote) player.sendMessage(new TranslationTextComponent("item_prop.draconicevolution.aoe_safe.blocked"), Util.DUMMY_UUID); - else ((ServerPlayerEntity) player).connection.sendPacket(new SChangeBlockPacket(((ServerPlayerEntity) player).world, block)); + if (!player.level.isEmptyBlock(block) && player.level.getBlockEntity(block) != null) { + if (player.level.isClientSide) player.sendMessage(new TranslationTextComponent("item_prop.draconicevolution.aoe_safe.blocked"), Util.NIL_UUID); + else ((ServerPlayerEntity) player).connection.send(new SChangeBlockPacket(((ServerPlayerEntity) player).level, block)); return true; } } } - aoeBlocks.forEach(block -> breakAOEBlock(stack, player.world, block, player, refStrength, inventoryDynamic, rand.nextInt(Math.max(5, (breakRadius * breakDepth) / 5)) == 0)); - List items = player.world.getEntitiesWithinAABB(ItemEntity.class, new AxisAlignedBB(aoe.key(), aoe.value().add(1, 1, 1))); + aoeBlocks.forEach(block -> breakAOEBlock(stack, player.level, block, player, refStrength, inventoryDynamic, rand.nextInt(Math.max(5, (breakRadius * breakDepth) / 5)) == 0)); + List items = player.level.getEntitiesOfClass(ItemEntity.class, new AxisAlignedBB(aoe.key(), aoe.value().offset(1, 1, 1))); for (ItemEntity item : items) { - if (!player.world.isRemote && item.isAlive()) { + if (!player.level.isClientSide && item.isAlive()) { InventoryUtils.insertItem(inventoryDynamic, item.getItem(), false); item.remove(); } @@ -112,18 +112,18 @@ default boolean breakAOEBlocks(ItemStack stack, BlockPos pos, int breakRadius, i // }); // } - if (!player.world.isRemote) { + if (!player.level.isClientSide) { // if (DEOldConfig.disableLootCores) { - for (int i = 0; i < inventoryDynamic.getSizeInventory(); i++) { - ItemStack sis = inventoryDynamic.getStackInSlot(i); + for (int i = 0; i < inventoryDynamic.getContainerSize(); i++) { + ItemStack sis = inventoryDynamic.getItem(i); if (sis != null) { - ItemEntity item = new ItemEntity(player.world, player.getPosX(), player.getPosY(), player.getPosZ(), sis); - item.setPickupDelay(0); - player.world.addEntity(item); + ItemEntity item = new ItemEntity(player.level, player.getX(), player.getY(), player.getZ(), sis); + item.setPickUpDelay(0); + player.level.addFreshEntity(item); } } player.giveExperiencePoints(inventoryDynamic.xp); - inventoryDynamic.clear(); + inventoryDynamic.clearContent(); // } else { // EntityLootCore lootCore = new EntityLootCore(player.world, inventoryDynamic); TODO Entity Stuff // lootCore.setPosition(player.getPosX(), player.getPosY(), player.getPosZ()); @@ -135,7 +135,7 @@ default boolean breakAOEBlocks(ItemStack stack, BlockPos pos, int breakRadius, i } static float blockStrength(BlockState state, PlayerEntity player, World world, BlockPos pos) { - float hardness = state.getBlockHardness(world, pos); + float hardness = state.getDestroySpeed(world, pos); if (hardness < 0.0F) { return 0.0F; } @@ -153,7 +153,7 @@ default Pair getMiningArea(BlockPos pos, PlayerEntity player return new Pair<>(pos, pos); } - int sideHit = traceResult.getFace().getIndex(); + int sideHit = traceResult.getDirection().get3DDataValue(); int xMax = breakRadius; int xMin = breakRadius; @@ -204,11 +204,11 @@ default Pair getMiningArea(BlockPos pos, PlayerEntity player yOffset = 0; } - return new Pair<>(pos.add(-xMin, yOffset - yMin, -zMin), pos.add(xMax, yOffset + yMax, zMax)); + return new Pair<>(pos.offset(-xMin, yOffset - yMin, -zMin), pos.offset(xMax, yOffset + yMax, zMax)); } default void breakAOEBlock(ItemStack stack, World world, BlockPos pos, PlayerEntity player, float refStrength, InventoryDynamic inventory, boolean breakFX) { - if (world.isAirBlock(pos)) { + if (world.isEmptyBlock(pos)) { return; } @@ -226,38 +226,38 @@ default void breakAOEBlock(ItemStack stack, World world, BlockPos pos, PlayerEnt return; } - if (player.abilities.isCreativeMode) { + if (player.abilities.instabuild) { if (block.removedByPlayer(state, world, pos, player, false, fluidState)) { - block.onPlayerDestroy(world, pos, state); + block.destroy(world, pos, state); } - if (!world.isRemote) { - ((ServerPlayerEntity) player).connection.sendPacket(new SChangeBlockPacket(world, pos)); + if (!world.isClientSide) { + ((ServerPlayerEntity) player).connection.send(new SChangeBlockPacket(world, pos)); } return; } - if (!world.isRemote) { - int xp = ForgeHooks.onBlockBreakEvent(world, ((ServerPlayerEntity) player).interactionManager.getGameType(), (ServerPlayerEntity) player, pos); + if (!world.isClientSide) { + int xp = ForgeHooks.onBlockBreakEvent(world, ((ServerPlayerEntity) player).gameMode.getGameModeForPlayer(), (ServerPlayerEntity) player, pos); if (xp == -1) { ServerPlayerEntity mpPlayer = (ServerPlayerEntity) player; - mpPlayer.connection.sendPacket(new SChangeBlockPacket(world, pos)); + mpPlayer.connection.send(new SChangeBlockPacket(world, pos)); return; } EquipCfg.energyHarvest = 256; - stack.onBlockDestroyed(world, state, pos, player); + stack.mineBlock(world, state, pos, player); BlockToStackHelper.breakAndCollectWithPlayer(world, pos, inventory, player, xp); extractEnergy(player, stack, EquipCfg.energyHarvest); } else { if (block.removedByPlayer(state, world, pos, player, true, fluidState)) { - block.onPlayerDestroy(world, pos, state); + block.destroy(world, pos, state); } - stack.onBlockDestroyed(world, state, pos, player); + stack.mineBlock(world, state, pos, player); - if (Minecraft.getInstance().objectMouseOver instanceof BlockRayTraceResult) { - Minecraft.getInstance().getConnection().sendPacket(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.STOP_DESTROY_BLOCK, pos, ((BlockRayTraceResult) Minecraft.getInstance().objectMouseOver).getFace())); + if (Minecraft.getInstance().hitResult instanceof BlockRayTraceResult) { + Minecraft.getInstance().getConnection().send(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.STOP_DESTROY_BLOCK, pos, ((BlockRayTraceResult) Minecraft.getInstance().hitResult).getDirection())); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularTieredItem.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularTieredItem.java index 3d0c45408..12ec08bb8 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularTieredItem.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/IModularTieredItem.java @@ -34,8 +34,8 @@ default Multimap getAttributeModifiers(EquipmentSl double damage = getAttackDamage(host, stack); double speed = 1 + host.getModuleData(ModuleTypes.SPEED, new SpeedData(0)).getSpeedMultiplier(); - map.put(Attributes.ATTACK_DAMAGE, new AttributeModifier(Item.ATTACK_DAMAGE_MODIFIER, "Tool modifier", damage, AttributeModifier.Operation.ADDITION)); - map.put(Attributes.ATTACK_SPEED, new AttributeModifier(Item.ATTACK_SPEED_MODIFIER, "Tool modifier", (tier.getAttackSpeed() * speed) - 4, AttributeModifier.Operation.ADDITION)); + map.put(Attributes.ATTACK_DAMAGE, new AttributeModifier(Item.BASE_ATTACK_DAMAGE_UUID, "Tool modifier", damage, AttributeModifier.Operation.ADDITION)); + map.put(Attributes.ATTACK_SPEED, new AttributeModifier(Item.BASE_ATTACK_SPEED_UUID, "Tool modifier", (tier.getAttackSpeed() * speed) - 4, AttributeModifier.Operation.ADDITION)); } } @@ -47,6 +47,6 @@ default double getAttackDamage(ModuleHost host, ItemStack stack) { if (getEnergyStored(stack) < EquipCfg.energyAttack * damage) { damage = 0; } - return damage + (getItemTier().getAttackDamage() - 1); + return damage + (getItemTier().getAttackDamageBonus() - 1); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularAxe.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularAxe.java index 7f2b8eb15..b4119c87d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularAxe.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularAxe.java @@ -30,7 +30,7 @@ * Created by brandon3055 on 21/5/20. */ public class ModularAxe extends AxeItem implements IReaperItem, IModularMiningTool { - public static final Set EFFECTIVE_MATS = ImmutableSet.of(Material.WOOD, Material.PLANTS, Material.TALL_PLANTS, Material.BAMBOO, Material.LEAVES); + public static final Set EFFECTIVE_MATS = ImmutableSet.of(Material.WOOD, Material.PLANT, Material.REPLACEABLE_PLANT, Material.BAMBOO, Material.LEAVES); private final TechLevel techLevel; private final DEItemTier itemTier; @@ -70,7 +70,7 @@ public float getDestroySpeed(ItemStack stack, BlockState state) { @Override public float getBaseEfficiency() { - return getTier().getEfficiency(); + return getTier().getSpeed(); } @Override @@ -85,7 +85,7 @@ public boolean overrideEffectivity(Material material) { @Override @OnlyIn(Dist.CLIENT) - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { addModularItemInformation(stack, worldIn, tooltip, flagIn); } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularBow.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularBow.java index 3ff5f9a1b..c836c74c5 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularBow.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularBow.java @@ -30,7 +30,7 @@ public class ModularBow extends BowItem implements IReaperItem, IModularItem { private final TechLevel techLevel; public ModularBow(TechPropBuilder props) { - super(props.build().isImmuneToFire()); + super(props.build().fireResistant()); this.techLevel = props.techLevel; } @@ -54,9 +54,9 @@ public ModularOPStorage createOPStorage(ItemStack stack, ModuleHostImpl host) { @Override @OnlyIn(Dist.CLIENT) - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { addModularItemInformation(stack, worldIn, tooltip, flagIn); - tooltip.add(new StringTextComponent("[Not yet implemented]").mergeStyle(TextFormatting.RED)); + tooltip.add(new StringTextComponent("[Not yet implemented]").withStyle(TextFormatting.RED)); } @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularChestpiece.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularChestpiece.java index ef96176a8..0bd1baa0b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularChestpiece.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularChestpiece.java @@ -45,7 +45,7 @@ public class ModularChestpiece extends ArmorItem implements IModularArmor, IDEEq private final TechLevel techLevel; public ModularChestpiece(TechPropBuilder props) { - super(ArmorMaterial.DIAMOND, EquipmentSlotType.CHEST, props.build().isImmuneToFire()); + super(ArmorMaterial.DIAMOND, EquipmentSlotType.CHEST, props.build().fireResistant()); this.techLevel = props.techLevel; } @@ -54,12 +54,12 @@ public boolean canEquip(ItemStack stack, EquipmentSlotType armorType, Entity ent if (entity instanceof LivingEntity && !EquipmentManager.findItem(e -> e.getItem() instanceof ModularChestpiece, (LivingEntity) entity).isEmpty()) { return false; } - return MobEntity.getSlotForItemStack(stack) == armorType; + return MobEntity.getEquipmentSlotForItem(stack) == armorType; } @Override public boolean canEquip(LivingEntity livingEntity) { - return !(livingEntity.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem() instanceof ModularChestpiece); + return !(livingEntity.getItemBySlot(EquipmentSlotType.CHEST).getItem() instanceof ModularChestpiece); } @Override @@ -114,7 +114,7 @@ public void initCapabilities(ItemStack stack, ModuleHostImpl host, MultiCapabili @Override @OnlyIn(Dist.CLIENT) - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { addModularItemInformation(stack, worldIn, tooltip, flagIn); } @@ -155,7 +155,7 @@ public > A getChestPieceModel(LivingEntity entityLiving, public static ItemStack getChestpiece(LivingEntity entity) { - ItemStack stack = entity.getItemStackFromSlot(EquipmentSlotType.CHEST); + ItemStack stack = entity.getItemBySlot(EquipmentSlotType.CHEST); if (stack.getItem() instanceof ModularChestpiece) { return stack; } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularHoe.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularHoe.java index f560416b0..e985e436e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularHoe.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularHoe.java @@ -28,7 +28,7 @@ public class ModularHoe extends HoeItem implements IModularTieredItem { private final DEItemTier itemTier; public ModularHoe(TechPropBuilder props) { - super(new DEItemTier(props, EquipCfg::getHoeDmgMult, EquipCfg::getHoeSpeedMult), 0, 0, props.build().isImmuneToFire()); + super(new DEItemTier(props, EquipCfg::getHoeDmgMult, EquipCfg::getHoeSpeedMult), 0, 0, props.build().fireResistant()); this.techLevel = props.techLevel; this.itemTier = (DEItemTier) getTier(); } @@ -61,12 +61,12 @@ public float getDestroySpeed(ItemStack stack, BlockState state) { @Override public float getBaseEfficiency() { - return getTier().getEfficiency(); + return getTier().getSpeed(); } @Override @OnlyIn(Dist.CLIENT) - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { addModularItemInformation(stack, worldIn, tooltip, flagIn); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularPickaxe.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularPickaxe.java index 8d5fcec22..8251a5c3d 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularPickaxe.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularPickaxe.java @@ -27,7 +27,7 @@ * Created by brandon3055 on 21/5/20. */ public class ModularPickaxe extends PickaxeItem implements IModularMiningTool { - public static final Set EFFECTIVE_MATS = ImmutableSet.of(Material.IRON, Material.ANVIL, Material.ROCK, Material.GLASS); + public static final Set EFFECTIVE_MATS = ImmutableSet.of(Material.METAL, Material.HEAVY_METAL, Material.STONE, Material.GLASS); private final TechLevel techLevel; private final DEItemTier itemTier; @@ -65,12 +65,12 @@ public float getDestroySpeed(ItemStack stack, BlockState state) { @Override public float getBaseEfficiency() { - return getTier().getEfficiency(); + return getTier().getSpeed(); } @Override public Set effectiveBlockAdditions() { - return effectiveBlocks; + return blocks; } @Override @@ -80,7 +80,7 @@ public boolean overrideEffectivity(Material material) { @Override @OnlyIn(Dist.CLIENT) - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { addModularItemInformation(stack, worldIn, tooltip, flagIn); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularShovel.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularShovel.java index c4ff7dc33..fbcf2acc7 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularShovel.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularShovel.java @@ -62,17 +62,17 @@ public float getDestroySpeed(ItemStack stack, BlockState state) { @Override public float getBaseEfficiency() { - return getTier().getEfficiency(); + return getTier().getSpeed(); } @Override public Set effectiveBlockAdditions() { - return effectiveBlocks; + return blocks; } @Override @OnlyIn(Dist.CLIENT) - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { addModularItemInformation(stack, worldIn, tooltip, flagIn); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularStaff.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularStaff.java index afb75f8f0..e95589ce1 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularStaff.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularStaff.java @@ -71,13 +71,13 @@ public float getDestroySpeed(ItemStack stack, BlockState state) { } @Override - public boolean canHarvestBlock(BlockState blockIn) { + public boolean isCorrectToolForDrops(BlockState blockIn) { return true; } @Override public float getBaseEfficiency() { - return getTier().getEfficiency(); + return getTier().getSpeed(); } @Override @@ -87,7 +87,7 @@ public boolean overrideEffectivity(Material material) { @Override @OnlyIn(Dist.CLIENT) - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { addModularItemInformation(stack, worldIn, tooltip, flagIn); } @@ -104,12 +104,12 @@ public int getUseDuration(ItemStack stack) { } @Override - public ActionResult onItemRightClick(World world, PlayerEntity entity, Hand hand) { + public ActionResult use(World world, PlayerEntity entity, Hand hand) { return StaffAttackHandler.onRightClick(world, entity, hand); } @Override - public void onPlayerStoppedUsing(ItemStack stack, World worldIn, LivingEntity entityLiving, int timeLeft) { + public void releaseUsing(ItemStack stack, World worldIn, LivingEntity entityLiving, int timeLeft) { StaffAttackHandler.onStopUsing(stack, worldIn, entityLiving, timeLeft); } } \ No newline at end of file diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularSword.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularSword.java index dc3672da5..a0fabe338 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularSword.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/ModularSword.java @@ -34,7 +34,7 @@ public class ModularSword extends SwordItem implements IReaperItem, IModularMele private final DEItemTier itemTier; public ModularSword(TechPropBuilder props) { - super(new DEItemTier(props, EquipCfg::getSwordDmgMult, EquipCfg::getSwordSpeedMult), 0, 0, props.build().isImmuneToFire()); + super(new DEItemTier(props, EquipCfg::getSwordDmgMult, EquipCfg::getSwordSpeedMult), 0, 0, props.build().fireResistant()); this.techLevel = props.techLevel; this.itemTier = (DEItemTier) getTier(); } @@ -63,7 +63,7 @@ public ModularOPStorage createOPStorage(ItemStack stack, ModuleHostImpl host) { @Override @OnlyIn(Dist.CLIENT) - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { addModularItemInformation(stack, worldIn, tooltip, flagIn); } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/equipment/StaffAttackHandler.java b/src/main/java/com/brandon3055/draconicevolution/items/equipment/StaffAttackHandler.java index d9a45fefb..73be6d7dd 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/equipment/StaffAttackHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/equipment/StaffAttackHandler.java @@ -19,13 +19,13 @@ public static int getMaxChargeTime(ItemStack stack, PlayerEntity player) { } public static ActionResult onRightClick(World world, PlayerEntity player, Hand hand) { - ItemStack stack = player.getHeldItem(hand); + ItemStack stack = player.getItemInHand(hand); DraconicEvolution.LOGGER.info("Click"); - player.setActiveHand(hand); + player.startUsingItem(hand); - return ActionResult.resultPass(stack); + return ActionResult.pass(stack); } public static void onStopUsing(ItemStack stack, World world, LivingEntity entity, int timeLeft) { diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/CreativeExchanger.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/CreativeExchanger.java index cb51d0967..318210b35 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/CreativeExchanger.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/CreativeExchanger.java @@ -37,7 +37,7 @@ public CreativeExchanger(Properties properties) { //region Basic @Override - public boolean hasEffect(ItemStack stack) { + public boolean isFoil(ItemStack stack) { return true; } @@ -62,48 +62,48 @@ public boolean hasEffect(ItemStack stack) { //region Interaction @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { - ItemStack stack = player.getHeldItem(hand); + public ActionResult use(World world, PlayerEntity player, Hand hand) { + ItemStack stack = player.getItemInHand(hand); BlockRayTraceResult traceResult = RayTracer.retrace(player); if (traceResult != null) { - return super.onItemRightClick(world, player, hand); + return super.use(world, player, hand); } - if (world.isRemote) { - return super.onItemRightClick(world, player, hand); + if (world.isClientSide) { + return super.use(world, player, hand); } - if (player.isSneaking()) { - player.sendMessage(new StringTextComponent(TextFormatting.DARK_RED + "Clear Mode"), Util.DUMMY_UUID); + if (player.isShiftKeyDown()) { + player.sendMessage(new StringTextComponent(TextFormatting.DARK_RED + "Clear Mode"), Util.NIL_UUID); ItemNBTHelper.setString(stack, "BlockName", ""); ItemNBTHelper.setByte(stack, "BlockData", (byte) 0); - return super.onItemRightClick(world, player, hand); + return super.use(world, player, hand); } - return super.onItemRightClick(world, player, hand); + return super.use(world, player, hand); } @Override public ActionResultType onItemUseFirst(ItemStack stack, ItemUseContext context) { - World world = context.getWorld(); + World world = context.getLevel(); PlayerEntity player = context.getPlayer(); - BlockPos pos = context.getPos(); + BlockPos pos = context.getClickedPos(); - if (world.isRemote) { + if (world.isClientSide) { return ActionResultType.PASS; } BlockState prevState = world.getBlockState(pos); - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { String name = prevState.getBlock().getRegistryName().toString(); // int data = prevState.getBlock().getMetaFromState(prevState); ItemNBTHelper.setString(stack, "BlockName", name); // ItemNBTHelper.setByte(stack, "BlockData", (byte) data); - Item item = Item.getItemFromBlock(prevState.getBlock()); + Item item = Item.byBlock(prevState.getBlock()); if (item != null) { // player.sendMessage(new StringTextComponent("Selected: " + new TranslationTextComponent(item.getTranslationKey(new ItemStack(item, 1, data)) + ".name").getFormattedText()).setStyle(new Style().setColor(TextFormatting.GREEN))); @@ -158,7 +158,7 @@ public boolean onBlockStartBreak(ItemStack stack, BlockPos pos, PlayerEntity pla } @Override - public boolean canHarvestBlock(BlockState blockIn) { + public boolean isCorrectToolForDrops(BlockState blockIn) { return false; } @@ -205,7 +205,7 @@ public static List getBlocksToReplace(ItemStack stack, BlockPos pos, W private static void scanBlocks(World world, BlockPos pos, BlockPos origin, BlockState originState, Direction side, int range, boolean replaceSame, boolean replaceVisible, boolean fillLogic, List toReplace, List scanned) { for (Direction dir : FacingUtils.getFacingsAroundAxis(side.getAxis())) { - BlockPos newPos = pos.offset(dir); + BlockPos newPos = pos.relative(dir); if (scanned.contains(newPos) || !isInRange(origin, newPos, range)) { continue; @@ -247,7 +247,7 @@ public void addDisplayData(@Nullable ItemStack stack, World world, @Nullable Blo displayList.add(opMode); for (IItemConfigField field : registry.getFields()) { - displayList.add(InfoHelper.ITC() + I18n.format(field.getUnlocalizedName()) + ": " + InfoHelper.HITC() + field.getReadableValue()); + displayList.add(InfoHelper.ITC() + I18n.get(field.getUnlocalizedName()) + ": " + InfoHelper.HITC() + field.getReadableValue()); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/CrystalBinder.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/CrystalBinder.java index 09dcc0f34..ff5605daf 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/CrystalBinder.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/CrystalBinder.java @@ -31,14 +31,14 @@ public boolean isEnchantable(ItemStack stack) { @Override public ActionResultType onItemUseFirst(ItemStack stack, ItemUseContext context) { - BlockState state = context.getWorld().getBlockState(context.getPos()); - World world = context.getWorld(); - BlockPos pos = context.getPos(); + BlockState state = context.getLevel().getBlockState(context.getClickedPos()); + World world = context.getLevel(); + BlockPos pos = context.getClickedPos(); BlockState rotated = state.rotate(world, pos, Rotation.CLOCKWISE_90); if (!rotated.equals(state)) { - world.setBlockState(pos, rotated); - return world.isRemote ? ActionResultType.PASS : ActionResultType.SUCCESS; + world.setBlockAndUpdate(pos, rotated); + return world.isClientSide ? ActionResultType.PASS : ActionResultType.SUCCESS; } return ActionResultType.PASS; diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/Dislocator.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/Dislocator.java index 83ef69503..24fad6b13 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/Dislocator.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/Dislocator.java @@ -37,7 +37,7 @@ public class Dislocator extends Item implements IHudDisplay { public Dislocator(Properties properties) { - super(properties.isImmuneToFire()); + super(properties.fireResistant()); } @Override @@ -51,54 +51,54 @@ public boolean isEnchantable(ItemStack stack) { * @param target The entity being teleported if not the user. */ public Entity dislocateEntity(ItemStack stack, @Nonnull Entity user, @Nonnull Entity target, TargetPos targetPos) { - if (target.world.isRemote) { + if (target.level.isClientSide) { return target; } if (targetPos == null) { - messageUser(user, new TranslationTextComponent("dislocate.draconicevolution.not_set").mergeStyle(TextFormatting.RED)); + messageUser(user, new TranslationTextComponent("dislocate.draconicevolution.not_set").withStyle(TextFormatting.RED)); return target; } - BCoreNetwork.sendSound(target.world, target.getPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, target.world.rand.nextFloat() * 0.1F + 0.9F, false); + BCoreNetwork.sendSound(target.level, target.blockPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, target.level.random.nextFloat() * 0.1F + 0.9F, false); target = targetPos.teleport(target); - BCoreNetwork.sendSound(target.world, target.getPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, target.world.rand.nextFloat() * 0.1F + 0.9F, false); + BCoreNetwork.sendSound(target.level, target.blockPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, target.level.random.nextFloat() * 0.1F + 0.9F, false); return target; } public void messageUser(Entity user, ITextComponent message) { if (user instanceof PlayerEntity) { // ChatHelper.sendIndexed((PlayerEntity) user, message, 576); - ((PlayerEntity) user).sendStatusMessage(message, true); + ((PlayerEntity) user).displayClientMessage(message, true); } } @Override public boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity entity) { if (entity instanceof PlayerEntity && !(this instanceof DislocatorAdvanced)) { - messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.player_need_advanced").mergeStyle(TextFormatting.RED)); + messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.player_need_advanced").withStyle(TextFormatting.RED)); return true; } - if (player.world.isRemote || !entity.isNonBoss() || !(entity instanceof LivingEntity) || player.getCooldownTracker().getCooldown(this, 0) > 0) { + if (player.level.isClientSide || !entity.canChangeDimensions() || !(entity instanceof LivingEntity) || player.getCooldowns().getCooldownPercent(this, 0) > 0) { return true; } - if (player.getHealth() > 2 || player.abilities.isCreativeMode) { - if (!player.abilities.isCreativeMode) { + if (player.getHealth() > 2 || player.abilities.instabuild) { + if (!player.abilities.instabuild) { player.setHealth(player.getHealth() - 2); } - TargetPos location = getTargetPos(stack, player.world); - player.getCooldownTracker().setCooldown(this, 20); + TargetPos location = getTargetPos(stack, player.level); + player.getCooldowns().addCooldown(this, 20); dislocateEntity(stack, player, entity, location); - stack.damageItem(1, player, e -> {}); + stack.hurtAndBreak(1, player, e -> {}); if (location != null){ - messageUser(player, new StringTextComponent(I18n.format("dislocate.draconicevolution.entity_sent_to") + " "+ location.getReadableName(false)).mergeStyle(TextFormatting.GREEN)); + messageUser(player, new StringTextComponent(I18n.get("dislocate.draconicevolution.entity_sent_to") + " "+ location.getReadableName(false)).withStyle(TextFormatting.GREEN)); } - } else if (player.world.isRemote) { - messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.low_health").mergeStyle(TextFormatting.RED)); + } else if (player.level.isClientSide) { + messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.low_health").withStyle(TextFormatting.RED)); } return true; @@ -106,66 +106,66 @@ public boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity en @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { - ItemStack stack = player.getHeldItem(hand); - if (world.isRemote) { + public ActionResult use(World world, PlayerEntity player, Hand hand) { + ItemStack stack = player.getItemInHand(hand); + if (world.isClientSide) { return new ActionResult<>(ActionResultType.PASS, stack); } TargetPos targetPos = getTargetPos(stack, world); - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { if (targetPos == null) { setLocation(stack, targetPos = new TargetPos(player)); - messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.bound_to").appendString("{" + targetPos.getReadableName(false) + "}").mergeStyle(TextFormatting.GREEN)); + messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.bound_to").append("{" + targetPos.getReadableName(false) + "}").withStyle(TextFormatting.GREEN)); } else { - messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.already_bound").mergeStyle(TextFormatting.RED)); + messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.already_bound").withStyle(TextFormatting.RED)); } return new ActionResult<>(ActionResultType.PASS, stack); } else { if (targetPos == null) { - messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.not_set").mergeStyle(TextFormatting.RED)); + messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.not_set").withStyle(TextFormatting.RED)); return new ActionResult<>(ActionResultType.PASS, stack); } - if (player.getHealth() > 2 || player.abilities.isCreativeMode) { - player.getCooldownTracker().setCooldown(this, 20); + if (player.getHealth() > 2 || player.abilities.instabuild) { + player.getCooldowns().addCooldown(this, 20); dislocateEntity(stack, player, player, targetPos); - stack.damageItem(1, player, e -> {}); + stack.hurtAndBreak(1, player, e -> {}); - if (!player.abilities.isCreativeMode) { + if (!player.abilities.instabuild) { player.setHealth(player.getHealth() - 2); } } else { - messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.low_health").mergeStyle(TextFormatting.RED)); + messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.low_health").withStyle(TextFormatting.RED)); } return new ActionResult<>(ActionResultType.PASS, stack); } } @Override - public boolean hasEffect(ItemStack stack) { + public boolean isFoil(ItemStack stack) { return getTargetPos(stack, null) != null; } @OnlyIn(Dist.CLIENT) @Override - public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, World world, List tooltip, ITooltipFlag flagIn) { TargetPos targetPos = getTargetPos(stack, world); if (targetPos == null) { - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info1").mergeStyle(TextFormatting.RED)); - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info2").mergeStyle(TextFormatting.WHITE)); - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info3").mergeStyle(TextFormatting.WHITE)); - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info4").mergeStyle(TextFormatting.WHITE)); - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info5").mergeStyle(TextFormatting.WHITE)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info1").withStyle(TextFormatting.RED)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info2").withStyle(TextFormatting.WHITE)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info3").withStyle(TextFormatting.WHITE)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info4").withStyle(TextFormatting.WHITE)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.un_set_info5").withStyle(TextFormatting.WHITE)); } else { - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.bound_to").mergeStyle(TextFormatting.GREEN)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.bound_to").withStyle(TextFormatting.GREEN)); tooltip.add(new StringTextComponent(TextFormatting.WHITE + "{" + targetPos.getReadableName(flagIn.isAdvanced()) + "}")); - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.uses_remain", stack.getMaxDamage() - stack.getDamage() + 1).mergeStyle(TextFormatting.BLUE)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.uses_remain", stack.getMaxDamage() - stack.getDamageValue() + 1).withStyle(TextFormatting.BLUE)); } } public TargetPos getTargetPos(ItemStack stack, @Nullable World world) { - CompoundNBT targetTag = stack.getChildTag("target"); + CompoundNBT targetTag = stack.getTagElement("target"); if (targetTag != null) { return new TargetPos(targetTag); } @@ -173,7 +173,7 @@ public TargetPos getTargetPos(ItemStack stack, @Nullable World world) { } public void setLocation(ItemStack stack, TargetPos pos) { - stack.setTagInfo("target", pos.writeToNBT()); + stack.addTagElement("target", pos.writeToNBT()); } @Override @@ -192,7 +192,7 @@ public Entity createEntity(World world, Entity location, ItemStack itemstack) { } @Override - public boolean getIsRepairable(ItemStack toRepair, ItemStack repair) { + public boolean isValidRepairItem(ItemStack toRepair, ItemStack repair) { return repair.getItem() == DEContent.ingot_draconium; } @@ -205,15 +205,15 @@ public float getXpRepairRatio(ItemStack stack) { public void addDisplayData(ItemStack stack, World world, @Nullable BlockPos pos, List displayData) { TargetPos location = getTargetPos(stack, world); if (location != null) { - displayData.add(stack.getDisplayName().getString()); + displayData.add(stack.getHoverName().getString()); displayData.add("{" + location.getReadableName(false) + ")"); } } public static void onAnvilUpdate(AnvilUpdateEvent event) { - if (event.getLeft().getItem() == DEContent.dislocator && event.getRight().getItem() == DEContent.ingot_draconium && event.getLeft().getDamage() > 0) { + if (event.getLeft().getItem() == DEContent.dislocator && event.getRight().getItem() == DEContent.ingot_draconium && event.getLeft().getDamageValue() > 0) { event.setOutput(event.getLeft().copy()); - event.getOutput().setDamage(0); + event.getOutput().setDamageValue(0); event.setCost(1); event.setMaterialCost(1); } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorAdvanced.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorAdvanced.java index a1883ee0e..ca4fbe03c 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorAdvanced.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorAdvanced.java @@ -56,19 +56,19 @@ public DislocatorAdvanced(Properties properties) { @Override public boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity entity) { - if (player.world.isRemote) { + if (player.level.isClientSide) { return true; } - TargetPos location = getTargetPos(stack, player.world); + TargetPos location = getTargetPos(stack, player.level); int fuel = getFuel(stack); - if (!player.abilities.isCreativeMode && fuel <= 0) { - messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.no_fuel").mergeStyle(TextFormatting.RED)); + if (!player.abilities.instabuild && fuel <= 0) { + messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.no_fuel").withStyle(TextFormatting.RED)); return true; } if (entity instanceof PlayerEntity) { - if (entity.isSneaking()) { + if (entity.isShiftKeyDown()) { if (useFuel(stack, player)) { dislocateEntity(stack, player, entity, location); } @@ -78,29 +78,29 @@ public boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity en return true; } - if (!entity.isNonBoss() || !(entity instanceof LivingEntity)) { + if (!entity.canChangeDimensions() || !(entity instanceof LivingEntity)) { return true; } if (useFuel(stack, player)) { dislocateEntity(stack, player, entity, location); - messageUser(player, new StringTextComponent(I18n.format("dislocate.draconicevolution.entity_sent_to") + " " + location.getReadableName(false)).mergeStyle(TextFormatting.GREEN)); + messageUser(player, new StringTextComponent(I18n.get("dislocate.draconicevolution.entity_sent_to") + " " + location.getReadableName(false)).withStyle(TextFormatting.GREEN)); } return true; } @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { - ItemStack stack = player.getHeldItem(hand); - TargetPos location = getTargetPos(stack, player.world); + public ActionResult use(World world, PlayerEntity player, Hand hand) { + ItemStack stack = player.getItemInHand(hand); + TargetPos location = getTargetPos(stack, player.level); boolean blink = getBlinkMode(stack); - if (player.isSneaking() || (location == null && !blink)) { - if (world.isRemote) { + if (player.isShiftKeyDown() || (location == null && !blink)) { + if (world.isClientSide) { openGui(stack, player); } - } else if (!world.isRemote) { + } else if (!world.isClientSide) { if (blink) { handleBlink((ServerPlayerEntity) player, stack, false); }else { @@ -112,27 +112,27 @@ public ActionResult onItemRightClick(World world, PlayerEntity player @OnlyIn(Dist.CLIENT) private void openGui(ItemStack stack, PlayerEntity player) { - Minecraft.getInstance().displayGuiScreen(new GuiDislocator(stack.getDisplayName(), player)); + Minecraft.getInstance().setScreen(new GuiDislocator(stack.getHoverName(), player)); } private void handleTeleport(PlayerEntity player, ItemStack stack, TargetPos targetPos, boolean showFuel) { int fuel = getFuel(stack); - if (!player.abilities.isCreativeMode && fuel <= 0) { - messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.no_fuel").mergeStyle(TextFormatting.RED)); + if (!player.abilities.instabuild && fuel <= 0) { + messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.no_fuel").withStyle(TextFormatting.RED)); } else if (useFuel(stack, player)) { dislocateEntity(stack, player, player, targetPos); if (showFuel){ - player.sendStatusMessage(new TranslationTextComponent("dislocate.draconicevolution.teleport_fuel").appendString(" " + getFuel(stack)).mergeStyle(TextFormatting.WHITE), true); + player.displayClientMessage(new TranslationTextComponent("dislocate.draconicevolution.teleport_fuel").append(" " + getFuel(stack)).withStyle(TextFormatting.WHITE), true); } } } private void handleBlink(ServerPlayerEntity player, ItemStack stack, boolean showFuel) { - if (!player.abilities.isCreativeMode) { + if (!player.abilities.instabuild) { int blinkFuel = stack.getOrCreateTag().getByte("blink_fuel"); if (blinkFuel <= 0) { if (!useFuel(stack, player)) { - messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.no_fuel").mergeStyle(TextFormatting.RED)); + messageUser(player, new TranslationTextComponent("dislocate.draconicevolution.no_fuel").withStyle(TextFormatting.RED)); return; }else { blinkFuel = DEConfig.dislocatorBlinksPerPearl; @@ -141,43 +141,43 @@ private void handleBlink(ServerPlayerEntity player, ItemStack stack, boolean sho blinkFuel--; stack.getOrCreateTag().putByte("blink_fuel", (byte) blinkFuel); if (showFuel){ - player.sendStatusMessage(new TranslationTextComponent("dislocate.draconicevolution.teleport_fuel").appendString(" " + getFuel(stack)).mergeStyle(TextFormatting.WHITE), true); + player.displayClientMessage(new TranslationTextComponent("dislocate.draconicevolution.teleport_fuel").append(" " + getFuel(stack)).withStyle(TextFormatting.WHITE), true); } } Vector3d playerVec = player.getEyePosition(1); double range = DEConfig.dislocatorBlinkRange; - Vector3d endVec = playerVec.add(player.getLookVec().mul(range, range, range)); + Vector3d endVec = playerVec.add(player.getLookAngle().multiply(range, range, range)); RayTraceContext context = new RayTraceContext(playerVec, endVec, RayTraceContext.BlockMode.COLLIDER, RayTraceContext.FluidMode.NONE, player); - BlockRayTraceResult result = player.world.rayTraceBlocks(context); + BlockRayTraceResult result = player.level.clip(context); - player.world.playSound(null, playerVec.x, playerVec.y, playerVec.z, DESounds.blink, SoundCategory.PLAYERS, 1F, 1F); + player.level.playSound(null, playerVec.x, playerVec.y, playerVec.z, DESounds.blink, SoundCategory.PLAYERS, 1F, 1F); DraconicNetwork.sendBlinkEffect(player, (float) (playerVec.distanceTo(endVec) / range)); if (result.getType() == RayTraceResult.Type.MISS) { - if (player.isElytraFlying()) { //Maintain momentum if elytra flying - player.connection.setPlayerLocation(endVec.x, endVec.y, endVec.z, player.rotationYaw, player.rotationPitch, Sets.newHashSet(Flags.X, Flags.Y, Flags.Z)); - player.setRotationYawHead(player.rotationYaw); + if (player.isFallFlying()) { //Maintain momentum if elytra flying + player.connection.teleport(endVec.x, endVec.y, endVec.z, player.yRot, player.xRot, Sets.newHashSet(Flags.X, Flags.Y, Flags.Z)); + player.setYHeadRot(player.yRot); } else { - TeleportUtils.teleportEntity(player, player.world.getDimensionKey(), endVec.x, endVec.y, endVec.z); + TeleportUtils.teleportEntity(player, player.level.dimension(), endVec.x, endVec.y, endVec.z); } } else { - BlockPos pos = result.getPos().offset(result.getFace()); + BlockPos pos = result.getBlockPos().relative(result.getDirection()); Vec3D vec = new Vec3D(pos).add(0.5, 0, 0.5); - switch (result.getFace()) { + switch (result.getDirection()) { case DOWN: case UP: break; default: - if (player.world.getBlockState(pos.down()).allowsMovement(player.world, pos.down(), PathType.AIR)) { + if (player.level.getBlockState(pos.below()).isPathfindable(player.level, pos.below(), PathType.AIR)) { vec.y -= 1; } } - TeleportUtils.teleportEntity(player, player.world.getDimensionKey(), vec.x, vec.y, vec.z); + TeleportUtils.teleportEntity(player, player.level.dimension(), vec.x, vec.y, vec.z); } - player.world.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(), DESounds.blink, SoundCategory.PLAYERS, 1F, 1F); + player.level.playSound(null, player.getX(), player.getY(), player.getZ(), DESounds.blink, SoundCategory.PLAYERS, 1F, 1F); } @Override @@ -187,15 +187,15 @@ public DislocatorTarget getTargetPos(ItemStack stack, @Nullable World world) { @OnlyIn(Dist.CLIENT) @Override - public void addInformation(ItemStack stack, World world, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, World world, List tooltip, ITooltipFlag flagIn) { DislocatorTarget selected = getTargetPos(stack, world); int fuel = getFuel(stack); if (selected != null) { - tooltip.add(new StringTextComponent(selected.getName()).mergeStyle(TextFormatting.GOLD)); + tooltip.add(new StringTextComponent(selected.getName()).withStyle(TextFormatting.GOLD)); } - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.fuel").appendString(" " + fuel).mergeStyle(TextFormatting.WHITE)); - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.to_open_gui").mergeStyle(TextFormatting.DARK_PURPLE, TextFormatting.ITALIC)); - tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.scroll_change_select").mergeStyle(TextFormatting.DARK_PURPLE, TextFormatting.ITALIC)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.fuel").append(" " + fuel).withStyle(TextFormatting.WHITE)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.to_open_gui").withStyle(TextFormatting.DARK_PURPLE, TextFormatting.ITALIC)); + tooltip.add(new TranslationTextComponent("dislocate.draconicevolution.scroll_change_select").withStyle(TextFormatting.DARK_PURPLE, TextFormatting.ITALIC)); } @Override @@ -204,11 +204,11 @@ public void addDisplayData(ItemStack stack, World world, @Nullable BlockPos pos, if (location != null) { displayData.add(location.getName()); } - displayData.add(I18n.format("dislocate.draconicevolution.fuel") + " " + getFuel(stack)); + displayData.add(I18n.get("dislocate.draconicevolution.fuel") + " " + getFuel(stack)); } @Override - public boolean getIsRepairable(ItemStack toRepair, ItemStack repair) { + public boolean isValidRepairItem(ItemStack toRepair, ItemStack repair) { return false; } @@ -221,7 +221,7 @@ public void setFuel(ItemStack stack, int value) { } public boolean useFuel(ItemStack stack, PlayerEntity player) { - if (player.abilities.isCreativeMode) { + if (player.abilities.instabuild) { return true; } int fuel = getFuel(stack); @@ -334,9 +334,9 @@ public void handleClientAction(ServerPlayerEntity player, ItemStack stack, MCDat if (selected != null) { DislocatorTarget up = DataUtils.safeGet(list, Math.floorMod(selectIndex - 1, list.size())); DislocatorTarget down = DataUtils.safeGet(list, Math.floorMod(selectIndex + 1, list.size())); - if (up != null) ChatHelper.sendIndexed(player, new StringTextComponent(up.getName()).mergeStyle(TextFormatting.GRAY), 391); + if (up != null) ChatHelper.sendIndexed(player, new StringTextComponent(up.getName()).withStyle(TextFormatting.GRAY), 391); ChatHelper.sendIndexed(player, new StringTextComponent(TextFormatting.GREEN + ">" + TextFormatting.GOLD + selected.getName() + TextFormatting.GREEN + "<"), 392); - if (down != null) ChatHelper.sendIndexed(player, new StringTextComponent(down.getName()).mergeStyle(TextFormatting.GRAY), 393); + if (down != null) ChatHelper.sendIndexed(player, new StringTextComponent(down.getName()).withStyle(TextFormatting.GRAY), 393); } break; default: @@ -359,8 +359,8 @@ public void addFuel(ItemStack dislocator, PlayerEntity player, boolean fullStack int max = 1024 - getFuel(dislocator); //TODO config for max fuel int wanted = allStacks ? max : Math.min(max, fullStack ? 16 : 1); int added = 0; - for (int i = 0; i < player.inventory.getSizeInventory() && wanted > 0; i++) { - ItemStack stack = player.inventory.getStackInSlot(i); + for (int i = 0; i < player.inventory.getContainerSize() && wanted > 0; i++) { + ItemStack stack = player.inventory.getItem(i); if (Tags.Items.ENDER_PEARLS.contains(stack.getItem())) { while (!stack.isEmpty() && wanted > 0) { wanted--; @@ -383,8 +383,8 @@ public static ItemStack findDislocator(PlayerEntity player) { return stack; } - for (int i = 0; i < player.inventory.getSizeInventory() - player.inventory.offHandInventory.size(); i++) { - stack = player.inventory.getStackInSlot(i); + for (int i = 0; i < player.inventory.getContainerSize() - player.inventory.offhand.size(); i++) { + stack = player.inventory.getItem(i); if (stack.getItem() == DEContent.dislocator_advanced) { return stack; } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorBound.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorBound.java index 6bdadcbc2..beddeb421 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorBound.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/DislocatorBound.java @@ -65,8 +65,8 @@ public DislocatorBound(Properties properties) { @Override public void inventoryTick(ItemStack stack, World world, Entity entity, int itemSlot, boolean isSelected) { - if (entity.ticksExisted % 20 == 0) { - if (!world.isRemote && isValid(stack) && !isPlayer(stack) && entity instanceof PlayerEntity) { + if (entity.tickCount % 20 == 0) { + if (!world.isClientSide && isValid(stack) && !isPlayer(stack) && entity instanceof PlayerEntity) { DislocatorLinkHandler.updateLink(world, stack, (PlayerEntity) entity); } } @@ -76,8 +76,8 @@ public void inventoryTick(ItemStack stack, World world, Entity entity, int itemS @Override public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) { if (entity.getAge() % 20 == 0) { - if (!entity.world.isRemote && isValid(stack) && !isPlayer(stack)) { - DislocatorLinkHandler.updateLink(entity.world, stack, entity.getPosition(), entity.world.getDimensionKey()); + if (!entity.level.isClientSide && isValid(stack) && !isPlayer(stack)) { + DislocatorLinkHandler.updateLink(entity.level, stack, entity.blockPosition(), entity.level.dimension()); } } return false; @@ -87,33 +87,33 @@ public boolean onEntityItemUpdate(ItemStack stack, ItemEntity entity) { @Override public boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity entity) { - if (player.world.isRemote) { + if (player.level.isClientSide) { return true; } - TargetPos location = getTargetPos(stack, player.world); + TargetPos location = getTargetPos(stack, player.level); if (location == null) { if (isPlayer(stack)) { - player.sendMessage(new TranslationTextComponent("info.de.bound_dislocator.cant_find_player").mergeStyle(TextFormatting.RED), Util.DUMMY_UUID); + player.sendMessage(new TranslationTextComponent("info.de.bound_dislocator.cant_find_player").withStyle(TextFormatting.RED), Util.NIL_UUID); } else { - player.sendMessage(new TranslationTextComponent("info.de.bound_dislocator.cant_find_target").mergeStyle(TextFormatting.RED), Util.DUMMY_UUID); + player.sendMessage(new TranslationTextComponent("info.de.bound_dislocator.cant_find_target").withStyle(TextFormatting.RED), Util.NIL_UUID); } return true; } - if (!entity.isNonBoss() || !(entity instanceof LivingEntity)) { + if (!entity.canChangeDimensions() || !(entity instanceof LivingEntity)) { return true; } - BCoreNetwork.sendSound(player.world, player.getPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, player.world.rand.nextFloat() * 0.1F + 0.9F, false); + BCoreNetwork.sendSound(player.level, player.blockPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, player.level.random.nextFloat() * 0.1F + 0.9F, false); - location.setPitch(player.rotationPitch); - location.setYaw(player.rotationYaw); - notifyArriving(stack, player.world, entity); + location.setPitch(player.xRot); + location.setYaw(player.yRot); + notifyArriving(stack, player.level, entity); location.teleport(entity); - BCoreNetwork.sendSound(player.world, player.getPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, player.world.rand.nextFloat() * 0.1F + 0.9F, false); + BCoreNetwork.sendSound(player.level, player.blockPosition(), DESounds.portal, SoundCategory.PLAYERS, 0.1F, player.level.random.nextFloat() * 0.1F + 0.9F, false); // player.sendMessage(new StringTextComponent(new TranslationTextComponent("msg.teleporterSentMob.txt").getString() + " x:" + (int) location.getXCoord() + " y:" + (int) location.getYCoord() + " z:" + (int) location.getZCoord() + " Dimension: " + location.getDimensionName()), Util.DUMMY_UUID); @@ -121,9 +121,9 @@ public boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity en } @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { - ItemStack stack = player.getHeldItem(hand); - if (player.world.isRemote) { + public ActionResult use(World world, PlayerEntity player, Hand hand) { + ItemStack stack = player.getItemInHand(hand); + if (player.level.isClientSide) { return new ActionResult<>(ActionResultType.PASS, stack); } // if (stack.getMetadata() == 1 && !world.isRemote) { @@ -211,9 +211,9 @@ public TargetPos getTargetPos(ItemStack stack, @Nullable World world) { if (isPlayer(stack)) { MinecraftServer server = world.getServer(); if (server == null) return null; - PlayerEntity player = server.getPlayerList().getPlayerByUUID(UUID.fromString(getPlayerID(stack))); + PlayerEntity player = server.getPlayerList().getPlayer(UUID.fromString(getPlayerID(stack))); if (player == null) return null; - return new TargetPos(player.getPosX(), player.getPosY() + 0.2, player.getPosZ(), player.world.getDimensionKey()); + return new TargetPos(player.getX(), player.getY() + 0.2, player.getZ(), player.level.dimension()); } Vec3D pos = DislocatorLinkHandler.getLinkPos(world, stack); if (data != null && pos != null) { @@ -230,7 +230,7 @@ public void notifyArriving(ItemStack stack, World world, Entity entity) { if (world.getServer() == null /*|| !DimensionManager.isDimensionRegistered(data.dimension)*/) { return; } - TileEntity tile = world.getServer().getWorld(data.dimension).getTileEntity(data.pos); + TileEntity tile = world.getServer().getLevel(data.dimension).getBlockEntity(data.pos); if (tile instanceof ITeleportEndPoint) { ((ITeleportEndPoint) tile).entityArriving(entity); } @@ -244,7 +244,7 @@ public void notifyArriving(ItemStack stack, World world, Entity entity) { @OnlyIn(Dist.CLIENT) @Override - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { // if (stack.getMetadata() == 0) { // if (!isValid(stack)) { // tooltip.add(new StringTextComponent("Error this item is not valid! (Item is missing required NBT data)").setStyle(new Style().setColor(TextFormatting.RED))); diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/DraconiumCapacitor.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/DraconiumCapacitor.java index c82f3fd52..6eede6f34 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/DraconiumCapacitor.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/DraconiumCapacitor.java @@ -60,8 +60,8 @@ public TechLevel getTechLevel() { } @Override - public void fillItemGroup(ItemGroup group, NonNullList items) { - if (this.isInGroup(group)) { + public void fillItemCategory(ItemGroup group, NonNullList items) { + if (this.allowdedIn(group)) { items.add(new ItemStack(this)); if (this != DEContent.capacitor_creative) { ItemStack stack = new ItemStack(this); @@ -141,26 +141,26 @@ public void handleTick(ItemStack stack, LivingEntity entity, @Nullable Equipment if (entity instanceof PlayerEntity) { PlayerEntity player = (PlayerEntity) entity; if (hot_bar && main) { - stacks.addAll(player.inventory.mainInventory); + stacks.addAll(player.inventory.items); } else if (hot_bar) { - stacks.addAll(player.inventory.mainInventory.subList(0, 9)); + stacks.addAll(player.inventory.items.subList(0, 9)); } else if (main) { - stacks.addAll(player.inventory.mainInventory.subList(9, 36)); + stacks.addAll(player.inventory.items.subList(9, 36)); } if (held) { if (!hot_bar) { - stacks.add(entity.getHeldItemMainhand()); + stacks.add(entity.getMainHandItem()); } - stacks.add(entity.getHeldItemOffhand()); + stacks.add(entity.getOffhandItem()); } } else { if (held) { - entity.getHeldEquipment().forEach(stacks::add); + entity.getHandSlots().forEach(stacks::add); } } if (armor) { - entity.getArmorInventoryList().forEach(stacks::add); + entity.getArmorSlots().forEach(stacks::add); } }); @@ -177,7 +177,7 @@ public void updateEnergy(ItemStack capacitor, LivingEntity player, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { addModularItemInformation(stack, worldIn, tooltip, flagIn); } @@ -203,7 +203,7 @@ public void addInformation(ItemStack stack, @Nullable World worldIn, List items; - if (entity.ticksExisted % 10 == 0) { - items = world.getEntitiesWithinAABB(ItemEntity.class, new AxisAlignedBB(entity.getPosX(), entity.getPosY(), entity.getPosZ(), entity.getPosX(), entity.getPosY(), entity.getPosZ()).grow(range, range, range)); + if (entity.tickCount % 10 == 0) { + items = world.getEntitiesOfClass(ItemEntity.class, new AxisAlignedBB(entity.getX(), entity.getY(), entity.getZ(), entity.getX(), entity.getY(), entity.getZ()).inflate(range, range, range)); } else { - items = world.getEntitiesWithinAABB(ItemEntity.class, new AxisAlignedBB(entity.getPosX(), entity.getPosY(), entity.getPosZ(), entity.getPosX(), entity.getPosY(), entity.getPosZ()).grow(5, 5, 5)); + items = world.getEntitiesOfClass(ItemEntity.class, new AxisAlignedBB(entity.getX(), entity.getY(), entity.getZ(), entity.getX(), entity.getY(), entity.getZ()).inflate(5, 5, 5)); } boolean flag = false; @@ -76,18 +76,18 @@ private void updateMagnet(ItemStack stack, Entity entity) { continue; } - if (itemEntity.getThrowerId() != null && itemEntity.getThrowerId().equals(entity.getUniqueID()) && itemEntity.pickupDelay > 0) { + if (itemEntity.getThrower() != null && itemEntity.getThrower().equals(entity.getUUID()) && itemEntity.pickupDelay > 0) { continue; } - PlayerEntity closest = world.getClosestPlayer(itemEntity, 4); + PlayerEntity closest = world.getNearestPlayer(itemEntity, 4); if (closest != null && closest != entity) { continue; } - BlockPos pos = itemEntity.getPosition(); + BlockPos pos = itemEntity.blockPosition(); boolean blocked = false; - for (BlockPos checkPos : BlockPos.getAllInBoxMutable(pos.add(-5, -5, -5), pos.add(5, 5, 5))) { + for (BlockPos checkPos : BlockPos.betweenClosed(pos.offset(-5, -5, -5), pos.offset(5, 5, 5))) { if (world.getBlockState(checkPos).getBlock() == DEContent.dislocation_inhibitor) { blocked = true; break; @@ -98,17 +98,17 @@ private void updateMagnet(ItemStack stack, Entity entity) { continue; } - if (entity.getDistanceSq(itemEntity) > 2 * 2) { + if (entity.distanceToSqr(itemEntity) > 2 * 2) { flag = true; } - if (!world.isRemote) { + if (!world.isClientSide) { if (itemEntity.pickupDelay > 0) { itemEntity.pickupDelay = 0; } - itemEntity.setMotion(0, 0, 0); + itemEntity.setDeltaMovement(0, 0, 0); itemEntity.fallDistance = 0; - itemEntity.setPosition(entity.getPosX() - 0.2 + (world.rand.nextDouble() * 0.4), entity.getPosY() - 0.6, entity.getPosZ() - 0.2 + (world.rand.nextDouble() * 0.4)); + itemEntity.setPos(entity.getX() - 0.2 + (world.random.nextDouble() * 0.4), entity.getY() - 0.6, entity.getZ() - 0.2 + (world.random.nextDouble() * 0.4)); } } @@ -128,24 +128,24 @@ private void updateMagnet(ItemStack stack, Entity entity) { // } if (flag && DEConfig.itemDislocatorSound) { - world.playSound(null, entity.getPosX(), entity.getPosY(), entity.getPosZ(), SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.PLAYERS, 0.1F, 1F + (random.nextFloat() * 0.1F)); + world.playSound(null, entity.getX(), entity.getY(), entity.getZ(), SoundEvents.EXPERIENCE_ORB_PICKUP, SoundCategory.PLAYERS, 0.1F, 1F + (random.nextFloat() * 0.1F)); } - List xp = world.getEntitiesWithinAABB(ExperienceOrbEntity.class, new AxisAlignedBB(entity.getPosX(), entity.getPosY(), entity.getPosZ(), entity.getPosX(), entity.getPosY(), entity.getPosZ()).grow(4, 4, 4)); + List xp = world.getEntitiesOfClass(ExperienceOrbEntity.class, new AxisAlignedBB(entity.getX(), entity.getY(), entity.getZ(), entity.getX(), entity.getY(), entity.getZ()).inflate(4, 4, 4)); PlayerEntity player = (PlayerEntity) entity; for (ExperienceOrbEntity orb : xp) { - if (!world.isRemote && orb.isAlive()) { - if (orb.delayBeforeCanPickup == 0) { + if (!world.isClientSide && orb.isAlive()) { + if (orb.throwTime == 0) { if (MinecraftForge.EVENT_BUS.post(new PlayerXpEvent.PickupXp(player, orb))) { continue; } if (DEConfig.itemDislocatorSound) { - world.playSound(null, entity.getPosX(), entity.getPosY(), entity.getPosZ(), SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.PLAYERS, 0.1F, 0.5F * ((world.rand.nextFloat() - world.rand.nextFloat()) * 0.7F + 1.8F)); + world.playSound(null, entity.getX(), entity.getY(), entity.getZ(), SoundEvents.EXPERIENCE_ORB_PICKUP, SoundCategory.PLAYERS, 0.1F, 0.5F * ((world.random.nextFloat() - world.random.nextFloat()) * 0.7F + 1.8F)); } - player.onItemPickup(orb, 1); - player.giveExperiencePoints(orb.xpValue); + player.take(orb, 1); + player.giveExperiencePoints(orb.value); orb.remove(); } } @@ -154,18 +154,18 @@ private void updateMagnet(ItemStack stack, Entity entity) { } @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { - ItemStack stack = player.getHeldItem(hand); - if (player.isSneaking()) { + public ActionResult use(World world, PlayerEntity player, Hand hand) { + ItemStack stack = player.getItemInHand(hand); + if (player.isShiftKeyDown()) { toggleEnabled(stack, player); } - return super.onItemRightClick(world, player, hand); + return super.use(world, player, hand); } @OnlyIn(Dist.CLIENT) @SuppressWarnings("unchecked") @Override - public void addInformation(ItemStack stack, World p_77624_2_, List list, ITooltipFlag p_77624_4_) { + public void appendHoverText(ItemStack stack, World p_77624_2_, List list, ITooltipFlag p_77624_4_) { // list.add(StatCollector.translateToLocal("info.de.shiftRightClickToActivate.txt")); // int range = stack.getItemDamage() == 0 ? 8 : 32; // list.add(InfoHelper.HITC() + range + InfoHelper.ITC() + " " + StatCollector.translateToLocal("info.de.blockRange.txt")); @@ -177,7 +177,7 @@ public static boolean isEnabled(ItemStack stack) { public static void toggleEnabled(ItemStack stack, PlayerEntity player) { ItemNBTHelper.setBoolean(stack, "IsActive", !isEnabled(stack)); - player.world.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(), SoundEvents.ENTITY_EXPERIENCE_ORB_PICKUP, SoundCategory.PLAYERS, 0.1F, isEnabled(stack) ? 1F : 0.5F); + player.level.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.EXPERIENCE_ORB_PICKUP, SoundCategory.PLAYERS, 0.1F, isEnabled(stack) ? 1F : 0.5F); } // @Optional.Method(modid = "baubles") diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/TreeCollector.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/TreeCollector.java index e224e9add..b1a8c3f50 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/TreeCollector.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/TreeCollector.java @@ -58,7 +58,7 @@ public void killCollector() { public void clearCollected() { collectionComplete = false; isKilled = false; - inventory.clear(); + inventory.clearContent(); collected = 0; } @@ -92,7 +92,7 @@ public CollectTreeProcess(TreeCollector selector, BlockPos pos, InventoryDynamic this.inventory = inventory; this.processedBlocks = processedBlocks; selector.activeProcesses.add(this); - randOffset = 0.5D + (selector.world.rand.nextDouble() * 0.5D); + randOffset = 0.5D + (selector.world.random.nextDouble() * 0.5D); } @Override @@ -111,7 +111,7 @@ public void updateProcess() { return; } - if ((collector.axe.getEnergyStored(collector.stack) - collector.energyUsed) < collector.axe.energyPerOperation && !collector.player.abilities.isCreativeMode) { + if ((collector.axe.getEnergyStored(collector.stack) - collector.energyUsed) < collector.axe.energyPerOperation && !collector.player.abilities.instabuild) { isDead = true; return; } @@ -127,7 +127,7 @@ public void updateProcess() { collector.collectionCallback.call(pos); } - int xp = ForgeHooks.onBlockBreakEvent(world, ((ServerPlayerEntity) collector.player).interactionManager.getGameType(), (ServerPlayerEntity) collector.player, pos); + int xp = ForgeHooks.onBlockBreakEvent(world, ((ServerPlayerEntity) collector.player).gameMode.getGameModeForPlayer(), (ServerPlayerEntity) collector.player, pos); if (xp == -1) { isDead = true; return; @@ -137,12 +137,12 @@ public void updateProcess() { collector.energyUsed += collector.axe.energyPerOperation; - world.playEvent(2001, pos, Block.getStateId(state)); + world.levelEvent(2001, pos, Block.getId(state)); BlockToStackHelper.breakAndCollect(world, pos, inventory, xp); collector.collected++; int rad = collector.connectionRadius; - Iterable blocks = BlockPos.getAllInBoxMutable(pos.add(-rad, collector.breakDown ? -rad : 0, -rad), pos.add(rad, rad, rad)); + Iterable blocks = BlockPos.betweenClosed(pos.offset(-rad, collector.breakDown ? -rad : 0, -rad), pos.offset(rad, rad, rad)); for (BlockPos newPos : blocks) { if (processedBlocks.contains(newPos)) { diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/DraconicStaffOfPower.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/DraconicStaffOfPower.java index c72d10a2f..83c8c9b18 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/DraconicStaffOfPower.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/DraconicStaffOfPower.java @@ -92,12 +92,12 @@ public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantmen if (getDisabledEnchants(stack).containsKey(enchantment)) { return false; } - return super.canApplyAtEnchantingTable(stack, enchantment) || enchantment.type == EnchantmentType.WEAPON; + return super.canApplyAtEnchantingTable(stack, enchantment) || enchantment.category == EnchantmentType.WEAPON; } @Override - public ActionResult onItemRightClick(World worldIn, PlayerEntity playerIn, Hand handIn) { - return super.onItemRightClick(worldIn, playerIn, handIn); + public ActionResult use(World worldIn, PlayerEntity playerIn, Hand handIn) { + return super.use(worldIn, playerIn, handIn); } @Override diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/MiningToolBase.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/MiningToolBase.java index bffa20751..93ffe0bbc 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/MiningToolBase.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/MiningToolBase.java @@ -59,8 +59,8 @@ public abstract class MiningToolBase extends ToolBase { protected static final Set SHOVEL_OVERRIDES = Sets.newHashSet(Blocks.CLAY, Blocks.DIRT, Blocks.FARMLAND, Blocks.GRASS, Blocks.GRAVEL, Blocks.MYCELIUM, Blocks.SAND, Blocks.SNOW, Blocks.SOUL_SAND, Blocks.GRASS_PATH); - protected static final Set PICKAXE_OVERRIDES = Sets.newHashSet(Blocks.ACTIVATOR_RAIL, Blocks.COAL_ORE, Blocks.COBBLESTONE, Blocks.DETECTOR_RAIL, Blocks.DIAMOND_BLOCK, Blocks.DIAMOND_ORE, Blocks.GOLD_BLOCK, Blocks.GOLD_ORE, Blocks.ICE, Blocks.IRON_BLOCK, Blocks.IRON_ORE, Blocks.LAPIS_BLOCK, Blocks.LAPIS_ORE, Blocks.MOSSY_COBBLESTONE, Blocks.NETHERRACK, Blocks.PACKED_ICE, Blocks.RAIL, Blocks.REDSTONE_ORE, Blocks.SANDSTONE, Blocks.RED_SANDSTONE, Blocks.STONE, Blocks.STONE_SLAB, Blocks.STONE_BUTTON, Blocks.STONE_PRESSURE_PLATE, Blocks.OBSIDIAN, Material.ROCK, Material.IRON, Material.ANVIL, Material.GLASS); - protected static final Set AXE_OVERRIDES = Sets.newHashSet(Blocks.BOOKSHELF, Blocks.CHEST, Blocks.PUMPKIN, Blocks.LADDER, Material.PLANTS, Material.LEAVES, Material.WEB, Material.WOOD, Material.CAKE, Material.PISTON); + protected static final Set PICKAXE_OVERRIDES = Sets.newHashSet(Blocks.ACTIVATOR_RAIL, Blocks.COAL_ORE, Blocks.COBBLESTONE, Blocks.DETECTOR_RAIL, Blocks.DIAMOND_BLOCK, Blocks.DIAMOND_ORE, Blocks.GOLD_BLOCK, Blocks.GOLD_ORE, Blocks.ICE, Blocks.IRON_BLOCK, Blocks.IRON_ORE, Blocks.LAPIS_BLOCK, Blocks.LAPIS_ORE, Blocks.MOSSY_COBBLESTONE, Blocks.NETHERRACK, Blocks.PACKED_ICE, Blocks.RAIL, Blocks.REDSTONE_ORE, Blocks.SANDSTONE, Blocks.RED_SANDSTONE, Blocks.STONE, Blocks.STONE_SLAB, Blocks.STONE_BUTTON, Blocks.STONE_PRESSURE_PLATE, Blocks.OBSIDIAN, Material.STONE, Material.METAL, Material.HEAVY_METAL, Material.GLASS); + protected static final Set AXE_OVERRIDES = Sets.newHashSet(Blocks.BOOKSHELF, Blocks.CHEST, Blocks.PUMPKIN, Blocks.LADDER, Material.PLANT, Material.LEAVES, Material.WEB, Material.WOOD, Material.CAKE, Material.PISTON); // private static final Set EFFECTIVE_ON = Sets.newHashSet(Blocks.OAK_PLANKS, Blocks.SPRUCE_PLANKS, Blocks.BIRCH_PLANKS, Blocks.JUNGLE_PLANKS, Blocks.ACACIA_PLANKS, Blocks.DARK_OAK_PLANKS, Blocks.BOOKSHELF, Blocks.OAK_WOOD, Blocks.SPRUCE_WOOD, Blocks.BIRCH_WOOD, Blocks.JUNGLE_WOOD, Blocks.ACACIA_WOOD, Blocks.DARK_OAK_WOOD, Blocks.OAK_LOG, Blocks.SPRUCE_LOG, Blocks.BIRCH_LOG, Blocks.JUNGLE_LOG, Blocks.ACACIA_LOG, Blocks.DARK_OAK_LOG, Blocks.CHEST, Blocks.PUMPKIN, Blocks.CARVED_PUMPKIN, Blocks.JACK_O_LANTERN, Blocks.MELON, Blocks.LADDER, Blocks.SCAFFOLDING, Blocks.OAK_BUTTON, Blocks.SPRUCE_BUTTON, Blocks.BIRCH_BUTTON, Blocks.JUNGLE_BUTTON, Blocks.DARK_OAK_BUTTON, Blocks.ACACIA_BUTTON, Blocks.OAK_PRESSURE_PLATE, Blocks.SPRUCE_PRESSURE_PLATE, Blocks.BIRCH_PRESSURE_PLATE, Blocks.JUNGLE_PRESSURE_PLATE, Blocks.DARK_OAK_PRESSURE_PLATE, Blocks.ACACIA_PRESSURE_PLATE); // protected static final Map BLOCK_STRIPPING_MAP = (new ImmutableMap.Builder()).put(Blocks.OAK_WOOD, Blocks.STRIPPED_OAK_WOOD).put(Blocks.OAK_LOG, Blocks.STRIPPED_OAK_LOG).put(Blocks.DARK_OAK_WOOD, Blocks.STRIPPED_DARK_OAK_WOOD).put(Blocks.DARK_OAK_LOG, Blocks.STRIPPED_DARK_OAK_LOG).put(Blocks.ACACIA_WOOD, Blocks.STRIPPED_ACACIA_WOOD).put(Blocks.ACACIA_LOG, Blocks.STRIPPED_ACACIA_LOG).put(Blocks.BIRCH_WOOD, Blocks.STRIPPED_BIRCH_WOOD).put(Blocks.BIRCH_LOG, Blocks.STRIPPED_BIRCH_LOG).put(Blocks.JUNGLE_WOOD, Blocks.STRIPPED_JUNGLE_WOOD).put(Blocks.JUNGLE_LOG, Blocks.STRIPPED_JUNGLE_LOG).put(Blocks.SPRUCE_WOOD, Blocks.STRIPPED_SPRUCE_WOOD).put(Blocks.SPRUCE_LOG, Blocks.STRIPPED_SPRUCE_LOG).build(); @@ -86,7 +86,7 @@ public int getSlotLimit(int slot) { @Override public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) { for (ItemStack check : stacks) { - if (stack.isItemEqual(check) && ItemStack.areItemStackTagsEqual(stack, check)) { + if (stack.sameItem(check) && ItemStack.tagMatches(stack, check)) { return stack; } } @@ -167,9 +167,9 @@ public boolean onBlockStartBreak(ItemStack stack, BlockPos pos, PlayerEntity pla //Note: Called for every AOE block destroyed @Override - public boolean onBlockDestroyed(ItemStack stack, World worldIn, BlockState state, BlockPos pos, LivingEntity entityLiving) { + public boolean mineBlock(ItemStack stack, World worldIn, BlockState state, BlockPos pos, LivingEntity entityLiving) { modifyEnergy(stack, -energyPerOperation); - return super.onBlockDestroyed(stack, worldIn, state, pos, entityLiving); + return super.mineBlock(stack, worldIn, state, pos, entityLiving); } @Override @@ -192,7 +192,7 @@ public boolean canHarvestBlock(ItemStack stack, BlockState state) { @Override public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantment) { - return super.canApplyAtEnchantingTable(stack, enchantment) && (enchantment.type == EnchantmentType.DIGGER/* || enchantment.type == EnchantmentType.ALL*/); + return super.canApplyAtEnchantingTable(stack, enchantment) && (enchantment.category == EnchantmentType.DIGGER/* || enchantment.type == EnchantmentType.ALL*/); } //endregion @@ -202,7 +202,7 @@ public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantmen //region New Code public boolean breakAOEBlocks(ItemStack stack, BlockPos pos, int breakRadius, int breakDepth, PlayerEntity player) { - BlockState blockState = player.world.getBlockState(pos); + BlockState blockState = player.level.getBlockState(pos); if (!isToolEffective(stack, blockState)) { return false; @@ -210,34 +210,34 @@ public boolean breakAOEBlocks(ItemStack stack, BlockPos pos, int breakRadius, in InventoryDynamic inventoryDynamic = new InventoryDynamic(); - float refStrength = blockStrength(blockState, player, player.world, pos); + float refStrength = blockStrength(blockState, player, player.level, pos); Pair aoe = getMiningArea(pos, player, breakRadius, breakDepth); - List aoeBlocks = Lists.newArrayList(BlockPos.getAllInBoxMutable(aoe.key(), aoe.value())); + List aoeBlocks = Lists.newArrayList(BlockPos.betweenClosed(aoe.key(), aoe.value())); if (ToolConfigHelper.getBooleanField("aoeSafeMode", stack)) { for (BlockPos block : aoeBlocks) { - if (!player.world.isAirBlock(block) && player.world.getTileEntity(block) != null) { - if (player.world.isRemote) { - player.sendMessage(new TranslationTextComponent("msg.de.baseSafeAOW.txt"), Util.DUMMY_UUID); + if (!player.level.isEmptyBlock(block) && player.level.getBlockEntity(block) != null) { + if (player.level.isClientSide) { + player.sendMessage(new TranslationTextComponent("msg.de.baseSafeAOW.txt"), Util.NIL_UUID); } else { - ((ServerPlayerEntity) player).connection.sendPacket(new SChangeBlockPacket(((ServerPlayerEntity) player).world, block)); + ((ServerPlayerEntity) player).connection.send(new SChangeBlockPacket(((ServerPlayerEntity) player).level, block)); } return true; } } } - player.world.playEvent(2001, pos, Block.getStateId(blockState)); + player.level.levelEvent(2001, pos, Block.getId(blockState)); for (BlockPos block : aoeBlocks) { - breakAOEBlock(stack, player.world, block, player, refStrength, inventoryDynamic, random.nextInt(Math.max(5, (breakRadius * breakDepth) / 5)) == 0); + breakAOEBlock(stack, player.level, block, player, refStrength, inventoryDynamic, random.nextInt(Math.max(5, (breakRadius * breakDepth) / 5)) == 0); } - @SuppressWarnings("unchecked") List items = player.world.getEntitiesWithinAABB(ItemEntity.class, new AxisAlignedBB(aoe.key(), aoe.value().add(1, 1, 1))); + @SuppressWarnings("unchecked") List items = player.level.getEntitiesOfClass(ItemEntity.class, new AxisAlignedBB(aoe.key(), aoe.value().offset(1, 1, 1))); for (ItemEntity item : items) { - if (!player.world.isRemote && item.isAlive()) { + if (!player.level.isClientSide && item.isAlive()) { InventoryUtils.insertItem(inventoryDynamic, item.getItem(), false); item.remove(); } @@ -248,7 +248,7 @@ public boolean breakAOEBlocks(ItemStack stack, BlockPos pos, int breakRadius, in boolean nbtSens = ToolConfigHelper.getBooleanField("junkNbtSens", stack); inventoryDynamic.removeIf(check -> { for (ItemStack junk : junkFilter) { - if (junk.isItemEqual(check) && (!nbtSens || ItemStack.areItemStackTagsEqual(junk, check))) { + if (junk.sameItem(check) && (!nbtSens || ItemStack.tagMatches(junk, check))) { return true; } } @@ -256,18 +256,18 @@ public boolean breakAOEBlocks(ItemStack stack, BlockPos pos, int breakRadius, in }); } - if (!player.world.isRemote) { + if (!player.level.isClientSide) { if (DEOldConfig.disableLootCores) { - for (int i = 0; i < inventoryDynamic.getSizeInventory(); i++) { - ItemStack sis = inventoryDynamic.getStackInSlot(i); + for (int i = 0; i < inventoryDynamic.getContainerSize(); i++) { + ItemStack sis = inventoryDynamic.getItem(i); if (sis != null) { - ItemEntity item = new ItemEntity(player.world, player.getPosX(), player.getPosY(), player.getPosZ(), sis); - item.setPickupDelay(0); - player.world.addEntity(item); + ItemEntity item = new ItemEntity(player.level, player.getX(), player.getY(), player.getZ(), sis); + item.setPickUpDelay(0); + player.level.addFreshEntity(item); } } player.giveExperiencePoints(inventoryDynamic.xp); - inventoryDynamic.clear(); + inventoryDynamic.clearContent(); } else { // EntityLootCore lootCore = new EntityLootCore(player.world, inventoryDynamic); TODO Entity Stuff // lootCore.setPosition(player.getPosX(), player.getPosY(), player.getPosZ()); @@ -279,7 +279,7 @@ public boolean breakAOEBlocks(ItemStack stack, BlockPos pos, int breakRadius, in } protected void breakAOEBlock(ItemStack stack, World world, BlockPos pos, PlayerEntity player, float refStrength, InventoryDynamic inventory, boolean breakFX) { - if (world.isAirBlock(pos)) { + if (world.isEmptyBlock(pos)) { return; } @@ -297,46 +297,46 @@ protected void breakAOEBlock(ItemStack stack, World world, BlockPos pos, PlayerE return; } - if (player.abilities.isCreativeMode) { - if (world.isRemote && random.nextInt(10) == 0) { - world.playEvent(2001, pos, Block.getStateId(state)); + if (player.abilities.instabuild) { + if (world.isClientSide && random.nextInt(10) == 0) { + world.levelEvent(2001, pos, Block.getId(state)); } - block.onBlockHarvested(world, pos, state, player); + block.playerWillDestroy(world, pos, state, player); if (block.removedByPlayer(state, world, pos, player, false, fluidState)) { - block.onPlayerDestroy(world, pos, state); + block.destroy(world, pos, state); } - if (!world.isRemote) { - ((ServerPlayerEntity) player).connection.sendPacket(new SChangeBlockPacket(world, pos)); + if (!world.isClientSide) { + ((ServerPlayerEntity) player).connection.send(new SChangeBlockPacket(world, pos)); } return; } - if (!world.isRemote) { - int xp = ForgeHooks.onBlockBreakEvent(world, ((ServerPlayerEntity) player).interactionManager.getGameType(), (ServerPlayerEntity) player, pos); + if (!world.isClientSide) { + int xp = ForgeHooks.onBlockBreakEvent(world, ((ServerPlayerEntity) player).gameMode.getGameModeForPlayer(), (ServerPlayerEntity) player, pos); if (xp == -1) { ServerPlayerEntity mpPlayer = (ServerPlayerEntity) player; - mpPlayer.connection.sendPacket(new SChangeBlockPacket(world, pos)); + mpPlayer.connection.send(new SChangeBlockPacket(world, pos)); return; } - stack.onBlockDestroyed(world, state, pos, player); + stack.mineBlock(world, state, pos, player); BlockToStackHelper.breakAndCollectWithPlayer(world, pos, inventory, player, xp); } else { if (breakFX) { - world.playEvent(2001, pos, Block.getStateId(state)); + world.levelEvent(2001, pos, Block.getId(state)); } if (block.removedByPlayer(state, world, pos, player, true, fluidState)) { - block.onPlayerDestroy(world, pos, state); + block.destroy(world, pos, state); } - stack.onBlockDestroyed(world, state, pos, player); + stack.mineBlock(world, state, pos, player); - if (Minecraft.getInstance().objectMouseOver instanceof BlockRayTraceResult) { - Minecraft.getInstance().getConnection().sendPacket(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.STOP_DESTROY_BLOCK, pos, ((BlockRayTraceResult) Minecraft.getInstance().objectMouseOver).getFace())); + if (Minecraft.getInstance().hitResult instanceof BlockRayTraceResult) { + Minecraft.getInstance().getConnection().send(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.STOP_DESTROY_BLOCK, pos, ((BlockRayTraceResult) Minecraft.getInstance().hitResult).getDirection())); } } } @@ -350,7 +350,7 @@ public Pair getMiningArea(BlockPos pos, PlayerEntity player, return new Pair<>(pos, pos); } - int sideHit = traceResult.getFace().getIndex(); + int sideHit = traceResult.getDirection().get3DDataValue(); int xMax = breakRadius; int xMin = breakRadius; @@ -401,7 +401,7 @@ public Pair getMiningArea(BlockPos pos, PlayerEntity player, yOffset = 0; } - return new Pair<>(pos.add(-xMin, yOffset - yMin, -zMin), pos.add(xMax, yOffset + yMax, zMax)); + return new Pair<>(pos.offset(-xMin, yOffset - yMin, -zMin), pos.offset(xMax, yOffset + yMax, zMax)); } //endregion @@ -465,7 +465,7 @@ public boolean isToolEffective(ItemStack stack, BlockState state) { } public static float blockStrength(BlockState state, PlayerEntity player, World world, BlockPos pos) { - float hardness = state.getBlockHardness(world, pos); + float hardness = state.getDestroySpeed(world, pos); if (hardness < 0.0F) { return 0.0F; } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/ToolBase.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/ToolBase.java index fbb7b4046..5a74adb73 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/ToolBase.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/ToolBase.java @@ -130,11 +130,11 @@ protected void addEnchantConfig(ItemStack stack, ItemConfigFieldRegistry registr Map enchants = getAllEnchants(stack); Map disEnchants = getDisabledEnchants(stack); enchants.forEach((enchantment, integer) -> { - ToolConfigHelper.getFieldStorage(stack).remove(enchantment.getName()); + ToolConfigHelper.getFieldStorage(stack).remove(enchantment.getDescriptionId()); registry.register(stack, new BooleanConfigField(enchantment.getRegistryName() + "", false/*!disEnchants.containsKey(enchantment)*/, "config.field.toggleEnchant.description") { @Override public String getUnlocalizedName() { - return enchantment.getDisplayName(integer).getString(); + return enchantment.getFullname(integer).getString(); } @Override @@ -165,7 +165,7 @@ public Map getDisabledEnchants(ItemStack stack) { ListNBT list = ItemNBTHelper.getCompound(stack).getList("disableEnchants", 10); Map disEnch = new HashMap<>(); for (int i = 0; i < list.size(); i++) { - Enchantment enchantment = Enchantment.getEnchantmentByID(list.getCompound(i).getShort("id")); + Enchantment enchantment = Enchantment.byId(list.getCompound(i).getShort("id")); int level = list.getCompound(i).getShort("lvl"); disEnch.put(enchantment, level); } @@ -207,14 +207,14 @@ public void onFieldChanged(ItemStack stack, IItemConfigField field) { if (enchantment == target) { ListNBT list = ItemNBTHelper.getCompound(stack).getList("disableEnchants", 10); for (int i = 0; i < list.size(); i++) { - Enchantment e = Enchantment.getEnchantmentByID(list.getCompound(i).getShort("id")); + Enchantment e = Enchantment.byId(list.getCompound(i).getShort("id")); if (e == enchantment) { list.remove(i); break; } } - stack.addEnchantment(enchantment, enchants.get(enchantment)); + stack.enchant(enchantment, enchants.get(enchantment)); ToolConfigHelper.getFieldStorage(stack).putBoolean(field.getName(), true); return; } @@ -283,9 +283,9 @@ public List getValidUpgrades(ItemStack stack) { @OnlyIn(Dist.CLIENT) @Override - public void addInformation(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { + public void appendHoverText(ItemStack stack, @Nullable World worldIn, List tooltip, ITooltipFlag flagIn) { holdCTRLForUpgrades(tooltip, stack); - super.addInformation(stack, worldIn, tooltip, flagIn); + super.appendHoverText(stack, worldIn, tooltip, flagIn); } public static void holdCTRLForUpgrades(List list, ItemStack stack) { @@ -293,7 +293,7 @@ public static void holdCTRLForUpgrades(List list, ItemStack stac if (!Screen.hasControlDown()) { list.add(new TranslationTextComponent("upgrade.de.holdCtrlForUpgrades.info", TextFormatting.AQUA + "" + TextFormatting.ITALIC, TextFormatting.RESET + "" + TextFormatting.GRAY)); } else { - list.add(new TranslationTextComponent("upgrade.de.upgrades.info").mergeStyle(TextFormatting.GOLD)); + list.add(new TranslationTextComponent("upgrade.de.upgrades.info").withStyle(TextFormatting.GOLD)); // list.addAll(UpgradeHelper.getUpgradeStats(stack));//TODO Maybe? } } @@ -328,18 +328,18 @@ public long getCapacity(ItemStack stack) { @Override public boolean onLeftClickEntity(ItemStack stack, PlayerEntity player, Entity entity) { - if (this instanceof IAOEWeapon && player.getCooledAttackStrength(0.5F) >= 0.95F && ((IAOEWeapon) this).getWeaponAOE(stack) > 0) { - List entities = player.world.getEntitiesWithinAABB(LivingEntity.class, entity.getBoundingBox().grow(((IAOEWeapon) this).getWeaponAOE(stack), 0.25D, ((IAOEWeapon) this).getWeaponAOE(stack))); + if (this instanceof IAOEWeapon && player.getAttackStrengthScale(0.5F) >= 0.95F && ((IAOEWeapon) this).getWeaponAOE(stack) > 0) { + List entities = player.level.getEntitiesOfClass(LivingEntity.class, entity.getBoundingBox().inflate(((IAOEWeapon) this).getWeaponAOE(stack), 0.25D, ((IAOEWeapon) this).getWeaponAOE(stack))); for (LivingEntity aoeEntity : entities) { - if (aoeEntity != player && aoeEntity != entity && !player.isOnSameTeam(entity) && extractAttackEnergy(stack, aoeEntity, player)) { + if (aoeEntity != player && aoeEntity != entity && !player.isAlliedTo(entity) && extractAttackEnergy(stack, aoeEntity, player)) { // aoeEntity.knockBack(player, 0.4F, (double) MathHelper.sin(player.rotationYaw * 0.017453292F), (double) (-MathHelper.cos(player.rotationYaw * 0.017453292F))); - aoeEntity.attackEntityFrom(DamageSource.causePlayerDamage(player), getAttackDamage(stack)); + aoeEntity.hurt(DamageSource.playerAttack(player), getAttackDamage(stack)); } } - player.world.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(), SoundEvents.ENTITY_PLAYER_ATTACK_SWEEP, player.getSoundCategory(), 1.0F, 1.0F); - player.spawnSweepParticles(); + player.level.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.PLAYER_ATTACK_SWEEP, player.getSoundSource(), 1.0F, 1.0F); + player.sweepAttack(); } extractAttackEnergy(stack, entity, player); @@ -371,8 +371,8 @@ public Multimap getAttributeModifiers(EquipmentSlo Multimap multimap = super.getAttributeModifiers(equipmentSlot, stack); if (equipmentSlot == EquipmentSlotType.MAINHAND) { - multimap.put(Attributes.ATTACK_DAMAGE, new AttributeModifier(ATTACK_DAMAGE_MODIFIER, "Weapon modifier", (double) getAttackDamage(stack) - 1, AttributeModifier.Operation.ADDITION)); - multimap.put(Attributes.ATTACK_SPEED, new AttributeModifier(ATTACK_SPEED_MODIFIER, "Weapon modifier", (double) getAttackSpeed(stack), AttributeModifier.Operation.ADDITION)); + multimap.put(Attributes.ATTACK_DAMAGE, new AttributeModifier(BASE_ATTACK_DAMAGE_UUID, "Weapon modifier", (double) getAttackDamage(stack) - 1, AttributeModifier.Operation.ADDITION)); + multimap.put(Attributes.ATTACK_SPEED, new AttributeModifier(BASE_ATTACK_SPEED_UUID, "Weapon modifier", (double) getAttackSpeed(stack), AttributeModifier.Operation.ADDITION)); } return multimap; @@ -394,7 +394,7 @@ public void addDisplayData(@Nullable ItemStack stack, World world, @Nullable Blo for (IItemConfigField field : registry.getFields()) { if (field instanceof ExternalConfigField) continue; - displayList.add(InfoHelper.ITC() + I18n.format(field.getUnlocalizedName()) + ": " + InfoHelper.HITC() + field.getReadableValue()); + displayList.add(InfoHelper.ITC() + I18n.get(field.getUnlocalizedName()) + ": " + InfoHelper.HITC() + field.getReadableValue()); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernAxe.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernAxe.java index 5134c92fd..b39941376 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernAxe.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernAxe.java @@ -75,7 +75,7 @@ public void loadEnergyStats() { //region Item @Override - public UseAction getUseAction(ItemStack stack) { + public UseAction getUseAnimation(ItemStack stack) { return UseAction.BOW; } @@ -110,26 +110,26 @@ public ItemConfigFieldRegistry getFields(ItemStack stack, ItemConfigFieldRegistr @Override - public ActionResultType onItemUse(ItemUseContext context) { - World world = context.getWorld(); - BlockPos pos = context.getPos(); + public ActionResultType useOn(ItemUseContext context) { + World world = context.getLevel(); + BlockPos pos = context.getClickedPos(); PlayerEntity player = context.getPlayer(); - ItemStack stack = context.getItem(); - if (world.getBlockState(pos).getMaterial() == Material.WOOD && !player.isSneaking()) { - player.setActiveHand(context.getHand()); - if (!world.isRemote) { + ItemStack stack = context.getItemInHand(); + if (world.getBlockState(pos).getMaterial() == Material.WOOD && !player.isShiftKeyDown()) { + player.startUsingItem(context.getHand()); + if (!world.isClientSide) { SelectionController controller = new SelectionController(player, stack, pos, true, 2, this); ProcessHandler.addProcess(controller); } return ActionResultType.PASS; } - return super.onItemUse(context); + return super.useOn(context); } @Override - public void onPlayerStoppedUsing(ItemStack stack, World worldIn, LivingEntity entityLiving, int timeLeft) { - super.onPlayerStoppedUsing(stack, worldIn, entityLiving, timeLeft); + public void releaseUsing(ItemStack stack, World worldIn, LivingEntity entityLiving, int timeLeft) { + super.releaseUsing(stack, worldIn, entityLiving, timeLeft); } protected static boolean isTree(World world, BlockPos pos) { @@ -140,14 +140,14 @@ protected static boolean isTree(World world, BlockPos pos) { else { int treeTop = 0; for (int y = 0; y <= 50; y++) { - BlockState state = world.getBlockState(pos.add(0, y, 0)); + BlockState state = world.getBlockState(pos.offset(0, y, 0)); if (state.getMaterial() != Material.WOOD && state.getMaterial() != Material.LEAVES) { treeTop = y; break; } } - Iterable list = BlockPos.getAllInBoxMutable(pos.add(-1, 0, -1), pos.add(1, treeTop, 1)); + Iterable list = BlockPos.betweenClosed(pos.offset(-1, 0, -1), pos.offset(1, treeTop, 1)); int leaves = 0; for (BlockPos checkPos : list) { @@ -188,10 +188,10 @@ public SelectionController(PlayerEntity player, ItemStack stack, BlockPos clicke this.player = player; this.stack = stack; this.axe = axe; - this.collector = new TreeCollector(player.world, breakDown, connectRad, stack, player, axe); + this.collector = new TreeCollector(player.level, breakDown, connectRad, stack, player, axe); this.collector.setCollectionCallback(this); this.collector.collectTree(clicked); - this.hand = player.getActiveHand(); + this.hand = player.getUsedItemHand(); LogHelper.dev("StartSelector"); showHarvest = ToolConfigHelper.getBooleanField("showHarvestIndicator", stack); } @@ -206,14 +206,14 @@ public void call(BlockPos pos) { @Override public void updateProcess() { - if (!player.isAlive() || player.getHeldItem(hand) != stack || collector.collected >= axe.getMaxHarvest() || collector.isCollectionComplete()) { + if (!player.isAlive() || player.getItemInHand(hand) != stack || collector.collected >= axe.getMaxHarvest() || collector.isCollectionComplete()) { collector.killCollector(); LogHelper.dev("Finish " + collector.collected); finishHarvest(); return; } - if (player.isHandActive() && player.getActiveItemStack() == stack) { + if (player.isUsingItem() && player.getUseItem() == stack) { return; } @@ -226,7 +226,7 @@ public boolean isDead() { } private void finishHarvest() { - if (hasFinished || !(player.world instanceof ServerWorld)) { + if (hasFinished || !(player.level instanceof ServerWorld)) { return; } @@ -243,17 +243,17 @@ private void finishHarvest() { InventoryDynamic inventory = collector.getCollected(); - if (inventory.getSizeInventory() > 2) { + if (inventory.getContainerSize() > 2) { // EntityLootCore lootCore = new EntityLootCore(player.world, inventory); // lootCore.setPosition(player.getPosX(), player.getPosY(), player.getPosZ()); // player.world.addEntity(lootCore); TODO Entity Stuff } else { - for (int i = 0; i < inventory.getSizeInventory(); i++) { - ItemStack s = inventory.removeStackFromSlot(i); + for (int i = 0; i < inventory.getContainerSize(); i++) { + ItemStack s = inventory.removeItemNoUpdate(i); if (s != null) { - ItemEntity item = new ItemEntity(player.world, player.getPosX(), player.getPosY(), player.getPosZ(), s); - player.world.addEntity(item); + ItemEntity item = new ItemEntity(player.level, player.getX(), player.getY(), player.getZ(), s); + player.level.addFreshEntity(item); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernBow.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernBow.java index 5d0c3e06b..554eac0fe 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernBow.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernBow.java @@ -69,15 +69,15 @@ public void loadEnergyStats() { //region Bow Stuff private ItemStack findAmmo(PlayerEntity player) { - if (this.isArrow(player.getHeldItem(Hand.OFF_HAND))) { - return player.getHeldItem(Hand.OFF_HAND); + if (this.isArrow(player.getItemInHand(Hand.OFF_HAND))) { + return player.getItemInHand(Hand.OFF_HAND); } - else if (this.isArrow(player.getHeldItem(Hand.MAIN_HAND))) { - return player.getHeldItem(Hand.MAIN_HAND); + else if (this.isArrow(player.getItemInHand(Hand.MAIN_HAND))) { + return player.getItemInHand(Hand.MAIN_HAND); } else { - for (int i = 0; i < player.inventory.getSizeInventory(); ++i) { - ItemStack itemstack = player.inventory.getStackInSlot(i); + for (int i = 0; i < player.inventory.getContainerSize(); ++i) { + ItemStack itemstack = player.inventory.getItem(i); if (this.isArrow(itemstack)) { return itemstack; @@ -93,7 +93,7 @@ protected boolean isArrow(@Nonnull ItemStack stack) { } @Override - public void onPlayerStoppedUsing(ItemStack stack, World world, LivingEntity entityLiving, int timeLeft) { + public void releaseUsing(ItemStack stack, World world, LivingEntity entityLiving, int timeLeft) { if (entityLiving instanceof PlayerEntity) { BowHandler.onPlayerStoppedUsingBow(stack, world, (PlayerEntity) entityLiving, timeLeft); } @@ -116,13 +116,13 @@ public int getUseDuration(ItemStack stack) { } @Override - public UseAction getUseAction(ItemStack stack) { + public UseAction getUseAnimation(ItemStack stack) { return UseAction.BOW; } @Override - public ActionResult onItemRightClick(World world, PlayerEntity player, Hand hand) { - return BowHandler.onBowRightClick(player.getHeldItem(hand), world, player, hand); + public ActionResult use(World world, PlayerEntity player, Hand hand) { + return BowHandler.onBowRightClick(player.getItemInHand(hand), world, player, hand); } @Override @@ -155,9 +155,9 @@ public void addDisplayData(@Nullable ItemStack stack, World world, @Nullable Blo if (BrandonsCore.proxy.getClientPlayer() != null) { BowHandler.BowProperties properties = new BowHandler.BowProperties(stack, BrandonsCore.proxy.getClientPlayer()); - displayList.add(InfoHelper.ITC() + I18n.format("gui.de.rfPerShot.txt") + ": " + InfoHelper.HITC() + Utils.addCommas(properties.calculateEnergyCost())); + displayList.add(InfoHelper.ITC() + I18n.get("gui.de.rfPerShot.txt") + ": " + InfoHelper.HITC() + Utils.addCommas(properties.calculateEnergyCost())); if (!properties.canFire() && properties.cantFireMessage != null) { - displayList.add(TextFormatting.DARK_RED + I18n.format(properties.cantFireMessage)); + displayList.add(TextFormatting.DARK_RED + I18n.get(properties.cantFireMessage)); } } } @@ -203,7 +203,7 @@ public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantmen if (getDisabledEnchants(stack).containsKey(enchantment)) { return false; } - return enchantment.type == EnchantmentType.BOW /*|| enchantment.type == EnchantmentType.ALL*/; + return enchantment.category == EnchantmentType.BOW /*|| enchantment.type == EnchantmentType.ALL*/; } @Override @@ -217,7 +217,7 @@ public int getToolTier(ItemStack stack) { public float getNewFOV(PlayerEntity player, ItemStack stack, float currentFOV, float originalFOV, EquipmentSlotType slot) { float zoom = ((10 + ToolConfigHelper.getIntegerField("bowZoomModifier", stack)) / 605F); - if (player.getActiveItemStack() == stack) { + if (player.getUseItem() == stack) { if (currentFOV > 1.5F) { currentFOV = 1.5F; } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernHoe.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernHoe.java index 36957324c..ee3b5d5dc 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernHoe.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernHoe.java @@ -69,12 +69,12 @@ public void loadEnergyStats() { @Override - public ActionResultType onItemUse(ItemUseContext context) { - ItemStack stack = context.getItem(); + public ActionResultType useOn(ItemUseContext context) { + ItemStack stack = context.getItemInHand(); PlayerEntity player = context.getPlayer(); - World world = context.getWorld(); - BlockPos pos = context.getPos(); - Direction facing = context.getFace(); + World world = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction facing = context.getClickedFace(); if (!hoeBlock(stack, player, world, pos, facing, context)) { if (world.getBlockState(pos).getBlock() != Blocks.FARMLAND) { @@ -84,46 +84,46 @@ public ActionResultType onItemUse(ItemUseContext context) { modifyEnergy(stack, -energyPerOperation); } - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { return ActionResultType.SUCCESS; } int AOE = ToolConfigHelper.getIntegerField("digAOE", stack); boolean fill = ToolConfigHelper.getBooleanField("landFill", stack); - Iterable blocks = BlockPos.getAllInBoxMutable(pos.add(-AOE, 0, -AOE), pos.add(AOE, 0, AOE)); + Iterable blocks = BlockPos.betweenClosed(pos.offset(-AOE, 0, -AOE), pos.offset(AOE, 0, AOE)); for (BlockPos aoePos : blocks) { if (aoePos.equals(pos)) { continue; } - if (!fill && (world.isAirBlock(aoePos) || !world.isAirBlock(aoePos.up()))) { + if (!fill && (world.isEmptyBlock(aoePos) || !world.isEmptyBlock(aoePos.above()))) { continue; } - boolean airOrReplaceable = world.isAirBlock(aoePos) || world.getBlockState(aoePos).getMaterial().isReplaceable(); + boolean airOrReplaceable = world.isEmptyBlock(aoePos) || world.getBlockState(aoePos).getMaterial().isReplaceable(); //TODO Solid Stuff - boolean lowerBlockOk = world.getBlockState(aoePos.down()).isSolid() || world.getBlockState(aoePos.down()).getBlock() == Blocks.FARMLAND; + boolean lowerBlockOk = world.getBlockState(aoePos.below()).canOcclude() || world.getBlockState(aoePos.below()).getBlock() == Blocks.FARMLAND; - if (fill && airOrReplaceable && lowerBlockOk && (player.abilities.isCreativeMode || player.inventory.hasItemStack(new ItemStack(Blocks.DIRT)))) { + if (fill && airOrReplaceable && lowerBlockOk && (player.abilities.instabuild || player.inventory.contains(new ItemStack(Blocks.DIRT)))) { boolean canceled = false;//TODOForgeEventFactory.onBlockPlace(player, new BlockSnapshot(world.getDimensionKey(), world, aoePos, Blocks.DIRT.getDefaultState()), Direction.UP); - if (!canceled && (player.abilities.isCreativeMode || InventoryUtils.consumeStack(new ItemStack(Blocks.DIRT), player.inventory))) { - world.setBlockState(aoePos, Blocks.DIRT.getDefaultState()); + if (!canceled && (player.abilities.instabuild || InventoryUtils.consumeStack(new ItemStack(Blocks.DIRT), player.inventory))) { + world.setBlockAndUpdate(aoePos, Blocks.DIRT.defaultBlockState()); } } - boolean canDropAbove = world.getBlockState(aoePos.up()).getBlock() == Blocks.DIRT || world.getBlockState(aoePos.up()).getBlock() == Blocks.GRASS || world.getBlockState(aoePos.up()).getBlock() == Blocks.FARMLAND; - boolean canRemoveAbove = canDropAbove || world.getBlockState(aoePos.up()).getMaterial().isReplaceable(); - boolean up2OK = world.isAirBlock(aoePos.up().up()) || world.getBlockState(aoePos.up().up()).getMaterial().isReplaceable(); + boolean canDropAbove = world.getBlockState(aoePos.above()).getBlock() == Blocks.DIRT || world.getBlockState(aoePos.above()).getBlock() == Blocks.GRASS || world.getBlockState(aoePos.above()).getBlock() == Blocks.FARMLAND; + boolean canRemoveAbove = canDropAbove || world.getBlockState(aoePos.above()).getMaterial().isReplaceable(); + boolean up2OK = world.isEmptyBlock(aoePos.above().above()) || world.getBlockState(aoePos.above().above()).getMaterial().isReplaceable(); - if (fill && !world.isAirBlock(aoePos.up()) && canRemoveAbove && up2OK) { + if (fill && !world.isEmptyBlock(aoePos.above()) && canRemoveAbove && up2OK) { if (canDropAbove) { - world.addEntity(new ItemEntity(world, player.getPosX(), player.getPosY(), player.getPosZ(), new ItemStack(Blocks.DIRT))); + world.addFreshEntity(new ItemEntity(world, player.getX(), player.getY(), player.getZ(), new ItemStack(Blocks.DIRT))); } - world.removeBlock(aoePos.up(), false); + world.removeBlock(aoePos.above(), false); } if (hoeBlock(stack, player, world, aoePos, facing, context)) { @@ -136,11 +136,11 @@ public ActionResultType onItemUse(ItemUseContext context) { private boolean hoeBlock(ItemStack stack, PlayerEntity player, World world, BlockPos pos, Direction face, ItemUseContext context) { - if (getEnergyStored(stack) < energyPerOperation && !player.abilities.isCreativeMode) { + if (getEnergyStored(stack) < energyPerOperation && !player.abilities.instabuild) { return false; } - if (!player.canPlayerEdit(pos, face, stack)) { + if (!player.mayUseItemAt(pos, face, stack)) { return false; } else { int hook = ForgeEventFactory.onHoeUse(context); @@ -151,16 +151,16 @@ private boolean hoeBlock(ItemStack stack, PlayerEntity player, World world, Bloc BlockState iblockstate = world.getBlockState(pos); Block block = iblockstate.getBlock(); - if (face != Direction.DOWN && world.isAirBlock(pos.up())) { + if (face != Direction.DOWN && world.isEmptyBlock(pos.above())) { if (block == Blocks.GRASS || block == Blocks.GRASS_PATH) { - this.setBlock(player, world, pos, Blocks.FARMLAND.getDefaultState()); + this.setBlock(player, world, pos, Blocks.FARMLAND.defaultBlockState()); return true; } if (block == Blocks.DIRT) { - this.setBlock(player, world, pos, Blocks.FARMLAND.getDefaultState()); + this.setBlock(player, world, pos, Blocks.FARMLAND.defaultBlockState()); } else if (block == Blocks.COARSE_DIRT) { - this.setBlock(player, world, pos, Blocks.DIRT.getDefaultState()); + this.setBlock(player, world, pos, Blocks.DIRT.defaultBlockState()); } } @@ -169,10 +169,10 @@ private boolean hoeBlock(ItemStack stack, PlayerEntity player, World world, Bloc } protected void setBlock(PlayerEntity player, World worldIn, BlockPos pos, BlockState state) { - worldIn.playSound(player, pos, SoundEvents.ITEM_HOE_TILL, SoundCategory.BLOCKS, 1.0F, 1.0F); + worldIn.playSound(player, pos, SoundEvents.HOE_TILL, SoundCategory.BLOCKS, 1.0F, 1.0F); - if (!worldIn.isRemote) { - worldIn.setBlockState(pos, state, 11); + if (!worldIn.isClientSide) { + worldIn.setBlock(pos, state, 11); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernShovel.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernShovel.java index e6570b902..57eb0b31e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernShovel.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernShovel.java @@ -72,12 +72,12 @@ public int getToolTier(ItemStack stack) { } @Override - public ActionResultType onItemUse(ItemUseContext context) { - ItemStack stack = context.getItem(); + public ActionResultType useOn(ItemUseContext context) { + ItemStack stack = context.getItemInHand(); PlayerEntity player = context.getPlayer(); - World world = context.getWorld(); - BlockPos pos = context.getPos(); - Direction facing = context.getFace(); + World world = context.getLevel(); + BlockPos pos = context.getClickedPos(); + Direction facing = context.getClickedFace(); if (!flattenBlock(stack, player, world, pos, facing)) { if (world.getBlockState(pos).getBlock() != Blocks.GRASS_PATH) { @@ -88,22 +88,22 @@ public ActionResultType onItemUse(ItemUseContext context) { modifyEnergy(stack, -energyPerOperation); } - if (player.isSneaking()) { + if (player.isShiftKeyDown()) { return ActionResultType.SUCCESS; } int AOE = ToolConfigHelper.getIntegerField("digAOE", stack); - Iterable blocks = BlockPos.getAllInBoxMutable(pos.add(-AOE, 0, -AOE), pos.add(AOE, 0, AOE)); + Iterable blocks = BlockPos.betweenClosed(pos.offset(-AOE, 0, -AOE), pos.offset(AOE, 0, AOE)); for (BlockPos aoePos : blocks) { if (aoePos.equals(pos)) { continue; } - BlockState repState = world.getBlockState(aoePos.up()); + BlockState repState = world.getBlockState(aoePos.above()); boolean replaceable = repState.getMaterial().isReplaceable(); - if (world.isAirBlock(aoePos) || !replaceable) { + if (world.isEmptyBlock(aoePos) || !replaceable) { continue; } @@ -115,10 +115,10 @@ public ActionResultType onItemUse(ItemUseContext context) { } private boolean flattenBlock(ItemStack stack, PlayerEntity player, World world, BlockPos pos, Direction face) { - if (getEnergyStored(stack) < energyPerOperation && !player.abilities.isCreativeMode) { + if (getEnergyStored(stack) < energyPerOperation && !player.abilities.instabuild) { return false; } - else if (!player.canPlayerEdit(pos, face, stack)) { + else if (!player.mayUseItemAt(pos, face, stack)) { return false; } else { @@ -126,13 +126,13 @@ else if (!player.canPlayerEdit(pos, face, stack)) { Block block = iblockstate.getBlock(); if (face != Direction.DOWN && block == Blocks.GRASS) { - world.playSound(player, pos, SoundEvents.ITEM_SHOVEL_FLATTEN, SoundCategory.BLOCKS, 1.0F, 1.0F); + world.playSound(player, pos, SoundEvents.SHOVEL_FLATTEN, SoundCategory.BLOCKS, 1.0F, 1.0F); - if (!world.isRemote) { - if (!world.isAirBlock(pos.up())) { - world.removeBlock(pos.up(), false); + if (!world.isClientSide) { + if (!world.isEmptyBlock(pos.above())) { + world.removeBlock(pos.above(), false); } - setBlock(player, world, pos, Blocks.GRASS_PATH.getDefaultState()); + setBlock(player, world, pos, Blocks.GRASS_PATH.defaultBlockState()); } return true; @@ -143,10 +143,10 @@ else if (!player.canPlayerEdit(pos, face, stack)) { } protected void setBlock(PlayerEntity player, World worldIn, BlockPos pos, BlockState state) { - worldIn.playSound(player, pos, SoundEvents.ITEM_SHOVEL_FLATTEN, SoundCategory.BLOCKS, 1.0F, 1.0F); + worldIn.playSound(player, pos, SoundEvents.SHOVEL_FLATTEN, SoundCategory.BLOCKS, 1.0F, 1.0F); - if (!worldIn.isRemote) { - worldIn.setBlockState(pos, state, 11); + if (!worldIn.isClientSide) { + worldIn.setBlock(pos, state, 11); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernSword.java b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernSword.java index 10ff32fe3..4508c586a 100644 --- a/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernSword.java +++ b/src/main/java/com/brandon3055/draconicevolution/items/tools/old/WyvernSword.java @@ -67,7 +67,7 @@ public float getDestroySpeed(ItemStack stack, BlockState state) { @Override public boolean canHarvestBlock(ItemStack stack, BlockState state) { Material mat = state.getMaterial(); - return mat.isReplaceable() || mat == Material.WEB || mat == Material.WOOL || mat == Material.CARPET || mat == Material.LEAVES || mat == Material.PLANTS; + return mat.isReplaceable() || mat == Material.WEB || mat == Material.WOOL || mat == Material.CLOTH_DECORATION || mat == Material.LEAVES || mat == Material.PLANT; } @Override @@ -88,7 +88,7 @@ public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantmen if (getDisabledEnchants(stack).containsKey(enchantment)) { return false; } - return enchantment.type == EnchantmentType.WEAPON /*|| enchantment.type == EnchantmentType.ALL*/; + return enchantment.category == EnchantmentType.WEAPON /*|| enchantment.type == EnchantmentType.ALL*/; } @Override @@ -98,10 +98,10 @@ public int getToolTier(ItemStack stack) { @Override public boolean onBlockStartBreak(ItemStack itemstack, BlockPos pos, PlayerEntity player) { - boolean cancel = super.onBlockStartBreak(itemstack, pos, player) || player.abilities.isCreativeMode; + boolean cancel = super.onBlockStartBreak(itemstack, pos, player) || player.abilities.instabuild; if (cancel && player instanceof ServerPlayerEntity) { - ((ServerPlayerEntity) player).connection.sendPacket(new SChangeBlockPacket(player.world, pos)); + ((ServerPlayerEntity) player).connection.send(new SChangeBlockPacket(player.level, pos)); } return cancel; diff --git a/src/main/java/com/brandon3055/draconicevolution/lib/DEDamageSources.java b/src/main/java/com/brandon3055/draconicevolution/lib/DEDamageSources.java index d54c9663e..550117645 100644 --- a/src/main/java/com/brandon3055/draconicevolution/lib/DEDamageSources.java +++ b/src/main/java/com/brandon3055/draconicevolution/lib/DEDamageSources.java @@ -9,16 +9,16 @@ */ public class DEDamageSources { - public static final DamageSource CHAOS_ISLAND_IMPLOSION = new DamageSource("de.islandImplode").setDamageBypassesArmor().setDamageIsAbsolute(); + public static final DamageSource CHAOS_ISLAND_IMPLOSION = new DamageSource("de.islandImplode").bypassArmor().bypassMagic(); public static class DamageSourceChaos extends EntityDamageSource { public DamageSourceChaos(Entity entity) { super("chaos", entity); - this.setDamageBypassesArmor(); + this.bypassArmor(); } @Override - public boolean isUnblockable() { + public boolean isBypassArmor() { return true; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/lib/EnergyCoreBuilder.java b/src/main/java/com/brandon3055/draconicevolution/lib/EnergyCoreBuilder.java index e2cb41c64..69fae5789 100644 --- a/src/main/java/com/brandon3055/draconicevolution/lib/EnergyCoreBuilder.java +++ b/src/main/java/com/brandon3055/draconicevolution/lib/EnergyCoreBuilder.java @@ -42,38 +42,38 @@ public class EnergyCoreBuilder implements IProcess { public EnergyCoreBuilder(TileEnergyCore core, PlayerEntity player) { this.core = core; this.player = player; - this.world = core.getWorld(); + this.world = core.getLevel(); buildWorkList(); } private void buildWorkList() { EnergyCoreStructure structure = core.coreStructure; MultiBlockStorage storage = structure.getStorageForTier(core.tier.get()); - BlockPos start = core.getPos().add(structure.getCoreOffset(core.tier.get())); + BlockPos start = core.getBlockPos().offset(structure.getCoreOffset(core.tier.get())); Map structureBlocks = new HashMap<>(); storage.forEachBlock(start, (key1, value) -> { Map blockCache = new HashMap<>(); structureBlocks.put(key1, blockCache.computeIfAbsent(value, s -> ForgeRegistries.BLOCKS.getValue(new ResourceLocation(value)))); }); - World world = core.getWorld(); + World world = core.getLevel(); for (BlockPos key : structureBlocks.keySet()) { Block targetBlock = structureBlocks.get(key); if (targetBlock == null) continue; - if (world.isAirBlock(key)) { - workList.put(key, targetBlock.getDefaultState()); + if (world.isEmptyBlock(key)) { + workList.put(key, targetBlock.defaultBlockState()); continue; } BlockState state = world.getBlockState(key); if (state.getBlock() != targetBlock) { isDead = true; - player.sendMessage(new TranslationTextComponent("ecore.de.assemble_found_invalid.txt", state.getBlock().getTranslationKey(), key.toString()).mergeStyle(TextFormatting.RED), Util.DUMMY_UUID); + player.sendMessage(new TranslationTextComponent("ecore.de.assemble_found_invalid.txt", state.getBlock().getDescriptionId(), key.toString()).withStyle(TextFormatting.RED), Util.NIL_UUID); return; } } workOrder.addAll(workList.keySet()); - workOrder.sort(Comparator.comparingInt(value -> (int) value.distanceSq(core.getPos()))); + workOrder.sort(Comparator.comparingInt(value -> (int) value.distSqr(core.getBlockPos()))); } @Override @@ -85,23 +85,23 @@ public void updateProcess() { BlockPos pos = workOrder.poll(); BlockState state = workList.get(pos); - if (!world.isAirBlock(pos)) { + if (!world.isEmptyBlock(pos)) { if (world.getBlockState(pos).getBlock() == state.getBlock()) { return; } - player.sendMessage(new TranslationTextComponent("ecore.de.assemble_error_expected_air.txt", pos.toString()).mergeStyle(TextFormatting.RED), Util.DUMMY_UUID); + player.sendMessage(new TranslationTextComponent("ecore.de.assemble_error_expected_air.txt", pos.toString()).withStyle(TextFormatting.RED), Util.NIL_UUID); isDead = true; return; } ItemStack required = new ItemStack(state.getBlock()); - if (player.abilities.isCreativeMode || extractItem(required)) { - world.setBlockState(pos, state); + if (player.abilities.instabuild || extractItem(required)) { + world.setBlockAndUpdate(pos, state); SoundType soundtype = state.getBlock().getSoundType(state, world, pos, player); world.playSound(null, pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, soundtype.getPlaceSound(), SoundCategory.BLOCKS, (soundtype.getVolume() + 1.0F) / 2.0F, soundtype.getPitch() * 0.8F); } else { - player.sendMessage(new TranslationTextComponent("ecore.de.assemble_missing_required.txt", state.getBlock().getTranslationKey()).mergeStyle(TextFormatting.RED), Util.DUMMY_UUID); + player.sendMessage(new TranslationTextComponent("ecore.de.assemble_missing_required.txt", state.getBlock().getDescriptionId()).withStyle(TextFormatting.RED), Util.NIL_UUID); isDead = true; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/lib/ExplosionHelper.java b/src/main/java/com/brandon3055/draconicevolution/lib/ExplosionHelper.java index c212dd9a6..61f5c6865 100644 --- a/src/main/java/com/brandon3055/draconicevolution/lib/ExplosionHelper.java +++ b/src/main/java/com/brandon3055/draconicevolution/lib/ExplosionHelper.java @@ -39,7 +39,7 @@ public class ExplosionHelper { private HashSet lightUpdates = new HashSet<>(); private HashSet tilesToRemove = new HashSet<>(); private HashMap chunkCache = new HashMap<>(); - private static final BlockState AIR = Blocks.AIR.getDefaultState(); + private static final BlockState AIR = Blocks.AIR.defaultBlockState(); // private Map> radialRemovalMap = new HashMap<>(); public LinkedList> toRemove = new LinkedList<>(); @@ -72,7 +72,7 @@ private void removeBlock(BlockPos pos) { // } // } - serverWorld.getLightManager().checkBlock(pos); + serverWorld.getLightEngine().checkBlock(pos); return; } @@ -81,7 +81,7 @@ private void removeBlock(BlockPos pos) { storage.setBlockState(pos.getX() & 15, pos.getY() & 15, pos.getZ() & 15, AIR); } setChunkModified(pos); - serverWorld.getLightManager().checkBlock(pos); + serverWorld.getLightEngine().checkBlock(pos); } public void setChunkModified(BlockPos blockPos) { @@ -117,13 +117,13 @@ public void finish() { } public boolean isAirBlock(BlockPos pos) { - return serverWorld.isAirBlock(pos); + return serverWorld.isEmptyBlock(pos); } public BlockState getBlockState(BlockPos pos) { ChunkSection storage = getBlockStorage(pos); if (storage == null) { - return Blocks.AIR.getDefaultState(); + return Blocks.AIR.defaultBlockState(); } return storage.getBlockState(pos.getX() & 15, pos.getY() & 15, pos.getZ() & 15); } @@ -142,8 +142,8 @@ public RemovalProcess(ExplosionHelper helper) { @Override public void updateProcess() { - server.serverTime = Util.milliTime(); - while (Util.milliTime() - server.serverTime < 50 && helper.toRemove.size() > 0) { + server.nextTickTime = Util.getMillis(); + while (Util.getMillis() - server.nextTickTime < 50 && helper.toRemove.size() > 0) { LogHelper.dev("Processing chunks at rad: " + index); HashSet set = helper.toRemove.removeFirst(); for (int pos : set) { @@ -156,20 +156,20 @@ public void updateProcess() { if (helper.toRemove.isEmpty()) { isDead = true; updateBlocks(); - DraconicNetwork.sendExplosionEffect(helper.serverWorld.getDimensionKey(), helper.start, 0, true); + DraconicNetwork.sendExplosionEffect(helper.serverWorld.dimension(), helper.start, 0, true); } } public void finishChunks() { for (Chunk chunk : helper.modifiedChunks) { - chunk.setModified(true); - ServerWorldLightManager lightManager = (ServerWorldLightManager) helper.serverWorld.getLightManager(); + chunk.setUnsaved(true); + ServerWorldLightManager lightManager = (ServerWorldLightManager) helper.serverWorld.getLightEngine(); lightManager.lightChunk(chunk, false) - .thenRun(() -> helper.serverWorld.getChunkProvider().chunkManager.getTrackingPlayers(chunk.getPos(), false) - .forEach(e -> e.connection.sendPacket(new SUpdateLightPacket(chunk.getPos(), helper.serverWorld.getLightManager(), true)))); + .thenRun(() -> helper.serverWorld.getChunkSource().chunkMap.getPlayers(chunk.getPos(), false) + .forEach(e -> e.connection.send(new SUpdateLightPacket(chunk.getPos(), helper.serverWorld.getLightEngine(), true)))); SChunkDataPacket packet = new SChunkDataPacket(chunk, 65535); - helper.serverWorld.getChunkProvider().chunkManager.getTrackingPlayers(chunk.getPos(), false).forEach(e -> e.connection.sendPacket(packet)); + helper.serverWorld.getChunkSource().chunkMap.getPlayers(chunk.getPos(), false).forEach(e -> e.connection.send(packet)); } helper.modifiedChunks.clear(); @@ -183,9 +183,9 @@ private void updateBlocks() { for (int pos : helper.blocksToUpdate) { BlockState state = helper.serverWorld.getBlockState(helper.shortPos.getActualPos(pos)); if (state.getBlock() instanceof FallingBlock) { - state.getBlock().tick(state, helper.serverWorld, helper.shortPos.getActualPos(pos), helper.serverWorld.rand); + state.getBlock().tick(state, helper.serverWorld, helper.shortPos.getActualPos(pos), helper.serverWorld.random); } - state.neighborChanged(helper.serverWorld, helper.shortPos.getActualPos(pos), Blocks.AIR, helper.shortPos.getActualPos(pos).up(), false); + state.neighborChanged(helper.serverWorld, helper.shortPos.getActualPos(pos), Blocks.AIR, helper.shortPos.getActualPos(pos).above(), false); } } catch (Throwable e) { diff --git a/src/main/java/com/brandon3055/draconicevolution/lib/ToolUpgradeRecipe.java b/src/main/java/com/brandon3055/draconicevolution/lib/ToolUpgradeRecipe.java index eece4fae1..2ee502b94 100644 --- a/src/main/java/com/brandon3055/draconicevolution/lib/ToolUpgradeRecipe.java +++ b/src/main/java/com/brandon3055/draconicevolution/lib/ToolUpgradeRecipe.java @@ -1,6 +1,5 @@ package com.brandon3055.draconicevolution.lib; -//import cofh.redstoneflux.api.IEnergyContainerItem; import com.brandon3055.brandonscore.utils.ItemNBTHelper; import com.brandon3055.draconicevolution.api.fusioncrafting.SimpleFusionRecipe; import com.brandon3055.draconicevolution.api.itemupgrade_dep.IUpgradableItem; diff --git a/src/main/java/com/brandon3055/draconicevolution/magic/EnchantmentReaper.java b/src/main/java/com/brandon3055/draconicevolution/magic/EnchantmentReaper.java index 25996a41a..94223f58e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/magic/EnchantmentReaper.java +++ b/src/main/java/com/brandon3055/draconicevolution/magic/EnchantmentReaper.java @@ -29,12 +29,12 @@ public int getMaxLevel() { } @Override - public int getMinEnchantability(int level) { + public int getMinCost(int level) { return 1 + 10 * (level - 1); } @Override - public int getMaxEnchantability(int level) { - return super.getMinEnchantability(level) + 50; + public int getMaxCost(int level) { + return super.getMinCost(level) + 50; } } diff --git a/src/main/java/com/brandon3055/draconicevolution/mixin/PlayerModelMixin.java b/src/main/java/com/brandon3055/draconicevolution/mixin/PlayerModelMixin.java index eee6bdc94..b88f58231 100644 --- a/src/main/java/com/brandon3055/draconicevolution/mixin/PlayerModelMixin.java +++ b/src/main/java/com/brandon3055/draconicevolution/mixin/PlayerModelMixin.java @@ -21,8 +21,8 @@ public PlayerModel getThis() { return SneakyUtils.unsafeCast(this); } - @Inject(method = "setRotationAngles", at = @At("RETURN")) - public void afterSetRotationAngles(LivingEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, CallbackInfo ci) { + @Inject(method = "setupAnim", at = @At("RETURN")) + public void afterSetupAnim(LivingEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch, CallbackInfo ci) { RenderModularStaff.doMixinStuff(entity, getThis()); } } diff --git a/src/main/java/com/brandon3055/draconicevolution/network/ClientPacketHandler.java b/src/main/java/com/brandon3055/draconicevolution/network/ClientPacketHandler.java index 0e1628df8..1ff803a8e 100644 --- a/src/main/java/com/brandon3055/draconicevolution/network/ClientPacketHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/network/ClientPacketHandler.java @@ -54,15 +54,15 @@ public void handlePacket(PacketCustom packet, Minecraft mc, IClientPlayNetHandle public static void handleExplosionEffect(Minecraft mc, BlockPos pos, int radius, boolean reload) { if (reload) { - mc.worldRenderer.loadRenderers(); + mc.levelRenderer.allChanged(); } else { ExplosionFX explosionFX = new ExplosionFX((ClientWorld) BrandonsCore.proxy.getClientWorld(), Vec3D.getCenter(pos), radius); - mc.particles.addEffect(explosionFX); + mc.particleEngine.add(explosionFX); } } public static void handleImpactEffect(Minecraft mc, BlockPos pos, int type) { - if (mc.world == null) return; + if (mc.level == null) return; if (type == 0) { //Burst-Explosion Effect int size = 4; double speed = 1; @@ -72,10 +72,10 @@ public static void handleImpactEffect(Minecraft mc, BlockPos pos, int type) { for(int i = -size; i <= size; ++i) { for(int j = -size; j <= size; ++j) { for(int k = -size; k <= size; ++k) { - double d3 = (double)j + (mc.world.rand.nextDouble() - mc.world.rand.nextDouble()) * 0.5D; - double d4 = (double)i + (mc.world.rand.nextDouble() - mc.world.rand.nextDouble()) * 0.5D; - double d5 = (double)k + (mc.world.rand.nextDouble() - mc.world.rand.nextDouble()) * 0.5D; - double d6 = (double) MathHelper.sqrt(d3 * d3 + d4 * d4 + d5 * d5) / speed + mc.world.rand.nextGaussian() * 6D; + double d3 = (double)j + (mc.level.random.nextDouble() - mc.level.random.nextDouble()) * 0.5D; + double d4 = (double)i + (mc.level.random.nextDouble() - mc.level.random.nextDouble()) * 0.5D; + double d5 = (double)k + (mc.level.random.nextDouble() - mc.level.random.nextDouble()) * 0.5D; + double d6 = (double) MathHelper.sqrt(d3 * d3 + d4 * d4 + d5 * d5) / speed + mc.level.random.nextGaussian() * 6D; createParticle(mc, x, y, z, d3 / d6, d4 / d6, d5 / d6); if (i != -size && i != size && j != -size && j != size) { k += size * 2 - 1; @@ -83,12 +83,12 @@ public static void handleImpactEffect(Minecraft mc, BlockPos pos, int type) { } } } - mc.particles.addParticle(ParticleTypes.EXPLOSION_EMITTER, x, y, z, 0, 0, 0); + mc.particleEngine.createParticle(ParticleTypes.EXPLOSION_EMITTER, x, y, z, 0, 0, 0); } } private static void createParticle(Minecraft mc, double x, double y, double z, double motionX, double motionY, double motionZ) { - mc.particles.addParticle(DEParticles.guardian_projectile, x, y, z, motionX, motionY, motionZ); + mc.particleEngine.createParticle(DEParticles.guardian_projectile, x, y, z, motionX, motionY, motionZ); // FireworkParticle.Spark particle = (FireworkParticle.Spark)mc.particles.addParticle(ParticleTypes.FIREWORK, x, y, z, motionX, motionY, motionZ); // particle.canCollide = false; @@ -98,10 +98,10 @@ private static void createParticle(Minecraft mc, double x, double y, double z, d } private static void handleLastStandActivation(Minecraft mc, int id, Item item) { - if (mc.world == null) return;; - Entity entity = mc.world.getEntityByID(id); + if (mc.level == null) return;; + Entity entity = mc.level.getEntity(id); if (entity != null) { - mc.particles.emitParticleAtEntity(entity, ParticleTypes.TOTEM_OF_UNDYING, 30); + mc.particleEngine.createTrackingEmitter(entity, ParticleTypes.TOTEM_OF_UNDYING, 30); if (entity == mc.player) { Minecraft.getInstance().gameRenderer.displayItemActivation(new ItemStack(item)); } @@ -110,22 +110,22 @@ private static void handleLastStandActivation(Minecraft mc, int id, Item item) { private static void handleBlinkEffect(Minecraft mc, int id, float distance) { Entity entity; - if (mc.world == null || (entity = mc.world.getEntityByID(id)) == null) return; + if (mc.level == null || (entity = mc.level.getEntity(id)) == null) return; - Vector3d vec = entity.getLookVec(); + Vector3d vec = entity.getLookAngle(); Vector3d pos = entity.getEyePosition(1); for (int i = 0; i < 100; i++) { - float offset = mc.world.rand.nextFloat() ; + float offset = mc.level.random.nextFloat() ; float speed = (1F - offset) * distance; speed *= speed; - Vector3d spawnPos = pos.add(vec.mul(speed * 10, speed * 10, speed * 10)); + Vector3d spawnPos = pos.add(vec.multiply(speed * 10, speed * 10, speed * 10)); - double x = spawnPos.x + (mc.world.rand.nextGaussian() - 0.5) * offset; - double y = spawnPos.y + (mc.world.rand.nextGaussian() - 0.5) * offset; - double z = spawnPos.z + (mc.world.rand.nextGaussian() - 0.5) * offset; + double x = spawnPos.x + (mc.level.random.nextGaussian() - 0.5) * offset; + double y = spawnPos.y + (mc.level.random.nextGaussian() - 0.5) * offset; + double z = spawnPos.z + (mc.level.random.nextGaussian() - 0.5) * offset; - mc.world.addParticle(DEParticles.blink, x, y, z, vec.x * speed, vec.y * speed, vec.z * speed); + mc.level.addParticle(DEParticles.blink, x, y, z, vec.x * speed, vec.y * speed, vec.z * speed); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/network/CrystalUpdateBatcher.java b/src/main/java/com/brandon3055/draconicevolution/network/CrystalUpdateBatcher.java index 649668b5a..3572ef03b 100644 --- a/src/main/java/com/brandon3055/draconicevolution/network/CrystalUpdateBatcher.java +++ b/src/main/java/com/brandon3055/draconicevolution/network/CrystalUpdateBatcher.java @@ -57,7 +57,7 @@ public static void handleBatchedData(MCDataInput input) { continue; } - TileEntity tile = BrandonsCore.proxy.getClientWorld().getTileEntity(ID_CRYSTAL_MAP.get(update.crystalID)); + TileEntity tile = BrandonsCore.proxy.getClientWorld().getBlockEntity(ID_CRYSTAL_MAP.get(update.crystalID)); if (tile instanceof TileCrystalBase && !tile.isRemoved()) { ((TileCrystalBase) tile).receiveBatchedUpdate(update); } diff --git a/src/main/java/com/brandon3055/draconicevolution/network/DraconicNetwork.java b/src/main/java/com/brandon3055/draconicevolution/network/DraconicNetwork.java index 31f2455c4..253d15261 100644 --- a/src/main/java/com/brandon3055/draconicevolution/network/DraconicNetwork.java +++ b/src/main/java/com/brandon3055/draconicevolution/network/DraconicNetwork.java @@ -116,9 +116,9 @@ public static void sendImpactEffect(World world, BlockPos position, int i) { public static void sendLastStandActivation(LivingEntity target, Item item) { PacketCustom packet = new PacketCustom(CHANNEL, C_LAST_STAND_ACTIVATION); - packet.writeVarInt(target.getEntityId()); + packet.writeVarInt(target.getId()); packet.writeRegistryId(item); - packet.sendToChunk(target.world, target.getPosition()); + packet.sendToChunk(target.level, target.blockPosition()); } public static void sendDislocatorMessage(int id, Consumer callback) { @@ -130,9 +130,9 @@ public static void sendDislocatorMessage(int id, Consumer callback public static void sendBlinkEffect(ServerPlayerEntity player, float distance) { PacketCustom packet = new PacketCustom(CHANNEL, C_BLINK); - packet.writeVarInt(player.getEntityId()); + packet.writeVarInt(player.getId()); packet.writeFloat(distance); - packet.sendToChunk(player.world, player.getPosition()); + packet.sendToChunk(player.level, player.blockPosition()); } public static void init() { diff --git a/src/main/java/com/brandon3055/draconicevolution/network/ServerPacketHandler.java b/src/main/java/com/brandon3055/draconicevolution/network/ServerPacketHandler.java index ace3f23d6..b0c5979bc 100644 --- a/src/main/java/com/brandon3055/draconicevolution/network/ServerPacketHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/network/ServerPacketHandler.java @@ -73,8 +73,8 @@ public void handlePacket(PacketCustom packet, ServerPlayerEntity sender, IServer private void toggleDislocators(PlayerEntity player) { List dislocators = new ArrayList<>(); - for (int i = 0; i < player.inventory.getSizeInventory(); i++) { - ItemStack stack = player.inventory.getStackInSlot(i); + for (int i = 0; i < player.inventory.getContainerSize(); i++) { + ItemStack stack = player.inventory.getItem(i); if (stack.getItem() instanceof Magnet) { dislocators.add(stack); } @@ -90,7 +90,7 @@ private void toggleDislocators(PlayerEntity player) { Magnet.toggleEnabled(stack, player); boolean enabled = Magnet.isEnabled(stack); // ChatHelper.sendIndexed(player, new TranslationTextComponent("item_dislocate.draconicevolution." + (enabled ? "activate" : "deactivate")), 567); - player.sendStatusMessage(new TranslationTextComponent("item_dislocate.draconicevolution." + (enabled ? "activate" : "deactivate")).mergeStyle(enabled ? TextFormatting.GREEN : TextFormatting.RED), true); + player.displayClientMessage(new TranslationTextComponent("item_dislocate.draconicevolution." + (enabled ? "activate" : "deactivate")).withStyle(enabled ? TextFormatting.GREEN : TextFormatting.RED), true); } } @@ -163,8 +163,8 @@ private void toggleDislocators(PlayerEntity player) { // } private void moduleSlotClick(PlayerEntity player, MCDataInput input) { - if (player.openContainer instanceof ContainerModuleHost) { - ModuleGrid grid = ((ContainerModuleHost) player.openContainer).getGrid(); + if (player.containerMenu instanceof ContainerModuleHost) { + ModuleGrid grid = ((ContainerModuleHost) player.containerMenu).getGrid(); if (grid != null) { ModuleGrid.GridPos pos = grid.getCell(input.readByte(), input.readByte()); grid.cellClicked(pos, input.readByte(), input.readEnum(ClickType.class)); diff --git a/src/main/java/com/brandon3055/draconicevolution/utils/ResourceHelperDE.java b/src/main/java/com/brandon3055/draconicevolution/utils/ResourceHelperDE.java index 9775123c4..9270d9ce2 100644 --- a/src/main/java/com/brandon3055/draconicevolution/utils/ResourceHelperDE.java +++ b/src/main/java/com/brandon3055/draconicevolution/utils/ResourceHelperDE.java @@ -20,7 +20,7 @@ public class ResourceHelperDE { public static final String RESOURCE_PREFIX = DraconicEvolution.MODID.toLowerCase() + ":"; public static void bindTexture(ResourceLocation texture) { - Minecraft.getInstance().getTextureManager().bindTexture(texture); + Minecraft.getInstance().getTextureManager().bind(texture); } public static ResourceLocation getResource(String rs) { diff --git a/src/main/java/com/brandon3055/draconicevolution/world/ChaosWorldGenHandler.java b/src/main/java/com/brandon3055/draconicevolution/world/ChaosWorldGenHandler.java index b983fc0b1..3c97d7e42 100644 --- a/src/main/java/com/brandon3055/draconicevolution/world/ChaosWorldGenHandler.java +++ b/src/main/java/com/brandon3055/draconicevolution/world/ChaosWorldGenHandler.java @@ -114,8 +114,8 @@ public static boolean generateChunk(Feature feature, ISeedReade density = centerFalloff * plateauFalloff * heightMapFalloff; BlockPos pos = new BlockPos(x + closestSpawn.x, y + 64 + DEOldConfig.chaosIslandYOffset, z + closestSpawn.z); - if (density > 0.1 && (reader.isAirBlock(pos) && reader.getBlockState(pos).getBlock() != Blocks.CAVE_AIR/*DEContent.chaosShardAtmos*/)) { - reader.setBlockState(pos, (dist > 60 || dist > rand.nextInt(60)) ? Blocks.END_STONE.getDefaultState() : Blocks.OBSIDIAN.getDefaultState(), 3); + if (density > 0.1 && (reader.isEmptyBlock(pos) && reader.getBlockState(pos).getBlock() != Blocks.CAVE_AIR/*DEContent.chaosShardAtmos*/)) { + reader.setBlock(pos, (dist > 60 || dist > rand.nextInt(60)) ? Blocks.END_STONE.defaultBlockState() : Blocks.OBSIDIAN.defaultBlockState(), 3); chunkModified = true; } } @@ -147,10 +147,10 @@ public static void generateStructures(ISeedReader reader, PairXZ oRad - 3D && rand.nextDouble() * 3D < dist - (oRad - 3D)) continue; if (fillIn && (int) (Utils.getDistanceAtoB(x, z, xi, zi)) <= ringRadius) { - if ((int) dist < 9) world.setBlockState(new BlockPos(x, yi, z), DEContent.infused_obsidian.getDefaultState(), 3); - else world.setBlockState(new BlockPos(x, yi, z), Blocks.OBSIDIAN.getDefaultState(), 3); + if ((int) dist < 9) world.setBlock(new BlockPos(x, yi, z), DEContent.infused_obsidian.defaultBlockState(), 3); + else world.setBlock(new BlockPos(x, yi, z), Blocks.OBSIDIAN.defaultBlockState(), 3); } else if (!fillIn && (int) (Utils.getDistanceAtoB(x, z, xi, zi)) >= ringRadius) { - world.setBlockState(new BlockPos(x, yi, z), Blocks.OBSIDIAN.getDefaultState(), 3); + world.setBlock(new BlockPos(x, yi, z), Blocks.OBSIDIAN.defaultBlockState(), 3); } else if (!fillIn && (int) Utils.getDistanceAtoB(x, z, xi, zi) <= ringRadius) { Block b = world.getBlockState(new BlockPos(x, yi, z)).getBlock(); - if (b == Blocks.AIR || b == Blocks.END_STONE || b == Blocks.OBSIDIAN) world.setBlockState(new BlockPos(x, yi, z), /*DEContent.chaosShardAtmos*/Blocks.CAVE_AIR.getDefaultState(), 3); + if (b == Blocks.AIR || b == Blocks.END_STONE || b == Blocks.OBSIDIAN) world.setBlock(new BlockPos(x, yi, z), /*DEContent.chaosShardAtmos*/Blocks.CAVE_AIR.defaultBlockState(), 3); } } @@ -235,26 +235,26 @@ public static void generateObelisk(ServerWorld world, BlockPos genPos, Random ra for (int i = 0; i < 20; i+=3) { LightningBoltEntity entity = new LightningBoltEntity(EntityType.LIGHTNING_BOLT, world); - entity.setPosition(genPos.getX() - 2 + rand.nextInt(5), genPos.getY() - rand.nextInt(20), genPos.getZ() - 2 + rand.nextInt(5)); - world.addEntity(entity); + entity.setPos(genPos.getX() - 2 + rand.nextInt(5), genPos.getY() - rand.nextInt(20), genPos.getZ() - 2 + rand.nextInt(5)); + world.addFreshEntity(entity); } if (DEOldConfig.chaosIslandVoidMode) return; int r = 3; - BlockPos.getAllInBox(genPos.add(-r, -25, -r), genPos.add(r, 4, r)).forEach(pos -> { + BlockPos.betweenClosedStream(genPos.offset(-r, -25, -r), genPos.offset(r, 4, r)).forEach(pos -> { if (pos.getY() < genPos.getY()) { double pct = (double) (genPos.getY() - pos.getY()) / 25D; if (Utils.getDistanceAtoB(pos.getX(), pos.getZ(), genPos.getX(), genPos.getZ()) <= r + 0.5) { if (1D - pct > rand.nextDouble()) { float block = rand.nextFloat(); if (block < 0.1) { - world.setBlockState(pos, DEContent.infused_obsidian.getDefaultState(), 3); + world.setBlock(pos, DEContent.infused_obsidian.defaultBlockState(), 3); } else if (block < 0.4) { - world.setBlockState(pos, Blocks.NETHER_BRICKS.getDefaultState(), 3); + world.setBlock(pos, Blocks.NETHER_BRICKS.defaultBlockState(), 3); } else { - world.setBlockState(pos, Blocks.OBSIDIAN.getDefaultState(), 3); + world.setBlock(pos, Blocks.OBSIDIAN.defaultBlockState(), 3); } } } @@ -263,10 +263,10 @@ public static void generateObelisk(ServerWorld world, BlockPos genPos, Random ra int absRelX = Math.abs(pos.getX() - genPos.getX()); int absRelZ = Math.abs(pos.getZ() - genPos.getZ()); if ((absRelX == 2 || absRelZ == 2) && absRelX <= 2 && absRelZ <= 2 && relY < 4 && relY > -1) { - world.setBlockState(pos, Blocks.IRON_BARS.getDefaultState(), 3); + world.setBlock(pos, Blocks.IRON_BARS.defaultBlockState(), 3); } if (relY == 4 && absRelX <= 2 && absRelZ <= 2) { - world.setBlockState(pos, Blocks.NETHER_BRICK_SLAB.getDefaultState(), 3); + world.setBlock(pos, Blocks.NETHER_BRICK_SLAB.defaultBlockState(), 3); } }); diff --git a/src/main/java/com/brandon3055/draconicevolution/world/DEWorldGen.java b/src/main/java/com/brandon3055/draconicevolution/world/DEWorldGen.java index 2e6cc12b5..71469ed55 100644 --- a/src/main/java/com/brandon3055/draconicevolution/world/DEWorldGen.java +++ b/src/main/java/com/brandon3055/draconicevolution/world/DEWorldGen.java @@ -26,8 +26,8 @@ import java.util.Random; import static net.minecraft.world.gen.GenerationStage.Decoration.UNDERGROUND_ORES; -import static net.minecraft.world.gen.feature.OreFeatureConfig.FillerBlockType.BASE_STONE_NETHER; -import static net.minecraft.world.gen.feature.OreFeatureConfig.FillerBlockType.BASE_STONE_OVERWORLD; +import static net.minecraft.world.gen.feature.OreFeatureConfig.FillerBlockType.NETHER_ORE_REPLACEABLES; +import static net.minecraft.world.gen.feature.OreFeatureConfig.FillerBlockType.NATURAL_STONE; import static net.minecraftforge.fml.common.Mod.EventBusSubscriber.Bus.FORGE; /** @@ -37,7 +37,7 @@ public class DEWorldGen { private static Logger LOGGER = DraconicEvolution.LOGGER; - // public static final ConfiguredFeature ORE_IRON = register("ore_iron", Feature.ORE.withConfiguration(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.BASE_STONE_OVERWORLD, Features.States.IRON_ORE, 9)).range(64).square().func_242731_b(20)); + // public static final ConfiguredFeature ORE_IRON = register("ore_iron", Feature.ORE.withConfiguration(new OreFeatureConfig(OreFeatureConfig.FillerBlockType.BASE_STONE_OVERWORLD, Features.States.IRON_ORE, 9)).range(64).square().count(20)); public static final RuleTest BASE_STONE_END = new BlockMatchRuleTest(Blocks.END_STONE); @@ -48,29 +48,29 @@ public static void biomeLoading(BiomeLoadingEvent event) { event.getGeneration().withFeature(UNDERGROUND_ORES, Feature.ORE.withConfiguration(new OreFeatureConfig(BASE_STONE_END, DEContent.ore_draconium_end.getDefaultState(), 32)) .withPlacement(Placement.RANGE.configure(new TopSolidRangeConfig(0, 0, 80))) .square() - .func_242731_b(6)); + .count(6)); } else */if (event.getCategory() == Biome.Category.THEEND) { - event.getGeneration().withFeature(UNDERGROUND_ORES, Feature.ORE.withConfiguration(new OreFeatureConfig(BASE_STONE_END, DEContent.ore_draconium_end.getDefaultState(), 8)) - .withPlacement(Placement.RANGE.configure(new TopSolidRangeConfig(0, 0, 80))) - .square() - .func_242731_b(2)); + event.getGeneration().addFeature(UNDERGROUND_ORES, Feature.ORE.configured(new OreFeatureConfig(BASE_STONE_END, DEContent.ore_draconium_end.defaultBlockState(), 8)) + .decorated(Placement.RANGE.configured(new TopSolidRangeConfig(0, 0, 80))) + .squared() + .count(2)); - event.getGeneration().withFeature(GenerationStage.Decoration.RAW_GENERATION, new ConfiguredFeature<>(new Feature(NoFeatureConfig.field_236558_a_) { + event.getGeneration().addFeature(GenerationStage.Decoration.RAW_GENERATION, new ConfiguredFeature<>(new Feature(NoFeatureConfig.CODEC) { @Override - public boolean generate(ISeedReader reader, ChunkGenerator generator, Random rand, BlockPos pos, NoFeatureConfig config) { + public boolean place(ISeedReader reader, ChunkGenerator generator, Random rand, BlockPos pos, NoFeatureConfig config) { return ChaosWorldGenHandler.generateChunk(this, reader, generator, rand, pos); } - }, NoFeatureConfig.NO_FEATURE_CONFIG)); + }, NoFeatureConfig.NONE)); } else if (event.getCategory() == Biome.Category.NETHER) { - event.getGeneration().withFeature(UNDERGROUND_ORES, Feature.ORE.withConfiguration(new OreFeatureConfig(BASE_STONE_NETHER, DEContent.ore_draconium_nether.getDefaultState(), 16)) + event.getGeneration().addFeature(UNDERGROUND_ORES, Feature.ORE.configured(new OreFeatureConfig(NETHER_ORE_REPLACEABLES, DEContent.ore_draconium_nether.defaultBlockState(), 16)) .chance(10) - .withPlacement(Placement.RANGE.configure(new TopSolidRangeConfig(4, 4, 16)))); + .decorated(Placement.RANGE.configured(new TopSolidRangeConfig(4, 4, 16)))); } else { - event.getGeneration().withFeature(UNDERGROUND_ORES, Feature.ORE.withConfiguration(new OreFeatureConfig(BASE_STONE_OVERWORLD, DEContent.ore_draconium_overworld.getDefaultState(), 8)) + event.getGeneration().addFeature(UNDERGROUND_ORES, Feature.ORE.configured(new OreFeatureConfig(NATURAL_STONE, DEContent.ore_draconium_overworld.defaultBlockState(), 8)) .chance(10) - .withPlacement(Placement.RANGE.configure(new TopSolidRangeConfig(4, 4, 16)))); + .decorated(Placement.RANGE.configured(new TopSolidRangeConfig(4, 4, 16)))); } } } diff --git a/src/main/java/com/brandon3055/draconicevolution/world/EnergyCoreStructure.java b/src/main/java/com/brandon3055/draconicevolution/world/EnergyCoreStructure.java index 4af052bc9..8e73078eb 100644 --- a/src/main/java/com/brandon3055/draconicevolution/world/EnergyCoreStructure.java +++ b/src/main/java/com/brandon3055/draconicevolution/world/EnergyCoreStructure.java @@ -54,21 +54,21 @@ public boolean checkTier(int tier) { switch (tier) { case 1: - return structureTiers[0].checkStructure(core.getWorld(), core.getPos().add(offset)); + return structureTiers[0].checkStructure(core.getLevel(), core.getBlockPos().offset(offset)); case 2: - return structureTiers[1].checkStructure(core.getWorld(), core.getPos().add(offset)); + return structureTiers[1].checkStructure(core.getLevel(), core.getBlockPos().offset(offset)); case 3: - return structureTiers[2].checkStructure(core.getWorld(), core.getPos().add(offset)); + return structureTiers[2].checkStructure(core.getLevel(), core.getBlockPos().offset(offset)); case 4: - return structureTiers[3].checkStructure(core.getWorld(), core.getPos().add(offset)); + return structureTiers[3].checkStructure(core.getLevel(), core.getBlockPos().offset(offset)); case 5: - return structureTiers[4].checkStructure(core.getWorld(), core.getPos().add(offset)); + return structureTiers[4].checkStructure(core.getLevel(), core.getBlockPos().offset(offset)); case 6: - return structureTiers[5].checkStructure(core.getWorld(), core.getPos().add(offset)); + return structureTiers[5].checkStructure(core.getLevel(), core.getBlockPos().offset(offset)); case 7: - return structureTiers[6].checkStructure(core.getWorld(), core.getPos().add(offset)); + return structureTiers[6].checkStructure(core.getLevel(), core.getBlockPos().offset(offset)); case 8: - return structureTiers[7].checkStructure(core.getWorld(), core.getPos().add(offset)); + return structureTiers[7].checkStructure(core.getLevel(), core.getBlockPos().offset(offset)); } if (tier <= 0) { LogHelper.error("[EnergyCoreStructure] Tier value to small. As far as TileEnergyStorageCore is concerned the tiers now start at 1 not 0. This class automatically handles the conversion now"); @@ -86,28 +86,28 @@ public void placeTier(int tier) { switch (tier) { case 1: - structureTiers[0].placeStructure(core.getWorld(), core.getPos().add(offset)); + structureTiers[0].placeStructure(core.getLevel(), core.getBlockPos().offset(offset)); return; case 2: - structureTiers[1].placeStructure(core.getWorld(), core.getPos().add(offset)); + structureTiers[1].placeStructure(core.getLevel(), core.getBlockPos().offset(offset)); return; case 3: - structureTiers[2].placeStructure(core.getWorld(), core.getPos().add(offset)); + structureTiers[2].placeStructure(core.getLevel(), core.getBlockPos().offset(offset)); return; case 4: - structureTiers[3].placeStructure(core.getWorld(), core.getPos().add(offset)); + structureTiers[3].placeStructure(core.getLevel(), core.getBlockPos().offset(offset)); return; case 5: - structureTiers[4].placeStructure(core.getWorld(), core.getPos().add(offset)); + structureTiers[4].placeStructure(core.getLevel(), core.getBlockPos().offset(offset)); return; case 6: - structureTiers[5].placeStructure(core.getWorld(), core.getPos().add(offset)); + structureTiers[5].placeStructure(core.getLevel(), core.getBlockPos().offset(offset)); return; case 7: - structureTiers[6].placeStructure(core.getWorld(), core.getPos().add(offset)); + structureTiers[6].placeStructure(core.getLevel(), core.getBlockPos().offset(offset)); return; case 8: - structureTiers[7].placeStructure(core.getWorld(), core.getPos().add(offset)); + structureTiers[7].placeStructure(core.getLevel(), core.getBlockPos().offset(offset)); return; } if (tier <= 0) { @@ -141,7 +141,7 @@ else if (tier >= structureTiers.length) { LogHelper.error("[EnergyCoreStructure#placeTier] What exactly were you expecting after Tier 8? Infinity.MAX_VALUE?"); } else { - structureTiers[tier].forEachInStructure(core.getWorld(), core.getPos().add(getCoreOffset(tier + 1)), flag); + structureTiers[tier].forEachInStructure(core.getLevel(), core.getBlockPos().offset(getCoreOffset(tier + 1)), flag); } } @@ -158,7 +158,7 @@ public void forBlock(String name, World world, BlockPos pos, BlockPos startPos, //region Render Build Guide if (flag == FLAG_RENDER) { - if (world.isRemote) { + if (world.isClientSide) { renderBuildGuide(name, world, pos, startPos, flag); } } @@ -168,8 +168,8 @@ public void forBlock(String name, World world, BlockPos pos, BlockPos startPos, //region Activate else if (flag == FLAG_FORME) { - world.setBlockState(pos, DEContent.energy_core_structure.getDefaultState()); - TileEntity tile = world.getTileEntity(pos); + world.setBlockAndUpdate(pos, DEContent.energy_core_structure.defaultBlockState()); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileCoreStructure) { ((TileCoreStructure) tile).blockName.set(name); ((TileCoreStructure) tile).setController(core); @@ -181,7 +181,7 @@ else if (flag == FLAG_FORME) { //region Deactivate else if (flag == FLAG_REVERT) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileCoreStructure) { ((TileCoreStructure) tile).revert(); } @@ -203,7 +203,7 @@ private void renderBuildGuide(String name, World world, BlockPos pos, BlockPos s } BlockState atPos = world.getBlockState(pos); - boolean invalid = !world.isAirBlock(pos) && (atPos.getBlock().getRegistryName() == null || !atPos.getBlock().getRegistryName().toString().equals(name)); + boolean invalid = !world.isEmptyBlock(pos) && (atPos.getBlock().getRegistryName() == null || !atPos.getBlock().getRegistryName().toString().equals(name)); if (dist + 2 > pDist && !invalid) { return; @@ -214,14 +214,14 @@ private void renderBuildGuide(String name, World world, BlockPos pos, BlockPos s } BlockPos translation = new BlockPos(pos.getX() - startPos.getX(), pos.getY() - startPos.getY(), pos.getZ() - startPos.getZ()); - translation = translation.add(getCoreOffset(core.tier.get())); + translation = translation.offset(getCoreOffset(core.tier.get())); int alpha = 0xFF000000; if (invalid) { alpha = (int) (((Math.sin(ClientEventHandler.elapsedTicks / 20D) + 1D) / 2D) * 255D) << 24; } - BlockState state = block.getDefaultState(); + BlockState state = block.defaultBlockState(); RenderSystem.pushMatrix(); RenderSystem.translated(translation.getX(), translation.getY(), translation.getZ()); @@ -1100,7 +1100,7 @@ private MultiBlockStorage buildTierOMG() { @Override public boolean checkBlock(String name, World world, BlockPos pos) { - TileEntity tile = world.getTileEntity(pos); + TileEntity tile = world.getBlockEntity(pos); if (tile instanceof TileCoreStructure && ((TileCoreStructure) tile).blockName.get().equals(name)) { return true; } diff --git a/src/main/resources/mixins.draconicevolution.json b/src/main/resources/mixins.draconicevolution.json index 66f6516ee..da7a839c3 100644 --- a/src/main/resources/mixins.draconicevolution.json +++ b/src/main/resources/mixins.draconicevolution.json @@ -6,13 +6,8 @@ "target": "@env(DEFAULT)", "compatibilityLevel": "JAVA_8", "mixins" : [ - "PlayerEntityMixin", - "ChunkMixin", - "ChunkManagerMixin", - "ServerWorldMixin" ], "client" : [ - "ClientPlayNetHandlerMixin", "PlayerModelMixin" ] } \ No newline at end of file