From f6657f91fb04b27a6027352dbc053de50aeadca0 Mon Sep 17 00:00:00 2001 From: Frank Date: Sat, 4 Dec 2021 14:07:15 +0100 Subject: [PATCH 01/23] gradlew update to 7.3 --- gradle/wrapper/gradle-wrapper.jar | Bin 58694 -> 59536 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 269 ++++++++++++++--------- gradlew.bat | 22 +- 4 files changed, 165 insertions(+), 128 deletions(-) diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 490fda8577df6c95960ba7077c43220e5bb2c0d9..7454180f2ae8848c63b8b4dea2cb829da983f2fa 100644 GIT binary patch delta 18415 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 Urq<#=aDw0M@QwXVor~800LZTgC;$Ke delta 17336 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 N`17riu>%}n>@TnYCZ_-Z diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 69a97150..e750102e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 2fe81a7d..1b6c7873 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ -#!/usr/bin/env sh +#!/bin/sh # -# Copyright 2015 the original author or authors. +# Copyright © 2015-2021 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,78 +17,113 @@ # ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## # 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 +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >/dev/null -APP_HOME="`pwd -P`" -cd "$SAVED" >/dev/null + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +APP_BASE_NAME=${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" +MAX_FD=maximum warn () { echo "$*" -} +} >&2 die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; - NONSTOP* ) - nonstop=true - ;; +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -97,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -105,79 +140,95 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin or MSYS, switch paths to Windows format before running java -if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - JAVACMD=`cygpath --unix "$JAVACMD"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=`expr $i + 1` - done - case $i in - 0) set -- ;; - 1) set -- "$args0" ;; - 2) set -- "$args0" "$args1" ;; - 3) set -- "$args0" "$args1" "$args2" ;; - 4) set -- "$args0" "$args1" "$args2" "$args3" ;; - 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" esac fi -# Escape application args -save () { - for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done - echo " " -} -APP_ARGS=`save "$@"` +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. -# 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" +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 9109989e..ac1b06f9 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if "%ERRORLEVEL%" == "0" goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -54,7 +54,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -64,28 +64,14 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell From a345be1b3e8a3e29d928ddcaff9587393819471e Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 13 Jan 2022 17:04:22 +0300 Subject: [PATCH 02/23] Fix island distance (#381) --- gradle.properties | 2 +- src/main/java/ru/betterend/BetterEnd.java | 2 +- .../world/generator/GeneratorOptions.java | 16 ++++++---------- .../betterend/world/generator/IslandLayer.java | 7 ++----- .../features/EternalPortalStructure.java | 6 +++--- src/main/resources/fabric.mod.json | 2 +- 6 files changed, 14 insertions(+), 21 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5f1354b6..3b513a2d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,6 +19,6 @@ archives_base_name=better-end # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api patchouli_version = 55-FABRIC-SNAPSHOT -bclib_version = 1.2.0 +bclib_version = 1.2.3 rei_version = 7.0.343 canvas_version = 1.0.+ diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index 40e6c306..a83d725d 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -66,7 +66,7 @@ public class BetterEnd implements ModInitializer { ru.bclib.world.generator.GeneratorOptions.setFarEndBiomes(GeneratorOptions.getIslandDistBlock()); ru.bclib.world.generator.GeneratorOptions.setEndLandFunction((pos) -> TerrainGenerator.isLand(pos.x, pos.y)); } - + BiomeAPI.registerEndBiomeModification((biomeID, biome) -> { if (!biomeID.equals(Biomes.THE_VOID.location())) { EndStructures.addBiomeStructures(biomeID, biome); diff --git a/src/main/java/ru/betterend/world/generator/GeneratorOptions.java b/src/main/java/ru/betterend/world/generator/GeneratorOptions.java index 79f0850d..35f2a85f 100644 --- a/src/main/java/ru/betterend/world/generator/GeneratorOptions.java +++ b/src/main/java/ru/betterend/world/generator/GeneratorOptions.java @@ -10,7 +10,6 @@ public class GeneratorOptions { private static boolean hasPillars; private static boolean hasDragonFights; private static boolean changeChorusPlant; - private static boolean removeChorusFromVanillaBiomes; private static boolean newGenerator; private static boolean generateCentralIsland; private static boolean generateObsidianPlatform; @@ -25,6 +24,7 @@ public class GeneratorOptions { private static int islandDistChunk; private static boolean directSpikeHeight; private static int circleRadius = 1000; + private static int circleRadiusSqr; public static void init() { biomeSizeCaves = Configs.GENERATOR_CONFIG.getInt("biomeMap", "biomeSizeCaves", 32); @@ -32,11 +32,6 @@ public class GeneratorOptions { hasPillars = Configs.GENERATOR_CONFIG.getBoolean("spikes", "hasSpikes", true); hasDragonFights = Configs.GENERATOR_CONFIG.getBooleanRoot("hasDragonFights", true); changeChorusPlant = Configs.GENERATOR_CONFIG.getBoolean("chorusPlant", "changeChorusPlant", true); - removeChorusFromVanillaBiomes = Configs.GENERATOR_CONFIG.getBoolean( - "chorusPlant", - "removeChorusFromVanillaBiomes", - true - ); newGenerator = Configs.GENERATOR_CONFIG.getBoolean("customGenerator", "useNewGenerator", true); generateCentralIsland = Configs.GENERATOR_CONFIG.getBoolean("customGenerator", "generateCentralIsland", true); endCityFailChance = Configs.GENERATOR_CONFIG.getInt("customGenerator", "endCityFailChance", 5); @@ -77,6 +72,7 @@ public class GeneratorOptions { replacePortal = Configs.GENERATOR_CONFIG.getBoolean("portal", "customEndPortal", true); replacePillars = Configs.GENERATOR_CONFIG.getBoolean("spikes", "customObsidianSpikes", true); circleRadius = Configs.GENERATOR_CONFIG.getInt("customGenerator", "voidRingSize", 1000); + circleRadiusSqr = circleRadius * circleRadius; islandDistChunk = (circleRadius >> 3); // Twice bigger than normal } @@ -100,10 +96,6 @@ public class GeneratorOptions { return changeChorusPlant; } - public static boolean removeChorusFromVanillaBiomes() { - return removeChorusFromVanillaBiomes; - } - public static boolean useNewGenerator() { return newGenerator; } @@ -140,6 +132,10 @@ public class GeneratorOptions { return circleRadius; } + public static int getIslandDistBlockSqr() { + return circleRadiusSqr; + } + public static int getIslandDistChunk() { return islandDistChunk; } diff --git a/src/main/java/ru/betterend/world/generator/IslandLayer.java b/src/main/java/ru/betterend/world/generator/IslandLayer.java index 76c7a735..94e7fcb1 100644 --- a/src/main/java/ru/betterend/world/generator/IslandLayer.java +++ b/src/main/java/ru/betterend/world/generator/IslandLayer.java @@ -41,10 +41,7 @@ public class IslandLayer { SDF coneBottom = new SDFSmoothUnion().setRadius(0.02F).setSourceA(cone1).setSourceB(cone2); SDF coneTop = new SDFSmoothUnion().setRadius(0.02F).setSourceA(cone3).setSourceB(cone4); - noise = (SDFRadialNoiseMap) new SDFRadialNoiseMap().setSeed(seed) - .setRadius(0.5F) - .setIntensity(0.2F) - .setSource(coneTop); + noise = (SDFRadialNoiseMap) new SDFRadialNoiseMap().setSeed(seed).setRadius(0.5F).setIntensity(0.2F).setSource(coneTop); island = new SDFSmoothUnion().setRadius(0.01F).setSourceA(noise).setSourceB(coneBottom); } @@ -87,7 +84,7 @@ public class IslandLayer { for (int n = 0; n < count; n++) { BlockPos pos = positions.get(n); long d = (long) pos.getX() * (long) pos.getX() + (long) pos.getZ() * (long) pos.getZ(); - if (d < GeneratorOptions.getIslandDistBlock()) { + if (d < GeneratorOptions.getIslandDistBlockSqr()) { positions.remove(n); count--; n--; diff --git a/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java b/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java index dd27ed41..54cf4d2e 100644 --- a/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java +++ b/src/main/java/ru/betterend/world/structures/features/EternalPortalStructure.java @@ -25,9 +25,9 @@ public class EternalPortalStructure extends FeatureBaseStructure { public EternalPortalStructure() { super(PieceGeneratorSupplier.simple( - EternalPortalStructure::checkLocation, - EternalPortalStructure::generatePieces - )); + EternalPortalStructure::checkLocation, + EternalPortalStructure::generatePieces) + ); } protected static boolean checkLocation(PieceGeneratorSupplier.Context context) { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index c674a170..bd1107a6 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -46,7 +46,7 @@ "fabricloader": ">=0.12.9", "fabric": ">=0.44.0", "minecraft": "1.18.x", - "bclib": ">=1.2.0" + "bclib": ">=1.2.3" }, "suggests": { "byg": ">=1.1.3", From 6b27fba2428637ac98eca7f62fb135033ea72164 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Thu, 13 Jan 2022 17:07:43 +0300 Subject: [PATCH 03/23] Jitpack update (#391) --- jitpack.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/jitpack.yml b/jitpack.yml index b0b045eb..e8af8cfd 100644 --- a/jitpack.yml +++ b/jitpack.yml @@ -2,5 +2,5 @@ before_install: - source "$HOME/.sdkman/bin/sdkman-init.sh" - sdk update - - sdk install java 16.0.1.hs-adpt - - sdk use java 16.0.1.hs-adpt \ No newline at end of file + - sdk install java 17.0.1-tem + - sdk use java 17.0.1-tem \ No newline at end of file From dc271f08a58f322bed616770e37d6c2cb8238ec9 Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 17 Jan 2022 14:09:13 +0100 Subject: [PATCH 04/23] Adopted Changes to `BCLBiomeBuilder`(paulevsGitch/BCLib#63) --- src/main/java/ru/betterend/world/biome/EndBiome.java | 10 +++++----- .../world/biome/cave/EmptyAuroraCaveBiome.java | 10 +++++----- .../betterend/world/biome/cave/EmptyEndCaveBiome.java | 8 +++++--- .../world/biome/cave/EmptySmaragdantCaveBiome.java | 10 +++++----- .../ru/betterend/world/biome/cave/EndCaveBiome.java | 9 +++++---- .../ru/betterend/world/biome/cave/JadeCaveBiome.java | 10 +++++----- .../world/biome/cave/LushAuroraCaveBiome.java | 10 +++++----- .../world/biome/cave/LushSmaragdantCaveBiome.java | 10 +++++----- 8 files changed, 40 insertions(+), 37 deletions(-) diff --git a/src/main/java/ru/betterend/world/biome/EndBiome.java b/src/main/java/ru/betterend/world/biome/EndBiome.java index 7e0601d4..25c27a65 100644 --- a/src/main/java/ru/betterend/world/biome/EndBiome.java +++ b/src/main/java/ru/betterend/world/biome/EndBiome.java @@ -10,18 +10,18 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.SurfaceRules; import ru.bclib.api.biomes.BCLBiomeBuilder; +import ru.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier; import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.api.surface.SurfaceRuleBuilder; import ru.bclib.interfaces.SurfaceMaterialProvider; import ru.bclib.world.biomes.BCLBiome; +import ru.bclib.world.biomes.BCLBiomeSettings; import ru.betterend.BetterEnd; import ru.betterend.interfaces.StructureFeaturesAccessor; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; -import java.util.function.BiFunction; - public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { public static class DefaultSurfaceMaterialProvider implements SurfaceMaterialProvider{ public static final BlockState END_STONE = Blocks.END_STONE.defaultBlockState(); @@ -85,7 +85,7 @@ public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { protected abstract void addCustomBuildData(BCLBiomeBuilder builder); - public BiFunction getSupplier(){ + public BiomeSupplier getSupplier(){ return EndBiome::new; } @@ -98,8 +98,8 @@ public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { } } - public EndBiome(ResourceLocation biomeID, Biome biome) { - super(biomeID, biome); + public EndBiome(ResourceLocation biomeID, Biome biome, BCLBiomeSettings settings) { + super(biomeID, biome, settings); } public static EndBiome create(Config biomeConfig){ diff --git a/src/main/java/ru/betterend/world/biome/cave/EmptyAuroraCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/EmptyAuroraCaveBiome.java index b7b0bdc5..8d6dbdb4 100644 --- a/src/main/java/ru/betterend/world/biome/cave/EmptyAuroraCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/EmptyAuroraCaveBiome.java @@ -2,16 +2,16 @@ package ru.betterend.world.biome.cave; import net.minecraft.resources.ResourceLocation; import ru.bclib.api.biomes.BCLBiomeBuilder; +import ru.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier; +import ru.bclib.world.biomes.BCLBiomeSettings; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.world.biome.EndBiome; -import java.util.function.BiFunction; - public class EmptyAuroraCaveBiome extends EndCaveBiome.Config { public static class Biome extends EndCaveBiome { - public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) { - super(biomeID, biome); + public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome, BCLBiomeSettings settings) { + super(biomeID, biome, settings); this.addFloorFeature(EndFeatures.BIG_AURORA_CRYSTAL, 1); @@ -44,7 +44,7 @@ public class EmptyAuroraCaveBiome extends EndCaveBiome.Config { } @Override - public BiFunction getSupplier() { + public BiomeSupplier getSupplier() { return EmptyAuroraCaveBiome.Biome::new; } } diff --git a/src/main/java/ru/betterend/world/biome/cave/EmptyEndCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/EmptyEndCaveBiome.java index 4adf3ece..d6e1b52c 100644 --- a/src/main/java/ru/betterend/world/biome/cave/EmptyEndCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/EmptyEndCaveBiome.java @@ -2,6 +2,8 @@ package ru.betterend.world.biome.cave; import net.minecraft.resources.ResourceLocation; import ru.bclib.api.biomes.BCLBiomeBuilder; +import ru.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier; +import ru.bclib.world.biomes.BCLBiomeSettings; import ru.betterend.registry.EndFeatures; import ru.betterend.world.biome.EndBiome; @@ -9,8 +11,8 @@ import java.util.function.BiFunction; public class EmptyEndCaveBiome extends EndCaveBiome.Config { public static class Biome extends EndCaveBiome { - public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) { - super(biomeID, biome); + public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome, BCLBiomeSettings settings) { + super(biomeID, biome, settings); this.addFloorFeature(EndFeatures.END_STONE_STALAGMITE, 1); this.addCeilFeature(EndFeatures.END_STONE_STALACTITE, 1); @@ -38,7 +40,7 @@ public class EmptyEndCaveBiome extends EndCaveBiome.Config { } @Override - public BiFunction getSupplier() { + public BiomeSupplier getSupplier() { return Biome::new; } } diff --git a/src/main/java/ru/betterend/world/biome/cave/EmptySmaragdantCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/EmptySmaragdantCaveBiome.java index 38a1b643..a90d3536 100644 --- a/src/main/java/ru/betterend/world/biome/cave/EmptySmaragdantCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/EmptySmaragdantCaveBiome.java @@ -2,16 +2,16 @@ package ru.betterend.world.biome.cave; import net.minecraft.resources.ResourceLocation; import ru.bclib.api.biomes.BCLBiomeBuilder; +import ru.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier; +import ru.bclib.world.biomes.BCLBiomeSettings; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.world.biome.EndBiome; -import java.util.function.BiFunction; - public class EmptySmaragdantCaveBiome extends EndCaveBiome.Config { public static class Biome extends EndCaveBiome { - public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) { - super(biomeID, biome); + public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome, BCLBiomeSettings settings) { + super(biomeID, biome, settings); this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL, 1); this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL_SHARD, 20); @@ -45,7 +45,7 @@ public class EmptySmaragdantCaveBiome extends EndCaveBiome.Config { } @Override - public BiFunction getSupplier() { + public BiomeSupplier getSupplier() { return EmptySmaragdantCaveBiome.Biome::new; } } diff --git a/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java index 0b1a1db3..d1047305 100644 --- a/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/EndCaveBiome.java @@ -8,8 +8,10 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.GenerationStep; import net.minecraft.world.level.levelgen.feature.Feature; import ru.bclib.api.biomes.BCLBiomeBuilder; +import ru.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier; import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.util.WeightedList; +import ru.bclib.world.biomes.BCLBiomeSettings; import ru.bclib.world.features.BCLFeature; import ru.betterend.BetterEnd; import ru.betterend.registry.EndSounds; @@ -17,7 +19,6 @@ import ru.betterend.world.biome.EndBiome; import ru.betterend.world.features.terrain.caves.CaveChunkPopulatorFeature; import java.util.Random; -import java.util.function.BiFunction; public class EndCaveBiome extends EndBiome { public static abstract class Config extends EndBiome.Config { @@ -45,7 +46,7 @@ public class EndCaveBiome extends EndBiome { } @Override - public BiFunction getSupplier() { + public BiomeSupplier getSupplier() { return EndCaveBiome::new; } } @@ -53,8 +54,8 @@ public class EndCaveBiome extends EndBiome { private WeightedList> floorFeatures = new WeightedList>(); private WeightedList> ceilFeatures = new WeightedList>(); - public EndCaveBiome(ResourceLocation biomeID, Biome biome) { - super(biomeID, biome); + public EndCaveBiome(ResourceLocation biomeID, Biome biome, BCLBiomeSettings settings) { + super(biomeID, biome, settings); } public void addFloorFeature(Feature feature, float weight) { diff --git a/src/main/java/ru/betterend/world/biome/cave/JadeCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/JadeCaveBiome.java index 90382c99..39e22937 100644 --- a/src/main/java/ru/betterend/world/biome/cave/JadeCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/JadeCaveBiome.java @@ -5,20 +5,20 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.level.block.state.BlockState; import ru.bclib.api.biomes.BCLBiomeBuilder; +import ru.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier; +import ru.bclib.world.biomes.BCLBiomeSettings; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.world.biome.EndBiome; -import java.util.function.BiFunction; - public class JadeCaveBiome extends EndCaveBiome.Config { public static class Biome extends EndCaveBiome { private static final OpenSimplexNoise WALL_NOISE = new OpenSimplexNoise("jade_cave".hashCode()); private static final OpenSimplexNoise DEPTH_NOISE = new OpenSimplexNoise("depth_noise".hashCode()); private static final BlockState[] JADE = new BlockState[3]; - public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) { - super(biomeID, biome); + public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome, BCLBiomeSettings settings) { + super(biomeID, biome, settings); JADE[0] = EndBlocks.VIRID_JADESTONE.stone.defaultBlockState(); JADE[1] = EndBlocks.AZURE_JADESTONE.stone.defaultBlockState(); @@ -47,7 +47,7 @@ public class JadeCaveBiome extends EndCaveBiome.Config { } @Override - public BiFunction getSupplier() { + public BiomeSupplier getSupplier() { return JadeCaveBiome.Biome::new; } } diff --git a/src/main/java/ru/betterend/world/biome/cave/LushAuroraCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/LushAuroraCaveBiome.java index 95518656..fd452ad1 100644 --- a/src/main/java/ru/betterend/world/biome/cave/LushAuroraCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/LushAuroraCaveBiome.java @@ -4,19 +4,19 @@ import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.state.BlockState; import ru.bclib.api.biomes.BCLBiomeBuilder; +import ru.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier; import ru.bclib.blocks.BlockProperties; import ru.bclib.interfaces.SurfaceMaterialProvider; +import ru.bclib.world.biomes.BCLBiomeSettings; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.world.biome.EndBiome; -import java.util.function.BiFunction; - public class LushAuroraCaveBiome extends EndCaveBiome.Config { public static class Biome extends EndCaveBiome { - public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) { - super(biomeID, biome); + public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome, BCLBiomeSettings settings) { + super(biomeID, biome, settings); this.addFloorFeature(EndFeatures.BIG_AURORA_CRYSTAL, 1); this.addFloorFeature(EndFeatures.CAVE_BUSH, 5); @@ -63,7 +63,7 @@ public class LushAuroraCaveBiome extends EndCaveBiome.Config { } @Override - public BiFunction getSupplier() { + public BiomeSupplier getSupplier() { return LushAuroraCaveBiome.Biome::new; } diff --git a/src/main/java/ru/betterend/world/biome/cave/LushSmaragdantCaveBiome.java b/src/main/java/ru/betterend/world/biome/cave/LushSmaragdantCaveBiome.java index 6674466b..240e7a52 100644 --- a/src/main/java/ru/betterend/world/biome/cave/LushSmaragdantCaveBiome.java +++ b/src/main/java/ru/betterend/world/biome/cave/LushSmaragdantCaveBiome.java @@ -3,18 +3,18 @@ package ru.betterend.world.biome.cave; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.state.BlockState; import ru.bclib.api.biomes.BCLBiomeBuilder; +import ru.bclib.api.biomes.BCLBiomeBuilder.BiomeSupplier; import ru.bclib.interfaces.SurfaceMaterialProvider; +import ru.bclib.world.biomes.BCLBiomeSettings; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndParticles; import ru.betterend.world.biome.EndBiome; -import java.util.function.BiFunction; - public class LushSmaragdantCaveBiome extends EndCaveBiome.Config { public static class Biome extends EndCaveBiome { - public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome) { - super(biomeID, biome); + public Biome(ResourceLocation biomeID, net.minecraft.world.level.biome.Biome biome, BCLBiomeSettings settings) { + super(biomeID, biome, settings); this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL, 1); this.addFloorFeature(EndFeatures.SMARAGDANT_CRYSTAL_SHARD, 20); @@ -48,7 +48,7 @@ public class LushSmaragdantCaveBiome extends EndCaveBiome.Config { } @Override - public BiFunction getSupplier() { + public BiomeSupplier getSupplier() { return LushSmaragdantCaveBiome.Biome::new; } From 5d765d38777e6348dbe9440c048ff91c8d324f90 Mon Sep 17 00:00:00 2001 From: Frank Date: Tue, 18 Jan 2022 17:39:02 +0100 Subject: [PATCH 05/23] Version update --- gradle.properties | 4 ++-- src/main/resources/fabric.mod.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 3b513a2d..026a0650 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ loader_version=0.12.12 loom_version=0.10-SNAPSHOT # Mod Properties -mod_version=1.0.0 +mod_version=1.0.1 maven_group=ru.betterend archives_base_name=better-end @@ -19,6 +19,6 @@ archives_base_name=better-end # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api patchouli_version = 55-FABRIC-SNAPSHOT -bclib_version = 1.2.3 +bclib_version = 1.2.5 rei_version = 7.0.343 canvas_version = 1.0.+ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index bd1107a6..0ff26b83 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -46,7 +46,7 @@ "fabricloader": ">=0.12.9", "fabric": ">=0.44.0", "minecraft": "1.18.x", - "bclib": ">=1.2.3" + "bclib": ">=1.2.5" }, "suggests": { "byg": ">=1.1.3", From 2892e6fa11d1979df9c2f3350a265fca1edb9ab0 Mon Sep 17 00:00:00 2001 From: Frank Date: Wed, 19 Jan 2022 23:25:23 +0100 Subject: [PATCH 06/23] Updated gradle script (might help with #376) --- build.gradle | 62 ++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/build.gradle b/build.gradle index 93c749ef..629e5698 100644 --- a/build.gradle +++ b/build.gradle @@ -5,8 +5,6 @@ buildscript { } plugins { - id 'idea' - id 'eclipse' id 'fabric-loom' version "${loom_version}" id 'maven-publish' } @@ -86,17 +84,11 @@ def useApi(String dep) { } processResources { - inputs.property "version", project.version - duplicatesStrategy = 'WARN' - - from(sourceSets.main.resources.srcDirs) { - include "fabric.mod.json" - expand "version": project.version - } - - from(sourceSets.main.resources.srcDirs) { - exclude "fabric.mod.json" - } + println "Version: ${project.version}" + inputs.property "version", project.version + filesMatching("fabric.mod.json") { + expand "version": project.version + } } // ensure that the encoding is set to UTF-8, no matter what the system default is @@ -104,6 +96,7 @@ processResources { // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html tasks.withType(JavaCompile) { options.encoding = "UTF-8" + it.options.release = 17 } javadoc { @@ -123,6 +116,13 @@ task sourcesJar(type: Jar, dependsOn: classes) { from sourceSets.main.allSource } +java { + // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task + // if it is present. + // If you remove this line, sources will not be generated. + withSourcesJar() +} + jar { from "LICENSE" } @@ -159,21 +159,21 @@ task release(dependsOn: [remapJar, sourcesJar, javadocJar]) { } // configure the maven publication -//publishing { -// publications { -// mavenJava(MavenPublication) { -// artifact(remapJar) { -// builtBy remapJar -// } -// artifact(sourcesJar) { -// builtBy remapSourcesJar -// } -// } -// } -// -// // select the repositories you want to publish to -// repositories { -// // uncomment to publish to the local maven -// // mavenLocal() -// } -//} \ No newline at end of file +publishing { + publications { + mavenJava(MavenPublication) { + artifact(remapJar) { + builtBy remapJar + } + artifact(sourcesJar) { + builtBy remapSourcesJar + } + } + } + + // select the repositories you want to publish to + repositories { + // uncomment to publish to the local maven + // mavenLocal() + } +} \ No newline at end of file From 4b27f00eb601a5ace57c10cfa2643c17b0050274 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 20 Jan 2022 19:39:49 +0100 Subject: [PATCH 07/23] Added Codecs for SurfaceRule Objects (paulevsGitch/BetterNether#503) --- .../world/surface/SplitNoiseCondition.java | 15 +++++++++++++++ .../surface/SulphuricSurfaceNoiseCondition.java | 15 +++++++++++++++ .../world/surface/UmbraSurfaceNoiseCondition.java | 15 +++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java b/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java index d3e6aa4e..179b30cc 100644 --- a/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/SplitNoiseCondition.java @@ -1,14 +1,20 @@ package ru.betterend.world.surface; +import com.mojang.serialization.Codec; +import net.minecraft.core.Registry; import ru.bclib.interfaces.NumericProvider; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; import ru.bclib.util.MHelper; +import ru.betterend.BetterEnd; import ru.betterend.noise.OpenSimplexNoise; /** * Noise source that returns a value in [0, 1] */ public class SplitNoiseCondition implements NumericProvider { + public static final SplitNoiseCondition DEFAULT = new SplitNoiseCondition(); + public static final Codec CODEC = Codec.BYTE.fieldOf("split_noise").xmap((obj)->DEFAULT, obj -> (byte)0).codec(); + private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(4141); @Override @@ -18,4 +24,13 @@ public class SplitNoiseCondition implements NumericProvider { float noise = (float) NOISE.eval(x * 0.1, z * 0.1) + MHelper.randRange(-0.4F, 0.4F, MHelper.RANDOM); return noise > 0 ? 1 : 0; } + + @Override + public Codec pcodec() { + return CODEC; + } + + static { + Registry.register(NumericProvider.NUMERIC_PROVIDER , BetterEnd.makeID("split_noise"), SplitNoiseCondition.CODEC); + } } diff --git a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java index 1ad16c08..70159892 100644 --- a/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/SulphuricSurfaceNoiseCondition.java @@ -1,14 +1,20 @@ package ru.betterend.world.surface; +import com.mojang.serialization.Codec; +import net.minecraft.core.Registry; import ru.bclib.interfaces.NumericProvider; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; import ru.bclib.util.MHelper; +import ru.betterend.BetterEnd; import ru.betterend.noise.OpenSimplexNoise; /** * Noise source that returns a value in [0, 3] */ public class SulphuricSurfaceNoiseCondition implements NumericProvider { + public static final SulphuricSurfaceNoiseCondition DEFAULT = new SulphuricSurfaceNoiseCondition(); + public static final Codec CODEC = Codec.BYTE.fieldOf("sulphuric_surf").xmap((obj)->DEFAULT, obj -> (byte)0).codec(); + private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(5123); @Override @@ -21,4 +27,13 @@ public class SulphuricSurfaceNoiseCondition implements NumericProvider { if (value < 0.5) return 2; return 3; } + + @Override + public Codec pcodec() { + return CODEC; + } + + static { + Registry.register(NumericProvider.NUMERIC_PROVIDER , BetterEnd.makeID("sulphuric_surf"), SulphuricSurfaceNoiseCondition.CODEC); + } } diff --git a/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java b/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java index 83fea882..4cc3f8d7 100644 --- a/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java +++ b/src/main/java/ru/betterend/world/surface/UmbraSurfaceNoiseCondition.java @@ -1,14 +1,20 @@ package ru.betterend.world.surface; +import com.mojang.serialization.Codec; +import net.minecraft.core.Registry; import ru.bclib.interfaces.NumericProvider; import ru.bclib.mixin.common.SurfaceRulesContextAccessor; import ru.bclib.util.MHelper; +import ru.betterend.BetterEnd; import ru.betterend.noise.OpenSimplexNoise; /** * Noise source that returns a value in [0, 4] */ public class UmbraSurfaceNoiseCondition implements NumericProvider { + public static final UmbraSurfaceNoiseCondition DEFAULT = new UmbraSurfaceNoiseCondition(); + public static final Codec CODEC = Codec.BYTE.fieldOf("umbra_srf").xmap((obj)->DEFAULT, obj -> (byte)0).codec(); + private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(1512); @Override @@ -26,4 +32,13 @@ public class UmbraSurfaceNoiseCondition implements NumericProvider { if (value > -0.4) return 3; return 4; } + + @Override + public Codec pcodec() { + return CODEC; + } + + static { + Registry.register(NumericProvider.NUMERIC_PROVIDER , BetterEnd.makeID("umbra_srf"), UmbraSurfaceNoiseCondition.CODEC); + } } From e6ca1220a2172bdd15e77a187747a09c9abf9d0c Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 20 Jan 2022 19:40:38 +0100 Subject: [PATCH 08/23] Version/Dependency update --- gradle.properties | 4 ++-- src/main/resources/fabric.mod.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 026a0650..1c39273b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,7 +11,7 @@ loader_version=0.12.12 loom_version=0.10-SNAPSHOT # Mod Properties -mod_version=1.0.1 +mod_version=1.0.2 maven_group=ru.betterend archives_base_name=better-end @@ -19,6 +19,6 @@ archives_base_name=better-end # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api patchouli_version = 55-FABRIC-SNAPSHOT -bclib_version = 1.2.5 +bclib_version = 1.3.0 rei_version = 7.0.343 canvas_version = 1.0.+ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 0ff26b83..6192c96b 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -46,7 +46,7 @@ "fabricloader": ">=0.12.9", "fabric": ">=0.44.0", "minecraft": "1.18.x", - "bclib": ">=1.2.5" + "bclib": ">=1.3.0" }, "suggests": { "byg": ">=1.1.3", From a1c87165aea7aa0581684ee832310036eba1909d Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 23 Jan 2022 22:32:25 +0100 Subject: [PATCH 09/23] Adopted new TagAPI --- .../betterend/blocks/AuroraCrystalBlock.java | 4 +- .../betterend/blocks/BulbVineSeedBlock.java | 4 +- .../ru/betterend/blocks/EndLilySeedBlock.java | 4 +- .../betterend/blocks/EndLotusSeedBlock.java | 4 +- .../blocks/HelixTreeLeavesBlock.java | 5 +- .../ru/betterend/blocks/HydraluxBlock.java | 4 +- .../ru/betterend/blocks/LumecornBlock.java | 4 +- .../blocks/MossyGlowshroomCapBlock.java | 8 +- .../blocks/NeonCactusPlantBlock.java | 4 +- .../blocks/SmallJellyshroomBlock.java | 4 +- .../betterend/blocks/basis/EndPlantBlock.java | 4 +- .../blocks/basis/EndPlantWithAgeBlock.java | 4 +- .../blocks/basis/EndUnderwaterPlantBlock.java | 4 +- .../basis/EndUnderwaterWallPlantBlock.java | 4 +- .../blocks/basis/EndWallMushroom.java | 4 +- .../blocks/basis/EndWallPlantBlock.java | 4 +- .../ru/betterend/blocks/basis/FurBlock.java | 7 +- .../CrystalSubblocksMaterial.java | 20 ++--- .../complexmaterials/MetalMaterial.java | 24 +++--- .../complexmaterials/StoneMaterial.java | 34 ++++---- .../ru/betterend/entity/EndSlimeEntity.java | 4 +- .../integration/EnderscapeIntegration.java | 7 +- .../integration/NourishIntegration.java | 20 ++--- .../integration/byg/BYGIntegration.java | 2 +- .../byg/features/BigEtherTreeFeature.java | 8 +- .../NightshadeRedwoodTreeFeature.java | 6 +- .../byg/features/OldBulbisTreeFeature.java | 11 +-- .../ru/betterend/item/tool/EndHammerItem.java | 6 +- .../mixin/common/ChorusFlowerBlockMixin.java | 7 +- .../mixin/common/ChorusPlantBlockMixin.java | 8 +- .../mixin/common/EnchantmentMenuMixin.java | 14 ++-- .../ru/betterend/recipe/CraftingRecipes.java | 4 +- .../java/ru/betterend/registry/EndTags.java | 84 ++++++++++--------- .../ru/betterend/util/StructureErode.java | 9 +- .../world/features/CavePumpkinFeature.java | 4 +- .../world/features/CrashedShipFeature.java | 4 +- .../world/features/ScatterFeature.java | 4 +- .../world/features/bushes/BushFeature.java | 6 +- .../features/bushes/BushWithOuterFeature.java | 6 +- .../bushes/LargeAmaranitaFeature.java | 4 +- .../world/features/bushes/Lumecorn.java | 4 +- .../features/bushes/TenaneaBushFeature.java | 4 +- .../world/features/terrain/ArchFeature.java | 4 +- .../terrain/BigAuroraCrystalFeature.java | 6 +- .../features/terrain/DesertLakeFeature.java | 12 +-- .../features/terrain/EndLakeFeature.java | 10 +-- .../features/terrain/FallenPillarFeature.java | 6 +- .../world/features/terrain/GeyserFeature.java | 12 +-- .../terrain/ObsidianBoulderFeature.java | 8 +- .../ObsidianPillarBasementFeature.java | 6 +- .../features/terrain/SingleBlockFeature.java | 4 +- .../terrain/SmaragdantCrystalFeature.java | 6 +- .../world/features/terrain/SpireFeature.java | 8 +- .../features/terrain/StalactiteFeature.java | 4 +- .../terrain/SulphuricCaveFeature.java | 12 +-- .../terrain/SulphuricLakeFeature.java | 10 +-- .../features/terrain/SurfaceVentFeature.java | 6 +- .../features/terrain/ThinArchFeature.java | 4 +- .../caves/CaveChunkPopulatorFeature.java | 6 +- .../terrain/caves/EndCaveFeature.java | 12 +-- .../terrain/caves/RoundCaveFeature.java | 4 +- .../terrain/caves/TunelCaveFeature.java | 8 +- .../features/trees/DragonTreeFeature.java | 6 +- .../trees/GiganticAmaranitaFeature.java | 2 +- .../features/trees/JellyshroomFeature.java | 6 +- .../features/trees/LacugroveFeature.java | 8 +- .../world/features/trees/LucerniaFeature.java | 6 +- .../trees/MossyGlowshroomFeature.java | 2 +- .../trees/PythadendronTreeFeature.java | 2 +- .../world/features/trees/TenaneaFeature.java | 2 +- .../features/trees/UmbrellaTreeFeature.java | 6 +- .../world/structures/piece/CavePiece.java | 4 +- .../piece/CrystalMountainPiece.java | 5 +- .../world/structures/piece/LakePiece.java | 4 +- 74 files changed, 300 insertions(+), 281 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java b/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java index f36efa2f..7ffb9212 100644 --- a/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java +++ b/src/main/java/ru/betterend/blocks/AuroraCrystalBlock.java @@ -20,7 +20,7 @@ import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonItemTags; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.interfaces.CustomColorProvider; import ru.bclib.interfaces.RenderLayerProvider; @@ -39,7 +39,7 @@ public class AuroraCrystalBlock extends AbstractGlassBlock implements RenderLaye super(FabricBlockSettings .of(Material.GLASS) .breakByTool(FabricToolTags.PICKAXES) - .breakByTool(TagAPI.ITEM_HAMMERS) + .breakByTool(CommonItemTags.HAMMERS) .hardness(1F) .resistance(1F) .luminance(15) diff --git a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java index 00bd9485..7ef8f7eb 100644 --- a/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/BulbVineSeedBlock.java @@ -5,7 +5,7 @@ import net.minecraft.tags.BlockTags; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BlockProperties; import ru.bclib.blocks.BlockProperties.TripleShape; import ru.bclib.util.BlocksHelper; @@ -19,7 +19,7 @@ public class BulbVineSeedBlock extends EndPlantWithAgeBlock { @Override public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) { BlockState up = world.getBlockState(pos.above()); - return up.is(TagAPI.BLOCK_GEN_TERRAIN) || up.is(BlockTags.LOGS) || up.is(BlockTags.LEAVES); + return up.is(CommonBlockTags.GEN_END_STONES) || up.is(BlockTags.LOGS) || up.is(BlockTags.LEAVES); } @Override diff --git a/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java b/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java index 71a7dd2d..e3ba67a5 100644 --- a/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLilySeedBlock.java @@ -4,7 +4,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluids; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BlockProperties.TripleShape; import ru.bclib.blocks.UnderwaterPlantWithAgeBlock; import ru.bclib.util.BlocksHelper; @@ -48,6 +48,6 @@ public class EndLilySeedBlock extends UnderwaterPlantWithAgeBlock { @Override protected boolean isTerrain(BlockState state) { - return state.is(TagAPI.BLOCK_END_GROUND); + return state.is(CommonBlockTags.END_STONES); } } diff --git a/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java b/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java index 20d3e1c4..e385e34d 100644 --- a/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java +++ b/src/main/java/ru/betterend/blocks/EndLotusSeedBlock.java @@ -6,7 +6,7 @@ import net.minecraft.core.Direction; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Fluids; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BlockProperties.TripleShape; import ru.bclib.blocks.UnderwaterPlantWithAgeBlock; import ru.bclib.util.BlocksHelper; @@ -134,6 +134,6 @@ public class EndLotusSeedBlock extends UnderwaterPlantWithAgeBlock { @Override protected boolean isTerrain(BlockState state) { - return state.is(TagAPI.BLOCK_END_GROUND); + return state.is(CommonBlockTags.END_STONES); } } diff --git a/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java b/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java index 92403686..6d731d95 100644 --- a/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java +++ b/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java @@ -19,7 +19,8 @@ import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.NamedBlockTags; +import ru.bclib.api.tag.TagAPI; import ru.bclib.blocks.BaseBlock; import ru.bclib.interfaces.CustomColorProvider; import ru.bclib.util.ColorUtil; @@ -44,7 +45,7 @@ public class HelixTreeLeavesBlock extends BaseBlock implements CustomColorProvid .strength(0.2F) ); - TagAPI.addTags(this, TagAPI.BLOCK_LEAVES); + TagAPI.addBlockTag(NamedBlockTags.LEAVES, this); } @Override diff --git a/src/main/java/ru/betterend/blocks/HydraluxBlock.java b/src/main/java/ru/betterend/blocks/HydraluxBlock.java index 7db4f4af..69e3dd39 100644 --- a/src/main/java/ru/betterend/blocks/HydraluxBlock.java +++ b/src/main/java/ru/betterend/blocks/HydraluxBlock.java @@ -17,7 +17,7 @@ import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.EnumProperty; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.storage.loot.LootContext; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.UnderwaterPlantBlock; import ru.bclib.util.MHelper; import ru.betterend.blocks.EndBlockProperties.HydraluxShape; @@ -63,7 +63,7 @@ public class HydraluxBlock extends UnderwaterPlantBlock { @Override protected boolean isTerrain(BlockState state) { - return state.is(TagAPI.BLOCK_END_GROUND); + return state.is(CommonBlockTags.END_STONES); } @Override diff --git a/src/main/java/ru/betterend/blocks/LumecornBlock.java b/src/main/java/ru/betterend/blocks/LumecornBlock.java index ac27121f..51fec348 100644 --- a/src/main/java/ru/betterend/blocks/LumecornBlock.java +++ b/src/main/java/ru/betterend/blocks/LumecornBlock.java @@ -19,7 +19,7 @@ import net.minecraft.world.level.material.Material; import net.minecraft.world.level.storage.loot.LootContext; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BaseBlockNotFull; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.interfaces.RenderLayerProvider; @@ -63,7 +63,7 @@ public class LumecornBlock extends BaseBlockNotFull implements RenderLayerProvid public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) { LumecornShape shape = state.getValue(SHAPE); if (shape == LumecornShape.BOTTOM_BIG || shape == LumecornShape.BOTTOM_SMALL) { - return world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND); + return world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES); } else if (shape == LumecornShape.LIGHT_TOP) { return world.getBlockState(pos.below()).is(this); diff --git a/src/main/java/ru/betterend/blocks/MossyGlowshroomCapBlock.java b/src/main/java/ru/betterend/blocks/MossyGlowshroomCapBlock.java index 4bd1bbcb..ea88735b 100644 --- a/src/main/java/ru/betterend/blocks/MossyGlowshroomCapBlock.java +++ b/src/main/java/ru/betterend/blocks/MossyGlowshroomCapBlock.java @@ -1,7 +1,6 @@ package ru.betterend.blocks; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.tags.Tag.Named; import net.minecraft.world.item.Item; import net.minecraft.world.item.context.BlockPlaceContext; import net.minecraft.world.level.block.Block; @@ -10,7 +9,8 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.StateDefinition; import net.minecraft.world.level.block.state.properties.BooleanProperty; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.NamedMineableTags; +import ru.bclib.api.tag.TagAPI.TagLocation; import ru.bclib.blocks.BaseBlock; import ru.bclib.interfaces.TagProvider; import ru.betterend.registry.EndBlocks; @@ -38,7 +38,7 @@ public class MossyGlowshroomCapBlock extends BaseBlock implements TagProvider { } @Override - public void addTags(List> blockTags, List> itemTags) { - blockTags.add(TagAPI.MINEABLE_AXE); + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(NamedMineableTags.AXE); } } diff --git a/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java b/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java index 2e428182..e238dc67 100644 --- a/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/NeonCactusPlantBlock.java @@ -34,7 +34,7 @@ import net.minecraft.world.level.material.Fluids; import net.minecraft.world.level.pathfinder.PathComputationType; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.VoxelShape; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BaseBlockNotFull; import ru.bclib.blocks.BlockProperties; import ru.bclib.blocks.BlockProperties.TripleShape; @@ -331,7 +331,7 @@ public class NeonCactusPlantBlock extends BaseBlockNotFull implements SimpleWate mut.move(dir); state = world.getBlockState(mut); if (!state.is(this)) { - if (!state.is(TagAPI.BLOCK_END_GROUND)) { + if (!state.is(CommonBlockTags.END_STONES)) { length = -1; } break; diff --git a/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java b/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java index cda6ec18..7ae95d30 100644 --- a/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java +++ b/src/main/java/ru/betterend/blocks/SmallJellyshroomBlock.java @@ -29,7 +29,7 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BaseAttachedBlock; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.interfaces.RenderLayerProvider; @@ -93,7 +93,7 @@ public class SmallJellyshroomBlock extends BaseAttachedBlock implements RenderLa @Override public boolean isValidBonemealTarget(BlockGetter world, BlockPos pos, BlockState state, boolean isClient) { - return state.getValue(FACING) == Direction.UP && world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND); + return state.getValue(FACING) == Direction.UP && world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES); } @Override diff --git a/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java index 9a064a4e..2c30a4ae 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlantBlock.java @@ -2,7 +2,7 @@ package ru.betterend.blocks.basis; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BasePlantBlock; import ru.betterend.interfaces.PottablePlant; @@ -29,7 +29,7 @@ public class EndPlantBlock extends BasePlantBlock implements PottablePlant { @Override protected boolean isTerrain(BlockState state) { - return state.is(TagAPI.BLOCK_END_GROUND); + return state.is(CommonBlockTags.END_STONES); } @Override diff --git a/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java b/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java index 1519d471..47e52267 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndPlantWithAgeBlock.java @@ -1,7 +1,7 @@ package ru.betterend.blocks.basis; import net.minecraft.world.level.block.state.BlockState; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BasePlantWithAgeBlock; public abstract class EndPlantWithAgeBlock extends BasePlantWithAgeBlock { @@ -15,6 +15,6 @@ public abstract class EndPlantWithAgeBlock extends BasePlantWithAgeBlock { @Override protected boolean isTerrain(BlockState state) { - return state.is(TagAPI.BLOCK_END_GROUND); + return state.is(CommonBlockTags.END_STONES); } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndUnderwaterPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/EndUnderwaterPlantBlock.java index a3acf2d2..ecdfd821 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndUnderwaterPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndUnderwaterPlantBlock.java @@ -1,7 +1,7 @@ package ru.betterend.blocks.basis; import net.minecraft.world.level.block.state.BlockState; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.UnderwaterPlantBlock; public class EndUnderwaterPlantBlock extends UnderwaterPlantBlock { @@ -19,6 +19,6 @@ public class EndUnderwaterPlantBlock extends UnderwaterPlantBlock { @Override protected boolean isTerrain(BlockState state) { - return state.is(TagAPI.BLOCK_END_GROUND); + return state.is(CommonBlockTags.END_STONES); } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndUnderwaterWallPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/EndUnderwaterWallPlantBlock.java index 9a23df46..b5fa2d18 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndUnderwaterWallPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndUnderwaterWallPlantBlock.java @@ -1,7 +1,7 @@ package ru.betterend.blocks.basis; import net.minecraft.world.level.block.state.BlockState; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BaseUnderwaterWallPlantBlock; public class EndUnderwaterWallPlantBlock extends BaseUnderwaterWallPlantBlock { @@ -19,6 +19,6 @@ public class EndUnderwaterWallPlantBlock extends BaseUnderwaterWallPlantBlock { @Override protected boolean isTerrain(BlockState state) { - return state.is(TagAPI.BLOCK_END_GROUND); + return state.is(CommonBlockTags.END_STONES); } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndWallMushroom.java b/src/main/java/ru/betterend/blocks/basis/EndWallMushroom.java index 6faeaf88..a08cc07b 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndWallMushroom.java +++ b/src/main/java/ru/betterend/blocks/basis/EndWallMushroom.java @@ -1,7 +1,7 @@ package ru.betterend.blocks.basis; import net.minecraft.world.level.block.state.BlockState; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.WallMushroomBlock; public class EndWallMushroom extends WallMushroomBlock { @@ -12,6 +12,6 @@ public class EndWallMushroom extends WallMushroomBlock { @Override protected boolean isTerrain(BlockState state) { - return state.is(TagAPI.BLOCK_END_GROUND); + return state.is(CommonBlockTags.END_STONES); } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndWallPlantBlock.java b/src/main/java/ru/betterend/blocks/basis/EndWallPlantBlock.java index 46fdba5c..f08d6da1 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndWallPlantBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndWallPlantBlock.java @@ -1,7 +1,7 @@ package ru.betterend.blocks.basis; import net.minecraft.world.level.block.state.BlockState; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BaseWallPlantBlock; public class EndWallPlantBlock extends BaseWallPlantBlock { @@ -18,6 +18,6 @@ public class EndWallPlantBlock extends BaseWallPlantBlock { @Override protected boolean isTerrain(BlockState state) { - return state.is(TagAPI.BLOCK_END_GROUND); + return state.is(CommonBlockTags.END_STONES); } } diff --git a/src/main/java/ru/betterend/blocks/basis/FurBlock.java b/src/main/java/ru/betterend/blocks/basis/FurBlock.java index 951e8278..187f92a7 100644 --- a/src/main/java/ru/betterend/blocks/basis/FurBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/FurBlock.java @@ -19,7 +19,8 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import net.minecraft.world.phys.shapes.CollisionContext; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.NamedBlockTags; +import ru.bclib.api.tag.TagAPI; import ru.bclib.blocks.BaseAttachedBlock; import ru.bclib.client.render.BCLRenderLayer; import ru.bclib.interfaces.RenderLayerProvider; @@ -42,7 +43,7 @@ public class FurBlock extends BaseAttachedBlock implements RenderLayerProvider { .noCollission()); this.drop = drop; this.dropChance = dropChance; - TagAPI.addTags(this, TagAPI.BLOCK_LEAVES); + TagAPI.addBlockTag(NamedBlockTags.LEAVES, this); } public FurBlock(ItemLike drop, int dropChance) { @@ -53,7 +54,7 @@ public class FurBlock extends BaseAttachedBlock implements RenderLayerProvider { .noCollission()); this.drop = drop; this.dropChance = dropChance; - TagAPI.addTags(this, TagAPI.BLOCK_LEAVES); + TagAPI.addBlockTag(NamedBlockTags.LEAVES, this); } @Override diff --git a/src/main/java/ru/betterend/complexmaterials/CrystalSubblocksMaterial.java b/src/main/java/ru/betterend/complexmaterials/CrystalSubblocksMaterial.java index 1582a268..4e626a3b 100644 --- a/src/main/java/ru/betterend/complexmaterials/CrystalSubblocksMaterial.java +++ b/src/main/java/ru/betterend/complexmaterials/CrystalSubblocksMaterial.java @@ -1,10 +1,10 @@ package ru.betterend.complexmaterials; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; import net.minecraft.world.level.block.Block; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.NamedBlockTags; +import ru.bclib.api.tag.NamedItemTags; +import ru.bclib.api.tag.TagAPI; import ru.bclib.blocks.BaseSlabBlock; import ru.bclib.blocks.BaseStairsBlock; import ru.bclib.blocks.BaseWallBlock; @@ -120,14 +120,14 @@ public class CrystalSubblocksMaterial { CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar); // Item Tags // - TagAPI.addTag(ItemTags.SLABS, slab, brick_slab); - TagAPI.addTag(ItemTags.STONE_BRICKS, bricks); - TagAPI.addTag(ItemTags.STONE_CRAFTING_MATERIALS, source); - TagAPI.addTag(ItemTags.STONE_TOOL_MATERIALS, source); + TagAPI.addItemTag(NamedItemTags.SLABS, slab, brick_slab); + TagAPI.addItemTag(NamedItemTags.STONE_BRICKS, bricks); + TagAPI.addItemTag(NamedItemTags.STONE_CRAFTING_MATERIALS, source); + TagAPI.addItemTag(NamedItemTags.STONE_TOOL_MATERIALS, source); // Block Tags // - TagAPI.addTag(BlockTags.STONE_BRICKS, bricks); - TagAPI.addTag(BlockTags.WALLS, wall, brick_wall); - TagAPI.addTag(BlockTags.SLABS, slab, brick_slab); + TagAPI.addBlockTag(NamedBlockTags.STONE_BRICKS, bricks); + TagAPI.addBlockTag(NamedBlockTags.WALLS, wall, brick_wall); + TagAPI.addBlockTag(NamedBlockTags.SLABS, slab, brick_slab); } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java b/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java index 53183d2d..bb31ef59 100644 --- a/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java +++ b/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java @@ -1,9 +1,6 @@ package ru.betterend.complexmaterials; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; -import net.minecraft.tags.Tag; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.ArmorMaterial; import net.minecraft.world.item.Item; @@ -15,7 +12,12 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.MaterialColor; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.NamedBlockTags; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.NamedCommonItemTags; +import ru.bclib.api.tag.NamedItemTags; +import ru.bclib.api.tag.TagAPI; +import ru.bclib.api.tag.TagAPI.TagNamed; import ru.bclib.blocks.BaseBlock; import ru.bclib.blocks.BaseChainBlock; import ru.bclib.blocks.BaseDoorBlock; @@ -89,7 +91,7 @@ public class MetalMaterial { public final Item leggings; public final Item boots; - public final Tag.Named alloyingOre; + public final TagNamed alloyingOre; public static MetalMaterial makeNormal(String name, MaterialColor color, Tier material, ArmorMaterial armor) { return new MetalMaterial( @@ -153,7 +155,7 @@ public class MetalMaterial { ore = hasOre ? EndBlocks.registerBlock(name + "_ore", new BaseOreBlock(()->rawOre, 1, 3, 1)) : null; alloyingOre = hasOre ? TagAPI.makeItemTag(BetterEnd.MOD_ID, name + "_alloying") : null; if (hasOre) { - TagAPI.addTag(alloyingOre, ore, rawOre); + TagAPI.addItemTag(alloyingOre.getName(), ore, rawOre); } block = EndBlocks.registerBlock(name + "_block", new BaseBlock(settings)); @@ -490,10 +492,10 @@ public class MetalMaterial { .setGroup("end_metal_boots") .build(); - TagAPI.addTag(BlockTags.ANVIL, anvilBlock); - TagAPI.addTag(BlockTags.BEACON_BASE_BLOCKS, block); - TagAPI.addTag(ItemTags.BEACON_PAYMENT_ITEMS, ingot); - TagAPI.addTag(TagAPI.BLOCK_DRAGON_IMMUNE, ore, bars); - TagAPI.addTag(TagAPI.ITEM_HAMMERS, hammer); + TagAPI.addBlockTag(NamedBlockTags.ANVIL, anvilBlock); + TagAPI.addBlockTag(NamedBlockTags.BEACON_BASE_BLOCKS, block); + TagAPI.addItemTag(NamedItemTags.BEACON_PAYMENT_ITEMS, ingot); + TagAPI.addBlockTag(NamedCommonBlockTags.DRAGON_IMMUNE, ore, bars); + TagAPI.addItemTag(NamedCommonItemTags.HAMMERS, hammer); } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/complexmaterials/StoneMaterial.java b/src/main/java/ru/betterend/complexmaterials/StoneMaterial.java index 107471e6..1bd60202 100644 --- a/src/main/java/ru/betterend/complexmaterials/StoneMaterial.java +++ b/src/main/java/ru/betterend/complexmaterials/StoneMaterial.java @@ -1,12 +1,14 @@ package ru.betterend.complexmaterials; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.NamedBlockTags; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.NamedCommonItemTags; +import ru.bclib.api.tag.NamedItemTags; +import ru.bclib.api.tag.TagAPI; import ru.bclib.blocks.BaseBlock; import ru.bclib.blocks.BaseFurnaceBlock; import ru.bclib.blocks.BaseRotatedPillarBlock; @@ -177,22 +179,22 @@ public class StoneMaterial { CraftingRecipes.registerPedestal(name + "_pedestal", pedestal, slab, pillar); // Item Tags // - TagAPI.addTag(ItemTags.SLABS, slab, brickSlab); - TagAPI.addTag(ItemTags.STONE_BRICKS, bricks); - TagAPI.addTag(ItemTags.STONE_CRAFTING_MATERIALS, stone); - TagAPI.addTag(ItemTags.STONE_TOOL_MATERIALS, stone); - TagAPI.addTag(TagAPI.ITEM_FURNACES, furnace); + TagAPI.addItemTag(NamedItemTags.SLABS, slab, brickSlab); + TagAPI.addItemTag(NamedItemTags.STONE_BRICKS, bricks); + TagAPI.addItemTag(NamedItemTags.STONE_CRAFTING_MATERIALS, stone); + TagAPI.addItemTag(NamedItemTags.STONE_TOOL_MATERIALS, stone); + TagAPI.addItemTag(NamedCommonItemTags.FURNACES, furnace); // Block Tags // - TagAPI.addTag(BlockTags.STONE_BRICKS, bricks); - TagAPI.addTag(BlockTags.WALLS, wall, brickWall); - TagAPI.addTag(BlockTags.SLABS, slab, brickSlab); - TagAPI.addTags(pressurePlate, BlockTags.PRESSURE_PLATES, BlockTags.STONE_PRESSURE_PLATES); - TagAPI.addTag(TagAPI.BLOCK_END_STONES, stone); + TagAPI.addBlockTag(NamedBlockTags.STONE_BRICKS, bricks); + TagAPI.addBlockTag(NamedBlockTags.WALLS, wall, brickWall); + TagAPI.addBlockTag(NamedBlockTags.SLABS, slab, brickSlab); + TagAPI.addBlockTags(pressurePlate, NamedBlockTags.PRESSURE_PLATES, NamedBlockTags.STONE_PRESSURE_PLATES); + TagAPI.addBlockTag(NamedCommonBlockTags.END_STONES, stone); - TagAPI.addTag(TagAPI.BLOCK_DRAGON_IMMUNE, stone, stairs, slab, wall); + TagAPI.addBlockTag(NamedCommonBlockTags.DRAGON_IMMUNE, stone, stairs, slab, wall); - TagAPI.addTag(TagAPI.BLOCK_GEN_TERRAIN, stone); - TagAPI.addTag(TagAPI.BLOCK_END_GROUND, stone); + TagAPI.addBlockTag(NamedCommonBlockTags.GEN_END_STONES, stone); + TagAPI.addBlockTag(NamedCommonBlockTags.END_STONES, stone); } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/entity/EndSlimeEntity.java b/src/main/java/ru/betterend/entity/EndSlimeEntity.java index f44cb34c..fb738466 100644 --- a/src/main/java/ru/betterend/entity/EndSlimeEntity.java +++ b/src/main/java/ru/betterend/entity/EndSlimeEntity.java @@ -33,8 +33,8 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.block.Blocks; -import ru.bclib.api.TagAPI; import ru.bclib.api.biomes.BiomeAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.biomes.BCLBiome; @@ -213,7 +213,7 @@ public class EndSlimeEntity extends Slime { } public static boolean canSpawn(EntityType entityType, LevelAccessor world, MobSpawnType spawnType, BlockPos pos, Random random) { - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) { + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { return false; } BCLBiome biome = BiomeAPI.getFromBiome(world.getBiome(pos)); diff --git a/src/main/java/ru/betterend/integration/EnderscapeIntegration.java b/src/main/java/ru/betterend/integration/EnderscapeIntegration.java index 83099d0c..891731c0 100644 --- a/src/main/java/ru/betterend/integration/EnderscapeIntegration.java +++ b/src/main/java/ru/betterend/integration/EnderscapeIntegration.java @@ -4,8 +4,9 @@ import net.minecraft.core.MappedRegistry; import net.minecraft.resources.ResourceKey; import net.minecraft.world.level.biome.Biome; import net.minecraft.world.level.levelgen.GenerationStep.Decoration; -import ru.bclib.api.TagAPI; import ru.bclib.api.biomes.BiomeAPI; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.TagAPI; import ru.bclib.integration.modmenu.ModIntegration; import ru.bclib.world.features.BCLFeature; @@ -42,7 +43,7 @@ public class EnderscapeIntegration extends ModIntegration { } }); - TagAPI.addTag(TagAPI.BLOCK_GEN_TERRAIN, getBlock("nebulite_ore")); - TagAPI.addTag(TagAPI.BLOCK_GEN_TERRAIN, getBlock("shadow_quartz_ore")); + TagAPI.addBlockTag(NamedCommonBlockTags.GEN_END_STONES, getBlock("nebulite_ore")); + TagAPI.addBlockTag(NamedCommonBlockTags.GEN_END_STONES, getBlock("shadow_quartz_ore")); } } diff --git a/src/main/java/ru/betterend/integration/NourishIntegration.java b/src/main/java/ru/betterend/integration/NourishIntegration.java index 4d17a020..ed268d8a 100644 --- a/src/main/java/ru/betterend/integration/NourishIntegration.java +++ b/src/main/java/ru/betterend/integration/NourishIntegration.java @@ -1,8 +1,8 @@ package ru.betterend.integration; -import net.minecraft.tags.Tag; import net.minecraft.world.item.Item; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.TagAPI; +import ru.bclib.api.tag.TagAPI.TagLocation; import ru.bclib.integration.modmenu.ModIntegration; import ru.betterend.registry.EndItems; @@ -13,13 +13,13 @@ public class NourishIntegration extends ModIntegration { @Override public void init() { - Tag.Named fats = getItemTag("fats"); - Tag.Named fruit = getItemTag("fruit"); - Tag.Named protein = getItemTag("protein"); - Tag.Named sweets = getItemTag("sweets"); + TagLocation fats = TagLocation.of(getItemTag("fats")); + TagLocation fruit = TagLocation.of(getItemTag("fruit")); + TagLocation protein = TagLocation.of(getItemTag("protein")); + TagLocation sweets = TagLocation.of(getItemTag("sweets")); - TagAPI.addTag(fats, EndItems.END_FISH_RAW, EndItems.END_FISH_COOKED); - TagAPI.addTag( + TagAPI.addItemTag(fats, EndItems.END_FISH_RAW, EndItems.END_FISH_COOKED); + TagAPI.addItemTag( fruit, EndItems.SHADOW_BERRY_RAW, EndItems.SHADOW_BERRY_COOKED, @@ -32,7 +32,7 @@ public class NourishIntegration extends ModIntegration { EndItems.CHORUS_MUSHROOM_COOKED, EndItems.BOLUX_MUSHROOM_COOKED ); - TagAPI.addTag( + TagAPI.addItemTag( protein, EndItems.END_FISH_RAW, EndItems.END_FISH_COOKED, @@ -40,7 +40,7 @@ public class NourishIntegration extends ModIntegration { EndItems.BOLUX_MUSHROOM_COOKED, EndItems.CAVE_PUMPKIN_PIE ); - TagAPI.addTag( + TagAPI.addItemTag( sweets, EndItems.SHADOW_BERRY_JELLY, EndItems.SWEET_BERRY_JELLY, diff --git a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java index 7d00ea2a..8b3dc233 100644 --- a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java +++ b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java @@ -12,7 +12,7 @@ public class BYGIntegration extends ModIntegration implements EndBiomeIntegratio public void init() { /*Block block = Integrations.BYG.getBlock("ivis_phylium"); if (block != null) { - TagAPI.addTags(block, TagAPI.BLOCK_END_GROUND, TagAPI.BLOCK_GEN_TERRAIN); + TagAPI.addTags(block, CommonBlockTags.END_STONES, CommonBlockTags.GEN_END_STONES); } BYGBlocks.register(); BYGFeatures.register(); diff --git a/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java index de5ad664..155f7c9b 100644 --- a/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/BigEtherTreeFeature.java @@ -8,7 +8,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.util.MHelper; import ru.bclib.util.SplineHelper; @@ -24,7 +24,7 @@ public class BigEtherTreeFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false; + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) return false; BlockState log = Integrations.BYG.getDefaultState("ether_log"); BlockState wood = Integrations.BYG.getDefaultState("ether_wood"); @@ -32,7 +32,7 @@ public class BigEtherTreeFeature extends DefaultFeature { return log; }; Function replace = (state) -> { - return state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.getMaterial() + return state.is(CommonBlockTags.END_STONES) || state.getMaterial().equals(Material.PLANT) || state.getMaterial() .isReplaceable(); }; @@ -63,7 +63,7 @@ public class BigEtherTreeFeature extends DefaultFeature { } sdf.setReplaceFunction((state) -> { - return state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.getMaterial() + return state.is(CommonBlockTags.END_STONES) || state.getMaterial().equals(Material.PLANT) || state.getMaterial() .isReplaceable(); }).addPostProcess((info) -> { if (info.getState().equals(log) && (!info.getStateUp().equals(log) || !info.getStateDown().equals(log))) { diff --git a/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java index ef330a00..0bbee4e7 100644 --- a/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/NightshadeRedwoodTreeFeature.java @@ -13,7 +13,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.PosInfo; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; @@ -38,7 +38,7 @@ public class NightshadeRedwoodTreeFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false; + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) return false; BlockState log = Integrations.BYG.getDefaultState("nightshade_log"); BlockState wood = Integrations.BYG.getDefaultState("nightshade_wood"); @@ -49,7 +49,7 @@ public class NightshadeRedwoodTreeFeature extends DefaultFeature { return log; }; Function replace = (state) -> { - return state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial().equals(Material.PLANT) || state.getMaterial() + return state.is(CommonBlockTags.END_STONES) || state.getMaterial().equals(Material.PLANT) || state.getMaterial() .isReplaceable(); }; Function post = (info) -> { diff --git a/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java b/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java index b874a391..2f05a6b1 100644 --- a/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java +++ b/src/main/java/ru/betterend/integration/byg/features/OldBulbisTreeFeature.java @@ -11,7 +11,8 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; import net.minecraft.world.phys.AABB; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; +import ru.bclib.api.tag.TagAPI; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; import ru.bclib.sdf.operator.SDFSubtraction; @@ -39,8 +40,8 @@ public class OldBulbisTreeFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false; - if (!world.getBlockState(pos.below(4)).is(TagAPI.BLOCK_GEN_TERRAIN)) return false; + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) return false; + if (!world.getBlockState(pos.below(4)).is(CommonBlockTags.GEN_END_STONES)) return false; BlockState stem = Integrations.BYG.getDefaultState("bulbis_stem"); BlockState wood = Integrations.BYG.getDefaultState("bulbis_wood"); @@ -48,7 +49,7 @@ public class OldBulbisTreeFeature extends DefaultFeature { BlockState glow = Integrations.BYG.getDefaultState("purple_shroomlight"); Function replacement = (state) -> { - if (state.equals(stem) || state.equals(wood) || state.is(TagAPI.BLOCK_END_GROUND) || state.getMaterial() + if (state.equals(stem) || state.equals(wood) || state.is(CommonBlockTags.END_STONES) || state.getMaterial() .equals(Material.PLANT)) { return true; } @@ -155,7 +156,7 @@ public class OldBulbisTreeFeature extends DefaultFeature { SplineHelper.rotateSpline(branch, angle); SplineHelper.scale(branch, scale); Vector3f last = branch.get(branch.size() - 1); - if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(CommonBlockTags.GEN_END_STONES)) { SplineHelper.fillSpline(branch, world, wood, pos, replacement); } } diff --git a/src/main/java/ru/betterend/item/tool/EndHammerItem.java b/src/main/java/ru/betterend/item/tool/EndHammerItem.java index d5536255..cc5cfa57 100644 --- a/src/main/java/ru/betterend/item/tool/EndHammerItem.java +++ b/src/main/java/ru/betterend/item/tool/EndHammerItem.java @@ -27,7 +27,7 @@ import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonItemTags; import ru.bclib.client.models.ModelsHelper; import ru.bclib.interfaces.ItemModelProvider; @@ -113,7 +113,7 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, I @Override public float getMiningSpeedMultiplier(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { - if (tag.equals(TagAPI.ITEM_HAMMERS)) { + if (tag.equals(CommonItemTags.HAMMERS)) { return this.getDestroySpeed(stack, state); } return 1.0F; @@ -121,7 +121,7 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, I @Override public int getMiningLevel(Tag tag, BlockState state, ItemStack stack, LivingEntity user) { - if (tag.equals(TagAPI.ITEM_HAMMERS)) { + if (tag.equals(CommonItemTags.HAMMERS)) { return this.getTier().getLevel(); } return 0; diff --git a/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java b/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java index 7acd396b..8aa684f3 100644 --- a/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChorusFlowerBlockMixin.java @@ -20,7 +20,8 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; +import ru.bclib.api.tag.TagAPI; import ru.bclib.util.BlocksHelper; import ru.betterend.registry.EndBlocks; import ru.betterend.world.generator.GeneratorOptions; @@ -50,7 +51,7 @@ public abstract class ChorusFlowerBlockMixin extends Block { @Inject(method = "randomTick", at = @At("HEAD"), cancellable = true) private void be_randomTick(BlockState state, ServerLevel world, BlockPos pos, Random random, CallbackInfo info) { - if (world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) { + if (world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { BlockPos up = pos.above(); if (world.isEmptyBlock(up) && up.getY() < 256) { int i = state.getValue(ChorusFlowerBlock.AGE); @@ -80,7 +81,7 @@ public abstract class ChorusFlowerBlockMixin extends Block { @Inject(method = "placeDeadFlower", at = @At("HEAD"), cancellable = true) private void be_placeDeadFlower(Level world, BlockPos pos, CallbackInfo info) { BlockState down = world.getBlockState(pos.below()); - if (down.is(Blocks.CHORUS_PLANT) || down.is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (down.is(Blocks.CHORUS_PLANT) || down.is(CommonBlockTags.GEN_END_STONES)) { world.setBlock(pos, this.defaultBlockState().setValue(BlockStateProperties.AGE_5, 5), 2); world.levelEvent(1034, pos, 0); } diff --git a/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java b/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java index 74cfac6d..89251667 100644 --- a/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java +++ b/src/main/java/ru/betterend/mixin/common/ChorusPlantBlockMixin.java @@ -16,7 +16,7 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.betterend.registry.EndBlocks; @Mixin(value = ChorusPlantBlock.class, priority = 100) @@ -30,7 +30,7 @@ public abstract class ChorusPlantBlockMixin extends Block { BlockPos pos = ctx.getClickedPos(); Level world = ctx.getLevel(); BlockState plant = info.getReturnValue(); - if (ctx.canPlace() && plant.is(Blocks.CHORUS_PLANT) && world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) { + if (ctx.canPlace() && plant.is(Blocks.CHORUS_PLANT) && world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { info.setReturnValue(plant.setValue(BlockStateProperties.DOWN, true)); } } @@ -38,7 +38,7 @@ public abstract class ChorusPlantBlockMixin extends Block { @Inject(method = "Lnet/minecraft/world/level/block/ChorusPlantBlock;getStateForPlacement" + "(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)" + "Lnet/minecraft/world/level/block/state/BlockState;", at = @At("RETURN"), cancellable = true) private void be_getStateForPlacement(BlockGetter blockGetter, BlockPos blockPos, CallbackInfoReturnable info) { BlockState plant = info.getReturnValue(); - if (plant.is(Blocks.CHORUS_PLANT) && blockGetter.getBlockState(blockPos.below()).is(TagAPI.BLOCK_END_GROUND)) { + if (plant.is(Blocks.CHORUS_PLANT) && blockGetter.getBlockState(blockPos.below()).is(CommonBlockTags.END_STONES)) { info.setReturnValue(plant.setValue(BlockStateProperties.DOWN, true)); } } @@ -54,7 +54,7 @@ public abstract class ChorusPlantBlockMixin extends Block { @Inject(method = "updateShape", at = @At("RETURN"), cancellable = true) private void be_updateShape(BlockState state, Direction direction, BlockState newState, LevelAccessor world, BlockPos pos, BlockPos posFrom, CallbackInfoReturnable info) { BlockState plant = info.getReturnValue(); - if (plant.is(Blocks.CHORUS_PLANT) && world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) { + if (plant.is(Blocks.CHORUS_PLANT) && world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { plant = plant.setValue(BlockStateProperties.DOWN, true); info.setReturnValue(plant); } diff --git a/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java b/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java index 77cb6d3e..d2f5e986 100644 --- a/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java +++ b/src/main/java/ru/betterend/mixin/common/EnchantmentMenuMixin.java @@ -16,7 +16,7 @@ import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import java.util.List; import java.util.Random; @@ -71,28 +71,28 @@ public abstract class EnchantmentMenuMixin extends AbstractContainerMenu { 0, j )) && world.isEmptyBlock(blockPos.offset(k, 1, j))) { - if (world.getBlockState(blockPos.offset(k * 2, 0, j * 2)).is(TagAPI.BLOCK_BOOKSHELVES)) { + if (world.getBlockState(blockPos.offset(k * 2, 0, j * 2)).is(CommonBlockTags.BOOKSHELVES)) { ++i; } - if (world.getBlockState(blockPos.offset(k * 2, 1, j * 2)).is(TagAPI.BLOCK_BOOKSHELVES)) { + if (world.getBlockState(blockPos.offset(k * 2, 1, j * 2)).is(CommonBlockTags.BOOKSHELVES)) { ++i; } if (k != 0 && j != 0) { - if (world.getBlockState(blockPos.offset(k * 2, 0, j)).is(TagAPI.BLOCK_BOOKSHELVES)) { + if (world.getBlockState(blockPos.offset(k * 2, 0, j)).is(CommonBlockTags.BOOKSHELVES)) { ++i; } - if (world.getBlockState(blockPos.offset(k * 2, 1, j)).is(TagAPI.BLOCK_BOOKSHELVES)) { + if (world.getBlockState(blockPos.offset(k * 2, 1, j)).is(CommonBlockTags.BOOKSHELVES)) { ++i; } - if (world.getBlockState(blockPos.offset(k, 0, j * 2)).is(TagAPI.BLOCK_BOOKSHELVES)) { + if (world.getBlockState(blockPos.offset(k, 0, j * 2)).is(CommonBlockTags.BOOKSHELVES)) { ++i; } - if (world.getBlockState(blockPos.offset(k, 1, j * 2)).is(TagAPI.BLOCK_BOOKSHELVES)) { + if (world.getBlockState(blockPos.offset(k, 1, j * 2)).is(CommonBlockTags.BOOKSHELVES)) { ++i; } } diff --git a/src/main/java/ru/betterend/recipe/CraftingRecipes.java b/src/main/java/ru/betterend/recipe/CraftingRecipes.java index 559dcfc9..92e9227f 100644 --- a/src/main/java/ru/betterend/recipe/CraftingRecipes.java +++ b/src/main/java/ru/betterend/recipe/CraftingRecipes.java @@ -7,7 +7,7 @@ import net.minecraft.world.item.alchemy.PotionUtils; import net.minecraft.world.item.alchemy.Potions; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonItemTags; import ru.bclib.recipes.GridRecipe; import ru.betterend.BetterEnd; import ru.betterend.config.Configs; @@ -34,7 +34,7 @@ public class CraftingRecipes { .setShape("T#T", "V V", "T#T") .addMaterial('#', Blocks.END_STONE_BRICKS) .addMaterial('T', EndBlocks.THALLASIUM.ingot) - .addMaterial('V', TagAPI.ITEM_FURNACES) + .addMaterial('V', CommonItemTags.FURNACES) .build(); registerPedestal( diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index 569932b9..d2ce638b 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -6,9 +6,6 @@ import net.fabricmc.fabric.impl.tool.attribute.handlers.ModdedToolsVanillaBlocks import net.fabricmc.fabric.mixin.object.builder.AbstractBlockAccessor; import net.fabricmc.fabric.mixin.object.builder.AbstractBlockSettingsAccessor; import net.minecraft.core.Registry; -import net.minecraft.tags.BlockTags; -import net.minecraft.tags.ItemTags; -import net.minecraft.tags.Tag; import net.minecraft.world.food.FoodProperties; import net.minecraft.world.item.Item; import net.minecraft.world.item.Items; @@ -20,7 +17,14 @@ import net.minecraft.world.level.block.state.BlockBehaviour.Properties; import net.minecraft.world.level.material.Material; import ru.bclib.api.BonemealAPI; import ru.bclib.api.ComposterAPI; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonItemTags; +import ru.bclib.api.tag.NamedBlockTags; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.NamedCommonItemTags; +import ru.bclib.api.tag.NamedItemTags; +import ru.bclib.api.tag.NamedMineableTags; +import ru.bclib.api.tag.TagAPI; +import ru.bclib.api.tag.TagAPI.TagNamed; import ru.bclib.blocks.BaseVineBlock; import ru.bclib.blocks.SimpleLeavesBlock; import ru.betterend.BetterEnd; @@ -35,17 +39,17 @@ public class EndTags { // https://fabricmc.net/wiki/tutorial:tags // Block Tags - public static final Tag.Named PEDESTALS = TagAPI.makeBlockTag(BetterEnd.MOD_ID, "pedestal"); + public static final TagNamed PEDESTALS = TagAPI.makeBlockTag(BetterEnd.MOD_ID, "pedestal"); // Item Tags - public static final Tag.Named ALLOYING_IRON = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_iron"); - public static final Tag.Named ALLOYING_GOLD = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_gold"); - public static final Tag.Named ALLOYING_COPPER = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_copper"); + public static final TagNamed ALLOYING_IRON = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_iron"); + public static final TagNamed ALLOYING_GOLD = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_gold"); + public static final TagNamed ALLOYING_COPPER = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_copper"); public static void register() { - TagAPI.addEndGround(EndBlocks.THALLASIUM.ore); - TagAPI.addEndGround(EndBlocks.ENDSTONE_DUST); - TagAPI.addEndGround(EndBlocks.AMBER_ORE); + addEndGround(EndBlocks.THALLASIUM.ore); + addEndGround(EndBlocks.ENDSTONE_DUST); + addEndGround(EndBlocks.AMBER_ORE); EndBlocks.getModBlocks().forEach(block -> { Properties properties = ((AbstractBlockAccessor) block).getSettings(); @@ -53,32 +57,32 @@ public class EndTags { final Item item = block.asItem(); if (material.equals(Material.STONE) || material.equals(Material.METAL) || material.equals(Material.HEAVY_METAL)) { - TagAPI.addTag(TagAPI.MINEABLE_PICKAXE, block); + TagAPI.addBlockTag(NamedMineableTags.PICKAXE, block); } else if (material.equals(Material.WOOD)) { - TagAPI.addTag(TagAPI.MINEABLE_AXE, block); + TagAPI.addBlockTag(NamedMineableTags.AXE, block); } else if (material.equals(Material.LEAVES) || material.equals(Material.PLANT) || material.equals(Material.WATER_PLANT) || material.equals(Material.SPONGE)) { - TagAPI.addTag(TagAPI.MINEABLE_HOE, block); + TagAPI.addBlockTag(NamedMineableTags.HOE, block); } else if (material.equals(Material.SAND)) { - TagAPI.addTag(TagAPI.MINEABLE_SHOVEL, block); + TagAPI.addBlockTag(NamedMineableTags.SHOVEL, block); } if (block instanceof EndTerrainBlock) { - TagAPI.addEndGround(block); - TagAPI.addTag(BlockTags.NYLIUM, block); + addEndGround(block); + TagAPI.addBlockTag(NamedBlockTags.NYLIUM, block); BonemealAPI.addSpreadableBlock(block, Blocks.END_STONE); } else if (block instanceof LeavesBlock || block instanceof SimpleLeavesBlock) { - TagAPI.addTag(BlockTags.LEAVES, block); + TagAPI.addBlockTag(NamedBlockTags.LEAVES, block); ComposterAPI.allowCompost(0.3f, item); } else if (block instanceof BaseVineBlock) { - TagAPI.addTag(BlockTags.CLIMBABLE, block); + TagAPI.addBlockTag(NamedBlockTags.CLIMBABLE, block); } else if (block instanceof PedestalBlock) { - TagAPI.addTag(PEDESTALS, block); + TagAPI.addBlockTag(PEDESTALS.getName(), block); } Material mat = block.defaultBlockState().getMaterial(); @@ -86,8 +90,8 @@ public class EndTags { ComposterAPI.allowCompost(0.1F, item); } }); - TagAPI.addEndGround(EndBlocks.CAVE_MOSS); - TagAPI.addTag(BlockTags.NYLIUM, EndBlocks.CAVE_MOSS); + addEndGround(EndBlocks.CAVE_MOSS); + TagAPI.addBlockTag(NamedBlockTags.NYLIUM, EndBlocks.CAVE_MOSS); BonemealAPI.addSpreadableBlock(EndBlocks.CAVE_MOSS, Blocks.END_STONE); BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_OBSIDIAN, Blocks.OBSIDIAN); BonemealAPI.addSpreadableBlock(EndBlocks.MOSSY_DRAGON_BONE, EndBlocks.DRAGON_BONE_BLOCK); @@ -105,30 +109,34 @@ public class EndTags { ITEM_HAMMERS.add(item); } }); - ToolManagerImpl.tag(TagAPI.ITEM_HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(ITEM_HAMMERS)); - TagAPI.addTag(TagAPI.ITEM_HAMMERS, EndItems.AETERNIUM_HAMMER); + ToolManagerImpl.tag(CommonItemTags.HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(ITEM_HAMMERS)); + TagAPI.addItemTag(NamedCommonItemTags.HAMMERS, EndItems.AETERNIUM_HAMMER); - TagAPI.addTag( - TagAPI.BLOCK_GEN_TERRAIN, + TagAPI.addBlockTag( + NamedCommonBlockTags.GEN_END_STONES, EndBlocks.ENDER_ORE, EndBlocks.BRIMSTONE ); - TagAPI.addTag(TagAPI.BLOCK_END_GROUND, EndBlocks.BRIMSTONE); - TagAPI.addTag(BlockTags.ANVIL, EndBlocks.AETERNIUM_ANVIL); - TagAPI.addTag(BlockTags.BEACON_BASE_BLOCKS, EndBlocks.AETERNIUM_BLOCK); - TagAPI.addTag(ItemTags.BEACON_PAYMENT_ITEMS, EndItems.AETERNIUM_INGOT); - TagAPI.addTag( - TagAPI.BLOCK_DRAGON_IMMUNE, + TagAPI.addBlockTag(NamedCommonBlockTags.END_STONES, EndBlocks.BRIMSTONE); + TagAPI.addBlockTag(NamedBlockTags.ANVIL, EndBlocks.AETERNIUM_ANVIL); + TagAPI.addBlockTag(NamedBlockTags.BEACON_BASE_BLOCKS, EndBlocks.AETERNIUM_BLOCK); + TagAPI.addItemTag(NamedItemTags.BEACON_PAYMENT_ITEMS, EndItems.AETERNIUM_INGOT); + TagAPI.addBlockTag( + NamedCommonBlockTags.DRAGON_IMMUNE, EndBlocks.ENDER_ORE, EndBlocks.ETERNAL_PEDESTAL, EndBlocks.FLAVOLITE_RUNED_ETERNAL, EndBlocks.FLAVOLITE_RUNED ); - TagAPI.addTag(TagAPI.ITEM_IRON_INGOTS, EndBlocks.THALLASIUM.ingot); + TagAPI.addItemTag(NamedCommonItemTags.IRON_INGOTS, EndBlocks.THALLASIUM.ingot); - TagAPI.addTag(ALLOYING_IRON, Items.IRON_ORE, Items.DEEPSLATE_IRON_ORE, Items.RAW_IRON); - TagAPI.addTag(ALLOYING_GOLD, Items.GOLD_ORE, Items.DEEPSLATE_GOLD_ORE, Items.RAW_GOLD); - TagAPI.addTag(ALLOYING_COPPER, Items.COPPER_ORE, Items.DEEPSLATE_COPPER_ORE, Items.RAW_COPPER); + TagAPI.addItemTag(ALLOYING_IRON.getName(), Items.IRON_ORE, Items.DEEPSLATE_IRON_ORE, Items.RAW_IRON); + TagAPI.addItemTag(ALLOYING_GOLD.getName(), Items.GOLD_ORE, Items.DEEPSLATE_GOLD_ORE, Items.RAW_GOLD); + TagAPI.addItemTag(ALLOYING_COPPER.getName(), Items.COPPER_ORE, Items.DEEPSLATE_COPPER_ORE, Items.RAW_COPPER); + } + + public static void addEndGround(Block bl){ + TagAPI.addBlockTag(NamedCommonBlockTags.END_STONES, bl); } // TODO make getter for biome top blocks @@ -138,8 +146,8 @@ public class EndTags { SurfaceBuilderConfiguration config = biome.getGenerationSettings().getSurfaceBuilderConfig(); Block under = config.getUnderMaterial().getBlock(); Block surface = config.getTopMaterial().getBlock(); - TagAPI.addTag(TagAPI.BLOCK_GEN_TERRAIN, under, surface); - TagAPI.addTag(TagAPI.BLOCK_END_GROUND, surface); + TagAPI.addTag(CommonBlockTags.GEN_END_STONES, under, surface); + TagAPI.addTag(CommonBlockTags.END_STONES, surface); } }); TagAPI.BLOCK_END_STONES.getValues().forEach(TagAPI::addEndGround);*/ diff --git a/src/main/java/ru/betterend/util/StructureErode.java b/src/main/java/ru/betterend/util/StructureErode.java index 82441194..7e268a3a 100644 --- a/src/main/java/ru/betterend/util/StructureErode.java +++ b/src/main/java/ru/betterend/util/StructureErode.java @@ -10,7 +10,8 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; +import ru.bclib.api.tag.TagAPI; import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; @@ -241,7 +242,7 @@ public class StructureErode { } private static boolean ignore(BlockState state, WorldGenLevel world, BlockPos pos) { - if (state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(BlockTags.NYLIUM)) { + if (state.is(CommonBlockTags.GEN_END_STONES) || state.is(BlockTags.NYLIUM)) { return true; } return !state.getMaterial().equals(Material.STONE) || BlocksHelper.isInvulnerable(state, world, pos); @@ -249,7 +250,7 @@ public class StructureErode { private static boolean isTerrainNear(WorldGenLevel world, BlockPos pos) { for (Direction dir : BlocksHelper.DIRECTIONS) { - if (world.getBlockState(pos.relative(dir)).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos.relative(dir)).is(CommonBlockTags.GEN_END_STONES)) { return true; } } @@ -266,7 +267,7 @@ public class StructureErode { for (int y = bounds.maxY(); y >= bounds.minY(); y--) { mut.setY(y); BlockState state = world.getBlockState(mut); - if (state.is(TagAPI.BLOCK_END_GROUND) && !world.getBlockState(mut.above()).getMaterial().isSolidBlocking()) { + if (state.is(CommonBlockTags.END_STONES) && !world.getBlockState(mut.above()).getMaterial().isSolidBlocking()) { BlocksHelper.setWithoutUpdate(world, mut, top); } } diff --git a/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java b/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java index 6af34e7d..424a4348 100644 --- a/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java +++ b/src/main/java/ru/betterend/world/features/CavePumpkinFeature.java @@ -4,7 +4,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.world.features.DefaultFeature; import ru.betterend.blocks.EndBlockProperties; @@ -18,7 +18,7 @@ public class CavePumpkinFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.above()).is(TagAPI.BLOCK_GEN_TERRAIN) || !world.isEmptyBlock(pos) || !world.isEmptyBlock( + if (!world.getBlockState(pos.above()).is(CommonBlockTags.GEN_END_STONES) || !world.isEmptyBlock(pos) || !world.isEmptyBlock( pos.below())) { return false; } diff --git a/src/main/java/ru/betterend/world/features/CrashedShipFeature.java b/src/main/java/ru/betterend/world/features/CrashedShipFeature.java index 124e07ea..dbf45baa 100644 --- a/src/main/java/ru/betterend/world/features/CrashedShipFeature.java +++ b/src/main/java/ru/betterend/world/features/CrashedShipFeature.java @@ -18,7 +18,7 @@ import net.minecraft.world.level.levelgen.structure.templatesystem.StructureProc import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate; import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate.StructureBlockInfo; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.MHelper; import ru.bclib.util.StructureHelper; import ru.bclib.world.features.NBTStructureFeature; @@ -55,7 +55,7 @@ public class CrashedShipFeature extends NBTStructureFeature { if (x * x + z * z < 3600) { return false; } - return pos.getY() > 5 && world.getBlockState(pos.below()).is(TagAPI.BLOCK_GEN_TERRAIN); + return pos.getY() > 5 && world.getBlockState(pos.below()).is(CommonBlockTags.GEN_END_STONES); } @Override diff --git a/src/main/java/ru/betterend/world/features/ScatterFeature.java b/src/main/java/ru/betterend/world/features/ScatterFeature.java index 7539ec00..e7c7d095 100644 --- a/src/main/java/ru/betterend/world/features/ScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/ScatterFeature.java @@ -5,7 +5,7 @@ import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; @@ -32,7 +32,7 @@ public abstract class ScatterFeature extends DefaultFeature { if (pos.getY() < 5) { return false; } - else if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) { + else if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { return false; } return true; diff --git a/src/main/java/ru/betterend/world/features/bushes/BushFeature.java b/src/main/java/ru/betterend/world/features/bushes/BushFeature.java index 6f11fef4..344d9b5d 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushFeature.java @@ -9,7 +9,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; import ru.bclib.sdf.operator.SDFScale3D; @@ -39,8 +39,8 @@ public class BushFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND) && !world.getBlockState(pos.above()) - .is(TagAPI.BLOCK_END_GROUND)) + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES) && !world.getBlockState(pos.above()) + .is(CommonBlockTags.END_STONES)) return false; float radius = MHelper.randRange(1.8F, 3.5F, random); diff --git a/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java b/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java index b87a4fa1..0708463a 100644 --- a/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/BushWithOuterFeature.java @@ -10,7 +10,7 @@ import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; import ru.bclib.sdf.operator.SDFScale3D; @@ -43,8 +43,8 @@ public class BushWithOuterFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND) && !world.getBlockState(pos.above()) - .is(TagAPI.BLOCK_END_GROUND)) + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES) && !world.getBlockState(pos.above()) + .is(CommonBlockTags.END_STONES)) return false; float radius = MHelper.randRange(1.8F, 3.5F, random); diff --git a/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java b/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java index 4752f2a7..f8698751 100644 --- a/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/LargeAmaranitaFeature.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BlockProperties; import ru.bclib.blocks.BlockProperties.TripleShape; import ru.bclib.util.BlocksHelper; @@ -23,7 +23,7 @@ public class LargeAmaranitaFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false; + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) return false; MutableBlockPos mut = new MutableBlockPos().set(pos); int height = MHelper.randRange(2, 3, random); diff --git a/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java b/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java index 46f41366..a02a96e7 100644 --- a/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java +++ b/src/main/java/ru/betterend/world/features/bushes/Lumecorn.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; @@ -23,7 +23,7 @@ public class Lumecorn extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false; + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) return false; int height = MHelper.randRange(4, 7, random); MutableBlockPos mut = new MutableBlockPos().set(pos); diff --git a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java index 9f19222e..e12de794 100644 --- a/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java +++ b/src/main/java/ru/betterend/world/features/bushes/TenaneaBushFeature.java @@ -10,7 +10,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BlockProperties; import ru.bclib.blocks.BlockProperties.TripleShape; import ru.bclib.sdf.SDF; @@ -42,7 +42,7 @@ public class TenaneaBushFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) return false; + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) return false; float radius = MHelper.randRange(1.8F, 3.5F, random); OpenSimplexNoise noise = new OpenSimplexNoise(random.nextInt()); diff --git a/src/main/java/ru/betterend/world/features/terrain/ArchFeature.java b/src/main/java/ru/betterend/world/features/terrain/ArchFeature.java index ef2fe51c..dc7b15c5 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ArchFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ArchFeature.java @@ -9,7 +9,7 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; import ru.bclib.sdf.operator.SDFRotation; @@ -41,7 +41,7 @@ public class ArchFeature extends DefaultFeature { world, new BlockPos((origin.getX() & 0xFFFFFFF0) | 7, 0, (origin.getZ() & 0xFFFFFFF0) | 7) ); - if (!world.getBlockState(pos.below(5)).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) { return false; } diff --git a/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java b/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java index 82faf6d5..bbef945f 100644 --- a/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/BigAuroraCrystalFeature.java @@ -6,7 +6,7 @@ import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFRotation; import ru.bclib.sdf.primitive.SDFHexPrism; @@ -40,8 +40,8 @@ public class BigAuroraCrystalFeature extends DefaultFeature { Vector3f vec = MHelper.randomHorizontal(random); prism = new SDFRotation().setRotation(vec, random.nextFloat()).setSource(prism); prism.setReplaceFunction((bState) -> { - return bState.getMaterial().isReplaceable() || bState.is(TagAPI.BLOCK_GEN_TERRAIN) || bState.getMaterial() - .equals(Material.PLANT) || bState + return bState.getMaterial().isReplaceable() || bState.is(CommonBlockTags.GEN_END_STONES) || bState.getMaterial() + .equals(Material.PLANT) || bState .getMaterial() .equals(Material.LEAVES); }); diff --git a/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java index 8774f75c..60fe2d4a 100644 --- a/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java @@ -9,7 +9,7 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; @@ -119,11 +119,11 @@ public class DesertLakeFeature extends DefaultFeature { r *= r; if (x2 + z2 <= r) { state = world.getBlockState(POS); - if (state.is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (state.is(CommonBlockTags.GEN_END_STONES)) { BlocksHelper.setWithoutUpdate(world, POS, AIR); } pos = POS.below(); - if (world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos).is(CommonBlockTags.GEN_END_STONES)) { state = EndBiome.findTopMaterial(world, pos); //world.getBiome(pos).getGenerationSettings().getSurfaceBuilderConfig().getTopMaterial(); if (y > waterLevel + 1) BlocksHelper.setWithoutUpdate(world, pos, state); else if (y > waterLevel) @@ -178,7 +178,7 @@ public class DesertLakeFeature extends DefaultFeature { BlocksHelper.setWithoutUpdate(world, POS, state); } pos = POS.below(); - if (world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos).is(CommonBlockTags.GEN_END_STONES)) { BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.ENDSTONE_DUST.defaultBlockState()); } pos = POS.above(); @@ -191,7 +191,7 @@ public class DesertLakeFeature extends DefaultFeature { // Make border else if (y2 + x2 + z2 <= rb) { state = world.getBlockState(POS); - if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && world.isEmptyBlock(POS.above())) { + if (state.is(CommonBlockTags.GEN_END_STONES) && world.isEmptyBlock(POS.above())) { BlocksHelper.setWithoutUpdate(world, POS, EndBlocks.END_MOSS); } else if (y < waterLevel) { @@ -230,7 +230,7 @@ public class DesertLakeFeature extends DefaultFeature { private boolean canReplace(BlockState state) { return state.getMaterial() - .isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial() + .isReplaceable() || state.is(CommonBlockTags.GEN_END_STONES) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial() .equals( Material.PLANT) || state .getMaterial() diff --git a/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java index 7a9b7dba..a5a8c7d5 100644 --- a/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java @@ -9,7 +9,7 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.FluidState; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; @@ -123,11 +123,11 @@ public class EndLakeFeature extends DefaultFeature { r *= r; if (x2 + z2 <= r) { state = world.getBlockState(POS); - if (state.is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (state.is(CommonBlockTags.GEN_END_STONES)) { BlocksHelper.setWithoutUpdate(world, POS, AIR); } pos = POS.below(); - if (world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos).is(CommonBlockTags.GEN_END_STONES)) { state = EndBiome.findTopMaterial(world, pos); if (y > waterLevel + 1) BlocksHelper.setWithoutUpdate(world, pos, state); else if (y > waterLevel) @@ -182,7 +182,7 @@ public class EndLakeFeature extends DefaultFeature { BlocksHelper.setWithoutUpdate(world, POS, state); } pos = POS.below(); - if (world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos).is(CommonBlockTags.GEN_END_STONES)) { BlocksHelper.setWithoutUpdate(world, pos, EndBlocks.ENDSTONE_DUST.defaultBlockState()); } pos = POS.above(); @@ -228,7 +228,7 @@ public class EndLakeFeature extends DefaultFeature { private boolean canReplace(BlockState state) { return state.getMaterial() - .isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial() + .isReplaceable() || state.is(CommonBlockTags.GEN_END_STONES) || state.is(EndBlocks.ENDSTONE_DUST) || state.getMaterial() .equals( Material.PLANT) || state .getMaterial() diff --git a/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java b/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java index b5ca611e..73190f08 100644 --- a/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/FallenPillarFeature.java @@ -8,7 +8,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; import ru.bclib.sdf.operator.SDFRotation; @@ -31,7 +31,7 @@ public class FallenPillarFeature extends DefaultFeature { world, new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16)) ); - if (!world.getBlockState(pos.below(5)).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) { return false; } @@ -57,7 +57,7 @@ public class FallenPillarFeature extends DefaultFeature { } return info.getState(); }).setReplaceFunction((state) -> { - return state.getMaterial().isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.getMaterial() + return state.getMaterial().isReplaceable() || state.is(CommonBlockTags.GEN_END_STONES) || state.getMaterial() .equals(Material.PLANT); }).fillRecursive(world, pos); diff --git a/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java b/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java index ca9db523..36bb5819 100644 --- a/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/GeyserFeature.java @@ -13,7 +13,7 @@ import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFCoordModify; import ru.bclib.sdf.operator.SDFDisplacement; @@ -61,7 +61,7 @@ public class GeyserFeature extends DefaultFeature { MutableBlockPos bpos = new MutableBlockPos().set(pos); bpos.setY(bpos.getY() - 1); BlockState state = world.getBlockState(bpos); - while (state.is(TagAPI.BLOCK_GEN_TERRAIN) || !state.getFluidState().isEmpty() && bpos.getY() > 5) { + while (state.is(CommonBlockTags.GEN_END_STONES) || !state.getFluidState().isEmpty() && bpos.getY() > 5) { bpos.setY(bpos.getY() - 1); state = world.getBlockState(bpos); } @@ -195,7 +195,7 @@ public class GeyserFeature extends DefaultFeature { mut.setY(mut.getY() - 1); state = world.getBlockState(mut); } - if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && !world.getBlockState(mut.above()).is(EndBlocks.HYDROTHERMAL_VENT)) { + if (state.is(CommonBlockTags.GEN_END_STONES) && !world.getBlockState(mut.above()).is(EndBlocks.HYDROTHERMAL_VENT)) { for (int j = 0; j <= dist; j++) { BlocksHelper.setWithoutUpdate(world, mut, EndBlocks.SULPHURIC_ROCK.stone); MHelper.shuffle(HORIZONTAL, random); @@ -240,7 +240,7 @@ public class GeyserFeature extends DefaultFeature { mut.setY(mut.getY() - 1); state = world.getBlockState(mut); } - if (state.is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (state.is(CommonBlockTags.GEN_END_STONES)) { for (int j = 0; j <= dist; j++) { BlocksHelper.setWithoutUpdate(world, mut, EndBlocks.SULPHURIC_ROCK.stone); mut.setY(mut.getY() + 1); @@ -272,11 +272,11 @@ public class GeyserFeature extends DefaultFeature { static { REPLACE1 = (state) -> { - return state.isAir() || (state.is(TagAPI.BLOCK_GEN_TERRAIN)); + return state.isAir() || (state.is(CommonBlockTags.GEN_END_STONES)); }; REPLACE2 = (state) -> { - if (state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(EndBlocks.HYDROTHERMAL_VENT) || state.is(EndBlocks.SULPHUR_CRYSTAL)) { + if (state.is(CommonBlockTags.GEN_END_STONES) || state.is(EndBlocks.HYDROTHERMAL_VENT) || state.is(EndBlocks.SULPHUR_CRYSTAL)) { return true; } if (state.getMaterial().equals(Material.PLANT)) { diff --git a/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java b/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java index 736af16c..890385f8 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianBoulderFeature.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; import ru.bclib.sdf.operator.SDFScale3D; @@ -29,7 +29,7 @@ public class ObsidianBoulderFeature extends DefaultFeature { world, new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16)) ); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) { + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { return false; } @@ -46,7 +46,7 @@ public class ObsidianBoulderFeature extends DefaultFeature { } private void makeBoulder(WorldGenLevel world, BlockPos pos, Random random) { - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_END_GROUND)) { + if (!world.getBlockState(pos.below()).is(CommonBlockTags.END_STONES)) { return; } @@ -68,7 +68,7 @@ public class ObsidianBoulderFeature extends DefaultFeature { } return info.getState(); }).setReplaceFunction((state) -> { - return state.getMaterial().isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.getMaterial() + return state.getMaterial().isReplaceable() || state.is(CommonBlockTags.GEN_END_STONES) || state.getMaterial() .equals(Material.PLANT); }).fillRecursive(world, pos); } diff --git a/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java b/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java index 9411bbbf..f56b89c8 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ObsidianPillarBasementFeature.java @@ -8,7 +8,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; import ru.bclib.sdf.operator.SDFRotation; @@ -33,7 +33,7 @@ public class ObsidianPillarBasementFeature extends DefaultFeature { world, new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16)) ); - if (!world.getBlockState(pos.below(5)).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) { return false; } @@ -64,7 +64,7 @@ public class ObsidianPillarBasementFeature extends DefaultFeature { } return info.getState(); }).setReplaceFunction((state) -> { - return state.getMaterial().isReplaceable() || state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.getMaterial() + return state.getMaterial().isReplaceable() || state.is(CommonBlockTags.GEN_END_STONES) || state.getMaterial() .equals(Material.PLANT); }).fillRecursive(world, pos); diff --git a/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java b/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java index 416680fe..d98dd712 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SingleBlockFeature.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.world.features.DefaultFeature; @@ -25,7 +25,7 @@ public class SingleBlockFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (!world.getBlockState(pos.below()).is(CommonBlockTags.GEN_END_STONES)) { return false; } diff --git a/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java b/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java index 4ec06f76..a93b1367 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SmaragdantCrystalFeature.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; @@ -21,7 +21,7 @@ public class SmaragdantCrystalFeature extends DefaultFeature { final Random random = featureConfig.random(); final BlockPos pos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); - if (!world.getBlockState(pos.below()).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (!world.getBlockState(pos.below()).is(CommonBlockTags.GEN_END_STONES)) { return false; } @@ -42,7 +42,7 @@ public class SmaragdantCrystalFeature extends DefaultFeature { mut.setY(mut.getY() - 1); state = world.getBlockState(mut); } - if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && !world.getBlockState(mut.above()).is(crystal.getBlock())) { + if (state.is(CommonBlockTags.GEN_END_STONES) && !world.getBlockState(mut.above()).is(crystal.getBlock())) { for (int j = 0; j <= dist; j++) { BlocksHelper.setWithoutUpdate(world, mut, crystal); mut.setY(mut.getY() + 1); diff --git a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java index 04440416..7ffbc296 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SpireFeature.java @@ -11,8 +11,8 @@ import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; import ru.bclib.api.biomes.BiomeAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; import ru.bclib.sdf.operator.SDFSmoothUnion; @@ -41,8 +41,8 @@ public class SpireFeature extends DefaultFeature { final ChunkGenerator chunkGenerator = featureConfig.chunkGenerator(); pos = getPosOnSurfaceWG(world, pos); if (pos.getY() < 10 || !world.getBlockState(pos.below(3)) - .is(TagAPI.BLOCK_GEN_TERRAIN) || !world.getBlockState(pos.below(6)) - .is(TagAPI.BLOCK_GEN_TERRAIN)) { + .is(CommonBlockTags.GEN_END_STONES) || !world.getBlockState(pos.below(6)) + .is(CommonBlockTags.GEN_END_STONES)) { return false; } @@ -99,7 +99,7 @@ public class SpireFeature extends DefaultFeature { static { REPLACE = (state) -> { - if (state.is(TagAPI.BLOCK_END_GROUND)) { + if (state.is(CommonBlockTags.END_STONES)) { return true; } if (state.getBlock() instanceof LeavesBlock) { diff --git a/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java b/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java index 3065a834..a4e8a510 100644 --- a/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/StalactiteFeature.java @@ -9,7 +9,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.StalactiteBlock; import ru.bclib.util.BlocksHelper; import ru.bclib.world.features.DefaultFeature; @@ -45,7 +45,7 @@ public class StalactiteFeature extends DefaultFeature { mut.setY(pos.getY() + i * dir); BlockState state = world.getBlockState(mut); if (!state.getMaterial().isReplaceable()) { - stalagnate = state.is(TagAPI.BLOCK_GEN_TERRAIN); + stalagnate = state.is(CommonBlockTags.GEN_END_STONES); height = i; break; } diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java index 00398093..93141653 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricCaveFeature.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; @@ -44,7 +44,7 @@ public class SulphuricCaveFeature extends DefaultFeature { bpos.setY(top - 1); BlockState state = world.getBlockState(bpos); - while (!state.is(TagAPI.BLOCK_GEN_TERRAIN) && bpos.getY() > 5) { + while (!state.is(CommonBlockTags.GEN_END_STONES) && bpos.getY() > 5) { bpos.setY(bpos.getY() - 1); state = world.getBlockState(bpos); } @@ -53,7 +53,7 @@ public class SulphuricCaveFeature extends DefaultFeature { } top = (int) (bpos.getY() - (radius * 1.3F + 5)); - while (state.is(TagAPI.BLOCK_GEN_TERRAIN) || !state.getFluidState().isEmpty() && bpos.getY() > 5) { + while (state.is(CommonBlockTags.GEN_END_STONES) || !state.getFluidState().isEmpty() && bpos.getY() > 5) { bpos.setY(bpos.getY() - 1); state = world.getBlockState(bpos); } @@ -105,7 +105,7 @@ public class SulphuricCaveFeature extends DefaultFeature { } else if (dist < r2 * r2) { state = world.getBlockState(mut); - if (state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(Blocks.AIR)) { + if (state.is(CommonBlockTags.GEN_END_STONES) || state.is(Blocks.AIR)) { double v = noise.eval(x * 0.1, y * 0.1, z * 0.1) + noise.eval( x * 0.03, y * 0.03, @@ -144,7 +144,7 @@ public class SulphuricCaveFeature extends DefaultFeature { mut.setY(mut.getY() - 1); state = world.getBlockState(mut); } - if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && !world.getBlockState(mut.above()) + if (state.is(CommonBlockTags.GEN_END_STONES) && !world.getBlockState(mut.above()) .is(EndBlocks.HYDROTHERMAL_VENT)) { for (int j = 0; j <= dist; j++) { BlocksHelper.setWithoutUpdate(world, mut, EndBlocks.SULPHURIC_ROCK.stone); @@ -182,7 +182,7 @@ public class SulphuricCaveFeature extends DefaultFeature { } private boolean isReplaceable(BlockState state) { - return state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.is(EndBlocks.HYDROTHERMAL_VENT) || state.is(EndBlocks.VENT_BUBBLE_COLUMN) || state + return state.is(CommonBlockTags.GEN_END_STONES) || state.is(EndBlocks.HYDROTHERMAL_VENT) || state.is(EndBlocks.VENT_BUBBLE_COLUMN) || state .is(EndBlocks.SULPHUR_CRYSTAL) || state.getMaterial().isReplaceable() || state.getMaterial() .equals(Material.PLANT) || state .getMaterial() diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java index 0962cc36..8df1be2d 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java @@ -10,7 +10,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Fluids; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; @@ -61,7 +61,7 @@ public class SulphuricLakeFeature extends DefaultFeature { int dist = x2 + z2; if (dist <= r) { POS.setY(getYOnSurface(world, x, z) - 1); - if (world.getBlockState(POS).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(POS).is(CommonBlockTags.GEN_END_STONES)) { if (isBorder(world, POS)) { if (random.nextInt(8) > 0) { brimstone.add(POS.immutable()); @@ -97,7 +97,7 @@ public class SulphuricLakeFeature extends DefaultFeature { brimstone.remove(POS); for (Direction dir : BlocksHelper.HORIZONTAL) { BlockPos offseted = POS.relative(dir); - if (world.getBlockState(offseted).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(offseted).is(CommonBlockTags.GEN_END_STONES)) { brimstone.add(offseted); } } @@ -106,7 +106,7 @@ public class SulphuricLakeFeature extends DefaultFeature { brimstone.remove(POS); for (Direction dir : BlocksHelper.HORIZONTAL) { BlockPos offseted = POS.relative(dir); - if (world.getBlockState(offseted).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(offseted).is(CommonBlockTags.GEN_END_STONES)) { brimstone.add(offseted); } } @@ -123,7 +123,7 @@ public class SulphuricLakeFeature extends DefaultFeature { } else if (dist < r2) { POS.setY(getYOnSurface(world, x, z) - 1); - if (world.getBlockState(POS).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(POS).is(CommonBlockTags.GEN_END_STONES)) { brimstone.add(POS.immutable()); if (random.nextBoolean()) { brimstone.add(POS.below()); diff --git a/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java b/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java index a7b8133f..1e6dffa4 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SurfaceVentFeature.java @@ -6,7 +6,7 @@ import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; @@ -25,7 +25,7 @@ public class SurfaceVentFeature extends DefaultFeature { world, new BlockPos(pos.getX() + random.nextInt(16), pos.getY(), pos.getZ() + random.nextInt(16)) ); - if (!world.getBlockState(pos.below(3)).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (!world.getBlockState(pos.below(3)).is(CommonBlockTags.GEN_END_STONES)) { return false; } @@ -46,7 +46,7 @@ public class SurfaceVentFeature extends DefaultFeature { mut.setY(mut.getY() - 1); state = world.getBlockState(mut); } - if (state.is(TagAPI.BLOCK_GEN_TERRAIN) && !world.getBlockState(mut.above()).is(EndBlocks.HYDROTHERMAL_VENT)) { + if (state.is(CommonBlockTags.GEN_END_STONES) && !world.getBlockState(mut.above()).is(EndBlocks.HYDROTHERMAL_VENT)) { for (int j = 0; j <= dist; j++) { BlocksHelper.setWithoutUpdate(world, mut, EndBlocks.SULPHURIC_ROCK.stone); mut.setY(mut.getY() + 1); diff --git a/src/main/java/ru/betterend/world/features/terrain/ThinArchFeature.java b/src/main/java/ru/betterend/world/features/terrain/ThinArchFeature.java index 95bb6edb..3b6c6599 100644 --- a/src/main/java/ru/betterend/world/features/terrain/ThinArchFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/ThinArchFeature.java @@ -9,7 +9,7 @@ import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.Vec3; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFCoordModify; import ru.bclib.sdf.operator.SDFDisplacement; @@ -36,7 +36,7 @@ public class ThinArchFeature extends DefaultFeature { Random random = featurePlaceContext.random(); BlockPos pos = getPosOnSurfaceWG(world, new BlockPos((origin.getX() & 0xFFFFFFF0) | 7, 0, (origin.getZ() & 0xFFFFFFF0) | 7)); - if (!world.getBlockState(pos.below(5)).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (!world.getBlockState(pos.below(5)).is(CommonBlockTags.GEN_END_STONES)) { return false; } diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java index e092dec8..8aa761da 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/CaveChunkPopulatorFeature.java @@ -10,7 +10,7 @@ import net.minecraft.world.level.chunk.ChunkAccess; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.world.features.DefaultFeature; import ru.betterend.util.BlockFixer; @@ -63,13 +63,13 @@ public class CaveChunkPopulatorFeature extends DefaultFeature { mut.setY(y); BlockState top = chunk.getBlockState(mut); BlockState bottom = chunk.getBlockState(mut2); - if (top.isAir() && (bottom.is(TagAPI.BLOCK_GEN_TERRAIN) || bottom.is(Blocks.STONE))) { + if (top.isAir() && (bottom.is(CommonBlockTags.GEN_END_STONES) || bottom.is(Blocks.STONE))) { mut3.set(mut2).move(sx, 0, sz); floorPositions.add(mut3.immutable()); updateMin(mut3, min); updateMax(mut3, max); } - else if (bottom.isAir() && (top.is(TagAPI.BLOCK_GEN_TERRAIN) || top.is(Blocks.STONE))) { + else if (bottom.isAir() && (top.is(CommonBlockTags.GEN_END_STONES) || top.is(Blocks.STONE))) { mut3.set(mut).move(sx, 0, sz); ceilPositions.add(mut3.immutable()); updateMin(mut3, min); diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java index c0f202cf..c6b2cee2 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/EndCaveFeature.java @@ -14,8 +14,8 @@ import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; import ru.bclib.api.biomes.BiomeAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.biomes.BCLBiome; @@ -66,11 +66,11 @@ public abstract class EndCaveFeature extends DefaultFeature { caveBlocks.parallelStream().forEach((bpos) -> { if (world.getBlockState(bpos).getMaterial().isReplaceable()) { BlockPos side = bpos.below(); - if (world.getBlockState(side).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(side).is(CommonBlockTags.GEN_END_STONES)) { floorPositions.add(side); } side = bpos.above(); - if (world.getBlockState(side).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(side).is(CommonBlockTags.GEN_END_STONES)) { ceilPositions.add(side); } } @@ -128,7 +128,7 @@ public abstract class EndCaveFeature extends DefaultFeature { if (wallBlock != null) { for (Vec3i offset : SPHERE) { BlockPos wallPos = pos.offset(offset); - if (!positions.contains(wallPos) && !placed.contains(wallPos) && world.getBlockState(wallPos).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (!positions.contains(wallPos) && !placed.contains(wallPos) && world.getBlockState(wallPos).is(CommonBlockTags.GEN_END_STONES)) { wallBlock = biome.getWall(wallPos); BlocksHelper.setWithoutUpdate(world, wallPos, wallBlock); placed.add(wallPos); @@ -164,7 +164,7 @@ public abstract class EndCaveFeature extends DefaultFeature { bpos.setY(top - 1); BlockState state = world.getBlockState(bpos); - while (!state.is(TagAPI.BLOCK_GEN_TERRAIN) && bpos.getY() > 5) { + while (!state.is(CommonBlockTags.GEN_END_STONES) && bpos.getY() > 5) { bpos.setY(bpos.getY() - 1); state = world.getBlockState(bpos); } @@ -173,7 +173,7 @@ public abstract class EndCaveFeature extends DefaultFeature { } top = (int) (bpos.getY() - (radius * 1.3F + 5)); - while (state.is(TagAPI.BLOCK_GEN_TERRAIN) || !state.getFluidState().isEmpty() && bpos.getY() > 5) { + while (state.is(CommonBlockTags.GEN_END_STONES) || !state.getFluidState().isEmpty() && bpos.getY() > 5) { bpos.setY(bpos.getY() - 1); state = world.getBlockState(bpos); } diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java index 07afd22d..98aea791 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/RoundCaveFeature.java @@ -6,7 +6,7 @@ import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; @@ -74,7 +74,7 @@ public class RoundCaveFeature extends EndCaveFeature { } private boolean isReplaceable(BlockState state) { - return state.is(TagAPI.BLOCK_GEN_TERRAIN) || + return state.is(CommonBlockTags.GEN_END_STONES) || state.getMaterial().isReplaceable() || state.getMaterial().equals(Material.PLANT) || state.getMaterial().equals(Material.LEAVES); diff --git a/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java b/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java index 7b23abb4..114ede15 100644 --- a/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/caves/TunelCaveFeature.java @@ -15,8 +15,8 @@ import net.minecraft.world.level.levelgen.Heightmap.Types; import net.minecraft.world.level.levelgen.feature.Feature; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; -import ru.bclib.api.TagAPI; import ru.bclib.api.biomes.BiomeAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.world.biomes.BCLBiome; import ru.betterend.noise.OpenSimplexNoise; @@ -82,7 +82,7 @@ public class TunelCaveFeature extends EndCaveFeature { ) * 20) * 0.1F) * 0.9F; float dist = (float) noiseD.eval(pos.getX() * 0.1, y * 0.1, pos.getZ() * 0.1) * 0.12F; val = (val + vert * vert + dist) + density + gradient; - if (val < 0.15 && world.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN) && noWaterNear(world, pos)) { + if (val < 0.15 && world.getBlockState(pos).is(CommonBlockTags.GEN_END_STONES) && noWaterNear(world, pos)) { positions.add(pos.immutable()); } } @@ -141,7 +141,7 @@ public class TunelCaveFeature extends EndCaveFeature { } else if (world.getBlockState(mut).getMaterial().isReplaceable()) { mut.setY(bpos.getY() - 1); - if (world.getBlockState(mut).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(mut).is(CommonBlockTags.GEN_END_STONES)) { Set floorPositions = floorSets.get(bio); if (floorPositions == null) { floorPositions = Sets.newHashSet(); @@ -150,7 +150,7 @@ public class TunelCaveFeature extends EndCaveFeature { floorPositions.add(mut.immutable()); } mut.setY(bpos.getY() + 1); - if (world.getBlockState(mut).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(mut).is(CommonBlockTags.GEN_END_STONES)) { Set ceilPositions = ceilSets.get(bio); if (ceilPositions == null) { ceilPositions = Sets.newHashSet(); diff --git a/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java index 6a46e825..baf18b68 100644 --- a/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/DragonTreeFeature.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.PosInfo; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; @@ -112,7 +112,7 @@ public class DragonTreeFeature extends DefaultFeature { SplineHelper.rotateSpline(branch, angle); SplineHelper.scale(branch, scale); Vector3f last = branch.get(branch.size() - 1); - if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(CommonBlockTags.GEN_END_STONES)) { SplineHelper.fillSpline(branch, world, EndBlocks.DRAGON_TREE.getBark().defaultBlockState(), pos, REPLACE); } } @@ -196,7 +196,7 @@ public class DragonTreeFeature extends DefaultFeature { static { REPLACE = (state) -> { - /*if (state.is(TagAPI.BLOCK_END_GROUND)) { + /*if (state.is(CommonBlockTags.END_STONES)) { return true; }*/ if (state.getBlock() == EndBlocks.DRAGON_TREE_LEAVES) { diff --git a/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java b/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java index 040c678b..71a31ca2 100644 --- a/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/GiganticAmaranitaFeature.java @@ -361,7 +361,7 @@ public class GiganticAmaranitaFeature extends DefaultFeature { static { REPLACE = (state) -> { - if (/*state.is(TagAPI.BLOCK_END_GROUND) || */state.getMaterial().equals(Material.PLANT)) { + if (/*state.is(CommonBlockTags.END_STONES) || */state.getMaterial().equals(Material.PLANT)) { return true; } return state.getMaterial().isReplaceable(); diff --git a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java index 696bfeda..e8efe5d0 100644 --- a/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/JellyshroomFeature.java @@ -10,7 +10,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFFlatWave; import ru.bclib.sdf.operator.SDFScale3D; @@ -90,7 +90,7 @@ public class JellyshroomFeature extends DefaultFeature { SplineHelper.rotateSpline(branch, angle); SplineHelper.scale(branch, scale); Vector3f last = branch.get(branch.size() - 1); - if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(CommonBlockTags.GEN_END_STONES)) { SplineHelper.fillSpline(branch, world, wood, pos, REPLACE); } } @@ -123,7 +123,7 @@ public class JellyshroomFeature extends DefaultFeature { SplineHelper.offset(ROOT, new Vector3f(0, -0.45F, 0)); REPLACE = (state) -> { - if (/*state.is(TagAPI.BLOCK_END_GROUND) || */state.getMaterial().equals(Material.PLANT)) { + if (/*state.is(CommonBlockTags.END_STONES) || */state.getMaterial().equals(Material.PLANT)) { return true; } return state.getMaterial().isReplaceable(); diff --git a/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java b/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java index 50d72630..5703ab84 100644 --- a/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LacugroveFeature.java @@ -11,7 +11,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.PosInfo; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFDisplacement; @@ -83,7 +83,7 @@ public class LacugroveFeature extends DefaultFeature { boolean generate = false; for (int y = minY; y < maxY; y++) { mut.setY(y); - if (world.getBlockState(mut).is(TagAPI.BLOCK_END_GROUND)) { + if (world.getBlockState(mut).is(CommonBlockTags.END_STONES)) { generate = true; break; } @@ -94,7 +94,7 @@ public class LacugroveFeature extends DefaultFeature { mut.setY(y); BlockState state = world.getBlockState(mut); if (state.getMaterial().isReplaceable() || state.getMaterial() - .equals(Material.PLANT) || state.is(TagAPI.BLOCK_END_GROUND)) { + .equals(Material.PLANT) || state.is(CommonBlockTags.END_STONES)) { BlocksHelper.setWithoutUpdate( world, mut, @@ -189,7 +189,7 @@ public class LacugroveFeature extends DefaultFeature { static { REPLACE = (state) -> { - /*if (state.is(TagAPI.BLOCK_END_GROUND)) { + /*if (state.is(CommonBlockTags.END_STONES)) { return true; }*/ if (EndBlocks.LACUGROVE.isTreeLog(state)) { diff --git a/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java b/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java index f1145e30..373f6bb0 100644 --- a/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/LucerniaFeature.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.blocks.BlockProperties; import ru.bclib.blocks.BlockProperties.TripleShape; import ru.bclib.sdf.SDF; @@ -187,7 +187,7 @@ public class LucerniaFeature extends DefaultFeature { SplineHelper.rotateSpline(branch, angle); SplineHelper.scale(branch, scale); Vector3f last = branch.get(branch.size() - 1); - if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(CommonBlockTags.GEN_END_STONES)) { SplineHelper.fillSplineForce(branch, world, EndBlocks.LUCERNIA.getBark().defaultBlockState(), pos, REPLACE); } } @@ -195,7 +195,7 @@ public class LucerniaFeature extends DefaultFeature { static { REPLACE = (state) -> { - /*if (state.is(TagAPI.BLOCK_END_GROUND)) { + /*if (state.is(CommonBlockTags.END_STONES)) { return true; }*/ if (state.getBlock() == EndBlocks.LUCERNIA_LEAVES) { diff --git a/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java b/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java index cdbc29c3..99b65c3a 100644 --- a/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/MossyGlowshroomFeature.java @@ -171,7 +171,7 @@ public class MossyGlowshroomFeature extends DefaultFeature { .setSourceB(new SDFUnion().setSourceA(HEAD_POS).setSourceB(ROOTS_ROT)); REPLACE = (state) -> { - /*if (state.is(TagAPI.BLOCK_END_GROUND)) { + /*if (state.is(CommonBlockTags.END_STONES)) { return true; }*/ if (state.getMaterial().equals(Material.PLANT)) { diff --git a/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java index 087a1903..17aaac08 100644 --- a/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/PythadendronTreeFeature.java @@ -187,7 +187,7 @@ public class PythadendronTreeFeature extends DefaultFeature { static { REPLACE = (state) -> { - /*if (state.is(TagAPI.BLOCK_END_GROUND)) { + /*if (state.is(CommonBlockTags.END_STONES)) { return true; }*/ if (state.getBlock() == EndBlocks.PYTHADENDRON_LEAVES) { diff --git a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java index 01aa5d65..e8c4492e 100644 --- a/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/TenaneaFeature.java @@ -175,7 +175,7 @@ public class TenaneaFeature extends DefaultFeature { static { REPLACE = (state) -> { - /*if (state.is(TagAPI.BLOCK_END_GROUND)) { + /*if (state.is(CommonBlockTags.END_STONES)) { return true; }*/ if (state.getBlock() == EndBlocks.TENANEA_LEAVES) { diff --git a/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java b/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java index e37207cd..af0ef623 100644 --- a/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java +++ b/src/main/java/ru/betterend/world/features/trees/UmbrellaTreeFeature.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext; import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConfiguration; import net.minecraft.world.level.material.Material; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.sdf.SDF; import ru.bclib.sdf.operator.SDFFlatWave; import ru.bclib.sdf.operator.SDFScale; @@ -159,7 +159,7 @@ public class UmbrellaTreeFeature extends DefaultFeature { SplineHelper.rotateSpline(branch, angle); SplineHelper.scale(branch, scale); Vector3f last = branch.get(branch.size() - 1); - if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(TagAPI.BLOCK_GEN_TERRAIN)) { + if (world.getBlockState(pos.offset(last.x(), last.y(), last.z())).is(CommonBlockTags.GEN_END_STONES)) { SplineHelper.fillSplineForce(branch, world, wood, pos, REPLACE); } } @@ -218,7 +218,7 @@ public class UmbrellaTreeFeature extends DefaultFeature { SplineHelper.offset(ROOT, new Vector3f(0, -0.45F, 0)); REPLACE = (state) -> { - if (/*state.is(TagAPI.BLOCK_END_GROUND) || */state.getMaterial().equals(Material.PLANT) || state.is(EndBlocks.UMBRELLA_TREE_MEMBRANE)) { + if (/*state.is(CommonBlockTags.END_STONES) || */state.getMaterial().equals(Material.PLANT) || state.is(EndBlocks.UMBRELLA_TREE_MEMBRANE)) { return true; } return state.getMaterial().isReplaceable(); diff --git a/src/main/java/ru/betterend/world/structures/piece/CavePiece.java b/src/main/java/ru/betterend/world/structures/piece/CavePiece.java index bd9ecbbf..08ddaf45 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CavePiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CavePiece.java @@ -11,7 +11,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.chunk.ChunkGenerator; import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSerializationContext; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; @@ -67,7 +67,7 @@ public class CavePiece extends BasePiece { double r2 = r - 4.5; double dist = xsq + ysq + zsq; if (dist < r2 * r2) { - if (world.getBlockState(pos).is(TagAPI.BLOCK_END_GROUND)) { + if (world.getBlockState(pos).is(CommonBlockTags.END_STONES)) { BlocksHelper.setWithoutUpdate(world, pos, CAVE_AIR); } } diff --git a/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java index 60acae3b..10027b39 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java @@ -16,7 +16,8 @@ import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.levelgen.Heightmap.Types; import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSerializationContext; -import ru.bclib.api.TagAPI; +import ru.bclib.api.tag.CommonBlockTags; +import ru.bclib.api.tag.TagAPI; import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.util.MHelper; import ru.betterend.registry.EndBlocks; @@ -69,7 +70,7 @@ public class CrystalMountainPiece extends MountainPiece { continue; } pos.setY(minY); - while (!chunk.getBlockState(pos).is(TagAPI.BLOCK_GEN_TERRAIN) && pos.getY() > 56 && !chunk.getBlockState( + while (!chunk.getBlockState(pos).is(CommonBlockTags.GEN_END_STONES) && pos.getY() > 56 && !chunk.getBlockState( pos.below()).is(Blocks.CAVE_AIR)) { pos.setY(pos.getY() - 1); } diff --git a/src/main/java/ru/betterend/world/structures/piece/LakePiece.java b/src/main/java/ru/betterend/world/structures/piece/LakePiece.java index 4a582e27..cb8a1b8c 100644 --- a/src/main/java/ru/betterend/world/structures/piece/LakePiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/LakePiece.java @@ -21,8 +21,8 @@ import net.minecraft.world.level.levelgen.Heightmap.Types; import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSerializationContext; import net.minecraft.world.level.material.FluidState; -import ru.bclib.api.TagAPI; import ru.bclib.api.biomes.BiomeAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; @@ -118,7 +118,7 @@ public class LakePiece extends BasePiece { double dist = x3 + y2 + z3; if (dist < r2) { BlockState state = chunk.getBlockState(mut); - if (state.is(TagAPI.BLOCK_GEN_TERRAIN) || state.isAir()) { + if (state.is(CommonBlockTags.GEN_END_STONES) || state.isAir()) { state = mut.getY() < center.getY() ? WATER : CAVE_AIR; chunk.setBlockState(mut, state, false); } From 7d9d95fc1c12170e801d4a0c9ad35c0f4322ed16 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 27 Jan 2022 14:53:29 +0100 Subject: [PATCH 10/23] Fixed Helix Drops (#418) --- .../blocks/HelixTreeLeavesBlock.java | 23 ++----------------- 1 file changed, 2 insertions(+), 21 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java b/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java index 6d731d95..22378153 100644 --- a/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java +++ b/src/main/java/ru/betterend/blocks/HelixTreeLeavesBlock.java @@ -1,6 +1,5 @@ package ru.betterend.blocks; -import com.google.common.collect.Lists; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.client.color.block.BlockColor; @@ -8,8 +7,6 @@ import net.minecraft.client.color.item.ItemColor; import net.minecraft.util.Mth; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.BlockPlaceContext; -import net.minecraft.world.item.enchantment.EnchantmentHelper; -import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SoundType; import net.minecraft.world.level.block.state.BlockState; @@ -18,17 +15,16 @@ import net.minecraft.world.level.block.state.properties.IntegerProperty; import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.storage.loot.LootContext; -import net.minecraft.world.level.storage.loot.parameters.LootContextParams; import ru.bclib.api.tag.NamedBlockTags; import ru.bclib.api.tag.TagAPI; import ru.bclib.blocks.BaseBlock; +import ru.bclib.blocks.BaseLeavesBlock; import ru.bclib.interfaces.CustomColorProvider; import ru.bclib.util.ColorUtil; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; -import java.util.Collections; import java.util.List; public class HelixTreeLeavesBlock extends BaseBlock implements CustomColorProvider { @@ -82,21 +78,6 @@ public class HelixTreeLeavesBlock extends BaseBlock implements CustomColorProvid @Override public List getDrops(BlockState state, LootContext.Builder builder) { - ItemStack tool = builder.getParameter(LootContextParams.TOOL); - if (tool != null) { - if (tool.is(FabricToolTags.SHEARS) || tool.isCorrectToolForDrops(state) || EnchantmentHelper.getItemEnchantmentLevel( - Enchantments.SILK_TOUCH, - tool - ) > 0) { - return Collections.singletonList(new ItemStack(this)); - } - int fortune = EnchantmentHelper.getItemEnchantmentLevel(Enchantments.BLOCK_FORTUNE, tool); - if (MHelper.RANDOM.nextInt(16) <= fortune) { - return Lists.newArrayList(new ItemStack(EndBlocks.HELIX_TREE_SAPLING)); - } - return Lists.newArrayList(); - } - return MHelper.RANDOM.nextInt(32) == 0 ? Lists.newArrayList(new ItemStack(EndBlocks.HELIX_TREE_SAPLING)) : Lists - .newArrayList(); + return BaseLeavesBlock.getLeaveDrops(this, EndBlocks.HELIX_TREE_SAPLING, builder, 16, 32); } } From 0ec07dbaa0676f98a374fbad4c6825765bfead06 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 27 Jan 2022 15:04:55 +0100 Subject: [PATCH 11/23] Moved ModIntegration class --- .../java/ru/betterend/integration/EnderscapeIntegration.java | 2 +- .../integration/FlamboyantRefabricatedIntegration.java | 2 +- src/main/java/ru/betterend/integration/Integrations.java | 2 +- src/main/java/ru/betterend/integration/NourishIntegration.java | 2 +- src/main/java/ru/betterend/integration/byg/BYGIntegration.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/ru/betterend/integration/EnderscapeIntegration.java b/src/main/java/ru/betterend/integration/EnderscapeIntegration.java index 891731c0..992a7516 100644 --- a/src/main/java/ru/betterend/integration/EnderscapeIntegration.java +++ b/src/main/java/ru/betterend/integration/EnderscapeIntegration.java @@ -7,7 +7,7 @@ import net.minecraft.world.level.levelgen.GenerationStep.Decoration; import ru.bclib.api.biomes.BiomeAPI; import ru.bclib.api.tag.NamedCommonBlockTags; import ru.bclib.api.tag.TagAPI; -import ru.bclib.integration.modmenu.ModIntegration; +import ru.bclib.integration.ModIntegration; import ru.bclib.world.features.BCLFeature; public class EnderscapeIntegration extends ModIntegration { diff --git a/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java b/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java index f2c7d178..c8f45267 100644 --- a/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java +++ b/src/main/java/ru/betterend/integration/FlamboyantRefabricatedIntegration.java @@ -2,7 +2,7 @@ package ru.betterend.integration; import com.google.common.collect.Maps; import net.minecraft.world.level.ItemLike; -import ru.bclib.integration.modmenu.ModIntegration; +import ru.bclib.integration.ModIntegration; import ru.bclib.util.ColorUtil; import ru.betterend.blocks.HydraluxPetalColoredBlock; import ru.betterend.complexmaterials.ColoredMaterial; diff --git a/src/main/java/ru/betterend/integration/Integrations.java b/src/main/java/ru/betterend/integration/Integrations.java index 837b8fb8..21a7a9aa 100644 --- a/src/main/java/ru/betterend/integration/Integrations.java +++ b/src/main/java/ru/betterend/integration/Integrations.java @@ -5,7 +5,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import ru.bclib.api.ModIntegrationAPI; -import ru.bclib.integration.modmenu.ModIntegration; +import ru.bclib.integration.ModIntegration; import ru.bclib.recipes.GridRecipe; import ru.betterend.BetterEnd; import ru.betterend.config.Configs; diff --git a/src/main/java/ru/betterend/integration/NourishIntegration.java b/src/main/java/ru/betterend/integration/NourishIntegration.java index ed268d8a..518c0f8a 100644 --- a/src/main/java/ru/betterend/integration/NourishIntegration.java +++ b/src/main/java/ru/betterend/integration/NourishIntegration.java @@ -3,7 +3,7 @@ package ru.betterend.integration; import net.minecraft.world.item.Item; import ru.bclib.api.tag.TagAPI; import ru.bclib.api.tag.TagAPI.TagLocation; -import ru.bclib.integration.modmenu.ModIntegration; +import ru.bclib.integration.ModIntegration; import ru.betterend.registry.EndItems; public class NourishIntegration extends ModIntegration { diff --git a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java index 8b3dc233..429b6f0d 100644 --- a/src/main/java/ru/betterend/integration/byg/BYGIntegration.java +++ b/src/main/java/ru/betterend/integration/byg/BYGIntegration.java @@ -1,6 +1,6 @@ package ru.betterend.integration.byg; -import ru.bclib.integration.modmenu.ModIntegration; +import ru.bclib.integration.ModIntegration; import ru.betterend.integration.EndBiomeIntegration; public class BYGIntegration extends ModIntegration implements EndBiomeIntegration { From 2ef8fd08af00360caba1324164b9e4ca8c4b4422 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 27 Jan 2022 16:00:34 +0100 Subject: [PATCH 12/23] Dependency Updates --- gradle.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 1c39273b..2df0d8e5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ org.gradle.jvmargs=-Xmx2G # Fabric Properties # check these on https://fabricmc.net/use minecraft_version=1.18.1 -fabric_version = 0.44.0+1.18 +fabric_version = 0.46.2+1.18 loader_version=0.12.12 #Loom @@ -20,5 +20,5 @@ archives_base_name=better-end patchouli_version = 55-FABRIC-SNAPSHOT bclib_version = 1.3.0 -rei_version = 7.0.343 +rei_version = 7.2.408 canvas_version = 1.0.+ From 755a0ad7ab9e747b64a350255bc6479a86e49c4c Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 28 Jan 2022 17:13:34 +0100 Subject: [PATCH 13/23] Improved Thread safety (may help with #394) --- .../entities/BlockEntityHydrothermalVent.java | 3 ++- .../java/ru/betterend/entity/EndSlimeEntity.java | 4 +++- src/main/java/ru/betterend/util/GlobalState.java | 15 +++++++++++++++ .../world/features/FullHeightScatterFeature.java | 3 ++- .../world/features/InvertedScatterFeature.java | 3 ++- .../betterend/world/features/ScatterFeature.java | 3 ++- .../world/features/SilkMothNestFeature.java | 4 ++-- .../world/features/UnderwaterPlantScatter.java | 4 ++-- .../world/features/terrain/DesertLakeFeature.java | 4 +++- .../world/features/terrain/EndLakeFeature.java | 4 ++-- .../features/terrain/SulphuricLakeFeature.java | 6 ++++-- .../world/structures/piece/CavePiece.java | 3 ++- .../structures/piece/CrystalMountainPiece.java | 6 +++--- .../structures/piece/PaintedMountainPiece.java | 3 ++- 14 files changed, 46 insertions(+), 19 deletions(-) create mode 100644 src/main/java/ru/betterend/util/GlobalState.java diff --git a/src/main/java/ru/betterend/blocks/entities/BlockEntityHydrothermalVent.java b/src/main/java/ru/betterend/blocks/entities/BlockEntityHydrothermalVent.java index 4404d2d9..e2bd0ad5 100644 --- a/src/main/java/ru/betterend/blocks/entities/BlockEntityHydrothermalVent.java +++ b/src/main/java/ru/betterend/blocks/entities/BlockEntityHydrothermalVent.java @@ -17,12 +17,12 @@ import ru.betterend.interfaces.FallFlyingItem; import ru.betterend.registry.EndBlockEntities; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndParticles; +import ru.betterend.util.GlobalState; import java.util.List; public class BlockEntityHydrothermalVent extends BlockEntity { private final static Vec3 POSITIVE_Y = new Vec3(0.0f, 1.0f, 0.0f); - private static final MutableBlockPos POS = new MutableBlockPos(); public BlockEntityHydrothermalVent(BlockPos blockPos, BlockState blockState) { super(EndBlockEntities.HYDROTHERMAL_VENT, blockPos, blockState); @@ -51,6 +51,7 @@ public class BlockEntityHydrothermalVent extends BlockEntity { } private static void serverTick(Level level, BlockPos worldPosition, BlockState state, BlockEntityHydrothermalVent blockEntity) { + final MutableBlockPos POS = GlobalState.stateForThread().POS; boolean active = state.getValue(HydrothermalVentBlock.ACTIVATED); POS.set(worldPosition).move(Direction.UP); int height = active ? 85 : 25; diff --git a/src/main/java/ru/betterend/entity/EndSlimeEntity.java b/src/main/java/ru/betterend/entity/EndSlimeEntity.java index fb738466..98e69f68 100644 --- a/src/main/java/ru/betterend/entity/EndSlimeEntity.java +++ b/src/main/java/ru/betterend/entity/EndSlimeEntity.java @@ -40,6 +40,7 @@ import ru.bclib.util.MHelper; import ru.bclib.world.biomes.BCLBiome; import ru.betterend.interfaces.ISlime; import ru.betterend.registry.EndBiomes; +import ru.betterend.util.GlobalState; import java.util.EnumSet; import java.util.Random; @@ -49,7 +50,6 @@ public class EndSlimeEntity extends Slime { EndSlimeEntity.class, EntityDataSerializers.BYTE ); - private static final MutableBlockPos POS = new MutableBlockPos(); public EndSlimeEntity(EntityType entityType, Level world) { super(entityType, world); @@ -227,6 +227,8 @@ public class EndSlimeEntity extends Slime { } private static boolean isWaterNear(LevelAccessor world, BlockPos pos) { + final MutableBlockPos POS = GlobalState.stateForThread().POS; + for (int x = pos.getX() - 32; x <= pos.getX() + 32; x++) { POS.setX(x); for (int z = pos.getZ() - 32; z <= pos.getZ() + 32; z++) { diff --git a/src/main/java/ru/betterend/util/GlobalState.java b/src/main/java/ru/betterend/util/GlobalState.java new file mode 100644 index 00000000..5809e5da --- /dev/null +++ b/src/main/java/ru/betterend/util/GlobalState.java @@ -0,0 +1,15 @@ +package ru.betterend.util; + +import net.minecraft.core.BlockPos.MutableBlockPos; + +import java.util.concurrent.ConcurrentHashMap; + +public class GlobalState { + private static final ConcurrentHashMap statePool = new ConcurrentHashMap<>(); + public static void clearStatePool(){ + statePool.clear(); + } + public static GlobalState stateForThread() { return statePool.computeIfAbsent(Thread.currentThread(), t-> new GlobalState()); } + + public final MutableBlockPos POS = new MutableBlockPos(); +} diff --git a/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java b/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java index 0adf51e5..754b1bbd 100644 --- a/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/FullHeightScatterFeature.java @@ -9,11 +9,11 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; +import ru.betterend.util.GlobalState; import java.util.Random; public abstract class FullHeightScatterFeature extends DefaultFeature { - private static final MutableBlockPos POS = new MutableBlockPos(); private final int radius; public FullHeightScatterFeature(int radius) { @@ -26,6 +26,7 @@ public abstract class FullHeightScatterFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { + final MutableBlockPos POS = GlobalState.stateForThread().POS; final Random random = featureConfig.random(); final BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); diff --git a/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java b/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java index ba38dfb4..e0aa1df2 100644 --- a/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/InvertedScatterFeature.java @@ -9,11 +9,11 @@ import net.minecraft.world.level.levelgen.feature.configurations.NoneFeatureConf import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; +import ru.betterend.util.GlobalState; import java.util.Random; public abstract class InvertedScatterFeature extends DefaultFeature { - private static final MutableBlockPos POS = new MutableBlockPos(); private final int radius; public InvertedScatterFeature(int radius) { @@ -26,6 +26,7 @@ public abstract class InvertedScatterFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { + final MutableBlockPos POS = GlobalState.stateForThread().POS; final Random random = featureConfig.random(); final BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); diff --git a/src/main/java/ru/betterend/world/features/ScatterFeature.java b/src/main/java/ru/betterend/world/features/ScatterFeature.java index e7c7d095..74dc0ccb 100644 --- a/src/main/java/ru/betterend/world/features/ScatterFeature.java +++ b/src/main/java/ru/betterend/world/features/ScatterFeature.java @@ -9,11 +9,11 @@ import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.bclib.world.features.DefaultFeature; +import ru.betterend.util.GlobalState; import java.util.Random; public abstract class ScatterFeature extends DefaultFeature { - private static final MutableBlockPos POS = new MutableBlockPos(); private final int radius; public ScatterFeature(int radius) { @@ -57,6 +57,7 @@ public abstract class ScatterFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { + final MutableBlockPos POS = GlobalState.stateForThread().POS; final Random random = featureConfig.random(); BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); diff --git a/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java b/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java index 3e918d28..bc1a18f8 100644 --- a/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java +++ b/src/main/java/ru/betterend/world/features/SilkMothNestFeature.java @@ -14,12 +14,11 @@ import ru.bclib.blocks.BlockProperties; import ru.bclib.util.BlocksHelper; import ru.bclib.world.features.DefaultFeature; import ru.betterend.registry.EndBlocks; +import ru.betterend.util.GlobalState; import java.util.Random; public class SilkMothNestFeature extends DefaultFeature { - private static final MutableBlockPos POS = new MutableBlockPos(); - private boolean canGenerate(WorldGenLevel world, BlockPos pos) { BlockState state = world.getBlockState(pos.above()); if (state.is(BlockTags.LEAVES) || state.is(BlockTags.LOGS)) { @@ -35,6 +34,7 @@ public class SilkMothNestFeature extends DefaultFeature { @Override public boolean place(FeaturePlaceContext featureConfig) { + final MutableBlockPos POS = GlobalState.stateForThread().POS; final Random random = featureConfig.random(); final BlockPos center = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); diff --git a/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java b/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java index 38106f16..35c3ae9e 100644 --- a/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java +++ b/src/main/java/ru/betterend/world/features/UnderwaterPlantScatter.java @@ -4,18 +4,18 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.BlockPos.MutableBlockPos; import net.minecraft.world.level.WorldGenLevel; import net.minecraft.world.level.block.Blocks; +import ru.betterend.util.GlobalState; import java.util.Random; public abstract class UnderwaterPlantScatter extends ScatterFeature { - private static final MutableBlockPos POS = new MutableBlockPos(); - public UnderwaterPlantScatter(int radius) { super(radius); } @Override protected BlockPos getCenterGround(WorldGenLevel world, BlockPos pos) { + final MutableBlockPos POS = GlobalState.stateForThread().POS; POS.setX(pos.getX()); POS.setZ(pos.getZ()); POS.setY(0); diff --git a/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java index 60fe2d4a..4088bf47 100644 --- a/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/DesertLakeFeature.java @@ -16,6 +16,7 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlockFixer; +import ru.betterend.util.GlobalState; import ru.betterend.world.biome.EndBiome; import java.util.Random; @@ -23,10 +24,11 @@ import java.util.Random; public class DesertLakeFeature extends DefaultFeature { private static final BlockState END_STONE = Blocks.END_STONE.defaultBlockState(); private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(15152); - private static final MutableBlockPos POS = new MutableBlockPos(); @Override public boolean place(FeaturePlaceContext featureConfig) { + final MutableBlockPos POS = GlobalState.stateForThread().POS; + final Random random = featureConfig.random(); BlockPos blockPos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); diff --git a/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java index a5a8c7d5..86b52b03 100644 --- a/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/EndLakeFeature.java @@ -16,6 +16,7 @@ import ru.bclib.world.features.DefaultFeature; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlockFixer; +import ru.betterend.util.GlobalState; import ru.betterend.world.biome.EndBiome; import java.util.Random; @@ -23,14 +24,13 @@ import java.util.Random; public class EndLakeFeature extends DefaultFeature { private static final BlockState END_STONE = Blocks.END_STONE.defaultBlockState(); private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(15152); - private static final MutableBlockPos POS = new MutableBlockPos(); - public EndLakeFeature(){ } @Override public boolean place(FeaturePlaceContext featureConfig) { + final MutableBlockPos POS = GlobalState.stateForThread().POS; final Random random = featureConfig.random(); BlockPos blockPos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); diff --git a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java index 8df1be2d..47dde6d6 100644 --- a/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java +++ b/src/main/java/ru/betterend/world/features/terrain/SulphuricLakeFeature.java @@ -18,17 +18,16 @@ import ru.betterend.blocks.EndBlockProperties; import ru.betterend.blocks.SulphurCrystalBlock; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndBlocks; +import ru.betterend.util.GlobalState; import java.util.Random; import java.util.Set; public class SulphuricLakeFeature extends DefaultFeature { private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(15152); - private static final MutableBlockPos POS = new MutableBlockPos(); @Override public boolean place(FeaturePlaceContext featureConfig) { - final Random random = featureConfig.random(); BlockPos blockPos = featureConfig.origin(); final WorldGenLevel world = featureConfig.level(); blockPos = getPosOnSurfaceWG(world, blockPos); @@ -37,6 +36,8 @@ public class SulphuricLakeFeature extends DefaultFeature { return false; } + final Random random = featureConfig.random(); + final MutableBlockPos POS = GlobalState.stateForThread().POS; double radius = MHelper.randRange(10.0, 20.0, random); int dist2 = MHelper.floor(radius * 1.5); @@ -75,6 +76,7 @@ public class SulphuricLakeFeature extends DefaultFeature { else { if (!isAbsoluteBorder(world, POS)) { BlocksHelper.setWithoutUpdate(world, POS, Blocks.WATER); + //world.setBlock(blockPos, Blocks.WATER.defaultBlockState(), 2); world.scheduleTick(POS, Fluids.WATER, 0); brimstone.add(POS.below()); if (random.nextBoolean()) { diff --git a/src/main/java/ru/betterend/world/structures/piece/CavePiece.java b/src/main/java/ru/betterend/world/structures/piece/CavePiece.java index 08ddaf45..bee561c0 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CavePiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CavePiece.java @@ -16,6 +16,7 @@ import ru.bclib.util.BlocksHelper; import ru.bclib.util.MHelper; import ru.betterend.noise.OpenSimplexNoise; import ru.betterend.registry.EndStructures; +import ru.betterend.util.GlobalState; import java.util.Random; @@ -49,7 +50,7 @@ public class CavePiece extends BasePiece { double hr = radius * 0.75; double nr = radius * 0.25; - MutableBlockPos pos = new MutableBlockPos(); + final MutableBlockPos pos = GlobalState.stateForThread().POS; for (int x = x1; x <= x2; x++) { int xsq = x - center.getX(); xsq *= xsq; diff --git a/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java index 10027b39..6a822056 100644 --- a/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/CrystalMountainPiece.java @@ -16,12 +16,12 @@ import net.minecraft.world.level.levelgen.Heightmap; import net.minecraft.world.level.levelgen.Heightmap.Types; import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSerializationContext; -import ru.bclib.api.tag.CommonBlockTags; -import ru.bclib.api.tag.TagAPI; import ru.bclib.api.biomes.BiomeAPI; +import ru.bclib.api.tag.CommonBlockTags; import ru.bclib.util.MHelper; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndStructures; +import ru.betterend.util.GlobalState; import ru.betterend.world.biome.EndBiome; import java.util.Random; @@ -48,7 +48,7 @@ public class CrystalMountainPiece extends MountainPiece { public void postProcess(WorldGenLevel world, StructureFeatureManager arg, ChunkGenerator chunkGenerator, Random random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { int sx = chunkPos.getMinBlockX(); int sz = chunkPos.getMinBlockZ(); - MutableBlockPos pos = new MutableBlockPos(); + final MutableBlockPos pos = GlobalState.stateForThread().POS; ChunkAccess chunk = world.getChunk(chunkPos.x, chunkPos.z); Heightmap map = chunk.getOrCreateHeightmapUnprimed(Types.WORLD_SURFACE); Heightmap map2 = chunk.getOrCreateHeightmapUnprimed(Types.WORLD_SURFACE_WG); diff --git a/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java b/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java index 4c37167c..b27f0f3e 100644 --- a/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java +++ b/src/main/java/ru/betterend/world/structures/piece/PaintedMountainPiece.java @@ -18,6 +18,7 @@ import net.minecraft.world.level.levelgen.structure.BoundingBox; import net.minecraft.world.level.levelgen.structure.pieces.StructurePieceSerializationContext; import ru.bclib.util.MHelper; import ru.betterend.registry.EndStructures; +import ru.betterend.util.GlobalState; import java.util.Random; @@ -57,7 +58,7 @@ public class PaintedMountainPiece extends MountainPiece { public void postProcess(WorldGenLevel world, StructureFeatureManager arg, ChunkGenerator chunkGenerator, Random random, BoundingBox blockBox, ChunkPos chunkPos, BlockPos blockPos) { int sx = chunkPos.getMinBlockX(); int sz = chunkPos.getMinBlockZ(); - MutableBlockPos pos = new MutableBlockPos(); + final MutableBlockPos pos = GlobalState.stateForThread().POS; ChunkAccess chunk = world.getChunk(chunkPos.x, chunkPos.z); Heightmap map = chunk.getOrCreateHeightmapUnprimed(Types.WORLD_SURFACE); Heightmap map2 = chunk.getOrCreateHeightmapUnprimed(Types.WORLD_SURFACE_WG); From 4e008ab20892e28400cfbc9f856b2a7ce1e36d8b Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 28 Jan 2022 17:45:26 +0100 Subject: [PATCH 14/23] Using ThreadLocal storage --- src/main/java/ru/betterend/util/GlobalState.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/ru/betterend/util/GlobalState.java b/src/main/java/ru/betterend/util/GlobalState.java index 5809e5da..4f20c85b 100644 --- a/src/main/java/ru/betterend/util/GlobalState.java +++ b/src/main/java/ru/betterend/util/GlobalState.java @@ -2,14 +2,9 @@ package ru.betterend.util; import net.minecraft.core.BlockPos.MutableBlockPos; -import java.util.concurrent.ConcurrentHashMap; - public class GlobalState { - private static final ConcurrentHashMap statePool = new ConcurrentHashMap<>(); - public static void clearStatePool(){ - statePool.clear(); - } - public static GlobalState stateForThread() { return statePool.computeIfAbsent(Thread.currentThread(), t-> new GlobalState()); } + private static final ThreadLocal STATE = ThreadLocal.withInitial(()->new GlobalState()); + public static GlobalState stateForThread() { return STATE.get(); } public final MutableBlockPos POS = new MutableBlockPos(); } From 0764708b047b440d0318c69ec973ad63befbba11 Mon Sep 17 00:00:00 2001 From: rjuven2401 <96723542+rjuven2401@users.noreply.github.com> Date: Sun, 6 Feb 2022 15:35:02 +0900 Subject: [PATCH 15/23] Update guidebook/ko_kr/categories/end_veil.json Corrected a grammar error in guidebook/ko_kr/categories/biomes.json --- .../patchouli_books/guidebook/ko_kr/categories/end_veil.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/data/betterend/patchouli_books/guidebook/ko_kr/categories/end_veil.json b/src/main/resources/data/betterend/patchouli_books/guidebook/ko_kr/categories/end_veil.json index 81cd0798..51ecc404 100644 --- a/src/main/resources/data/betterend/patchouli_books/guidebook/ko_kr/categories/end_veil.json +++ b/src/main/resources/data/betterend/patchouli_books/guidebook/ko_kr/categories/end_veil.json @@ -1,6 +1,6 @@ { "name": "엔드 베일", - "description": "엔더맨의 눈을 봐도 공격하지 않습니다.", + "description": "엔더맨의 눈을 봐도 공격당하지 않습니다.", "icon": "betterend:textures/mob_effect/end_veil.png", "sortnum": 3 -} \ No newline at end of file +} From f0e97febfdadbc01e105b35a81753bdaa762b295 Mon Sep 17 00:00:00 2001 From: rjuven2401 <96723542+rjuven2401@users.noreply.github.com> Date: Sun, 6 Feb 2022 15:58:26 +0900 Subject: [PATCH 16/23] Update guidebook/ko_kr/categories/biomes.json Corrected a grammar error in guidebook/ko_kr/categories/biomes.json --- .../patchouli_books/guidebook/ko_kr/categories/biomes.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/data/betterend/patchouli_books/guidebook/ko_kr/categories/biomes.json b/src/main/resources/data/betterend/patchouli_books/guidebook/ko_kr/categories/biomes.json index 40e3c944..892bf62b 100644 --- a/src/main/resources/data/betterend/patchouli_books/guidebook/ko_kr/categories/biomes.json +++ b/src/main/resources/data/betterend/patchouli_books/guidebook/ko_kr/categories/biomes.json @@ -1,5 +1,5 @@ { - "name": "생물 군계", + "name": "생물군계", "description": "작업 중...", "icon": "betterend:end_mycelium" -} \ No newline at end of file +} From 6797721d7cb92afe0f31c45c2abde517ada8d1ae Mon Sep 17 00:00:00 2001 From: rjuven2401 <96723542+rjuven2401@users.noreply.github.com> Date: Sun, 6 Feb 2022 16:00:08 +0900 Subject: [PATCH 17/23] Update lang/ko_kr.json Corrected grammar errors and typos in lang/ko_kr.json --- .../assets/betterend/lang/ko_kr.json | 102 +++++++++--------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/src/main/resources/assets/betterend/lang/ko_kr.json b/src/main/resources/assets/betterend/lang/ko_kr.json index 9ede3c76..c7c5e956 100644 --- a/src/main/resources/assets/betterend/lang/ko_kr.json +++ b/src/main/resources/assets/betterend/lang/ko_kr.json @@ -1,9 +1,9 @@ { - "itemGroup.betterend.end_items": "더좋은 엔드: 아이템", - "itemGroup.betterend.end_blocks": "더좋은 엔드: 블록", + "itemGroup.betterend.end_items": "더 좋은 엔드: 아이템", + "itemGroup.betterend.end_blocks": "더 좋은 엔드: 블록", "item.betterend.guidebook": "엔드 무작정 따라하기", - "book.betterend.landing": "엔드의 극한환경에서 살아남기 위한 짤막한 가이드", + "book.betterend.landing": "엔드의 극한 환경에서 살아남기 위한 짤막한 가이드", "book.betterend.subtitle": "엔드에서 살아남기", "category.rei.damage.amount&dmg": "도구 손상: %s", @@ -76,7 +76,7 @@ "item.betterend.leather_stripe": "가죽끈", "item.betterend.leather_wrapped_stick": "가죽을 감은 막대기", "item.betterend.elytra_armored": "장갑 겉날개", - "item.betterend.elytra_crystalite": "겉날개 크리스탈라이트", + "item.betterend.elytra_crystalite": "크리스탈라이트 겉날개", "item.betterend.enchanted_membrane": "마법이 부여된 막", "effect.betterend.end_veil": "엔드 베일", @@ -291,8 +291,8 @@ "block.betterend.mossy_glowshroom_bookshelf": "이끼 낀 발광버섯 책장", "block.betterend.pythadendron_bookshelf": "피타덴드론나무 책장", - "block.betterend.murkweed": "컴컴한풀", - "block.betterend.needlegrass": "털수염풀", + "block.betterend.murkweed": "컴컴한 풀", + "block.betterend.needlegrass": "털수염 풀", "block.betterend.twisted_vine": "뒤틀린 덩굴", "block.betterend.shadow_berry": "그림자 열매 씨앗", @@ -327,34 +327,34 @@ "biome.betterend.blossoming_spires": "만발한 첨탑", "block.betterend.amber_grass": "호박 잔디", "block.betterend.amber_grass_path": "호박 잔디 길", - "block.betterend.tenanea_bark": "테나네아나무", - "block.betterend.tenanea_barrel": "테나네아나무 통", - "block.betterend.tenanea_bookshelf": "테나네아나무 책장", - "block.betterend.tenanea_button": "테나네아나무 버튼", - "block.betterend.tenanea_chest": "테나네아나무 상자", - "block.betterend.tenanea_crafting_table": "테나네아나무 제작대", - "block.betterend.tenanea_door": "테나네아나무 문", - "block.betterend.tenanea_fence": "테나네아나무 울타리", - "block.betterend.tenanea_gate": "테나네아나무 울타리 문", - "block.betterend.tenanea_ladder": "테나네아나무 사다리", - "block.betterend.tenanea_leaves": "테나네아나무 잎", - "block.betterend.tenanea_log": "테나네아나무 원목", - "block.betterend.tenanea_planks": "테나네아나무 판자", - "block.betterend.tenanea_plate": "테나네아나무 압력판", - "block.betterend.tenanea_sapling": "테나네아나무 묘목", - "block.betterend.tenanea_sign": "테나네아나무 표지판", - "block.betterend.tenanea_slab": "테나네아나무 반 블록", - "block.betterend.tenanea_stairs": "테나네아나무 계단", - "block.betterend.tenanea_stripped_bark": "껍질 벗긴 테나네아나무", - "block.betterend.tenanea_stripped_log": "껍질 벗긴 테나네아나무 원목", - "block.betterend.tenanea_trapdoor": "테나네아나무 다락문", + "block.betterend.tenanea_bark": "테나니아나무", + "block.betterend.tenanea_barrel": "테나니아나무 통", + "block.betterend.tenanea_bookshelf": "테나니아나무 책장", + "block.betterend.tenanea_button": "테나니아나무 버튼", + "block.betterend.tenanea_chest": "테나니아나무 상자", + "block.betterend.tenanea_crafting_table": "테나니아나무 제작대", + "block.betterend.tenanea_door": "테나니아나무 문", + "block.betterend.tenanea_fence": "테나니아나무 울타리", + "block.betterend.tenanea_gate": "테나니아나무 울타리 문", + "block.betterend.tenanea_ladder": "테나니아나무 사다리", + "block.betterend.tenanea_leaves": "테나니아나무 잎", + "block.betterend.tenanea_log": "테나니아나무 원목", + "block.betterend.tenanea_planks": "테나니아나무 판자", + "block.betterend.tenanea_plate": "테나니아나무 압력판", + "block.betterend.tenanea_sapling": "테나니아나무 묘목", + "block.betterend.tenanea_sign": "테나니아나무 표지판", + "block.betterend.tenanea_slab": "테나니아나무 반 블록", + "block.betterend.tenanea_stairs": "테나니아나무 계단", + "block.betterend.tenanea_stripped_bark": "껍질 벗긴 테나니아나무", + "block.betterend.tenanea_stripped_log": "껍질 벗긴 테나니아나무 원목", + "block.betterend.tenanea_trapdoor": "테나니아나무 다락문", "block.betterend.amber_block": "호박 블록", "block.betterend.amber_ore": "호박 광석", "item.betterend.amber_gem": "호박", "item.betterend.raw_amber": "가공하지 않은 호박", - "block.betterend.tenanea_flowers": "테나네아나무 꽃", - "block.betterend.tenanea_outer_leaves": "테나네아나무 겉잎", + "block.betterend.tenanea_flowers": "테나니아나무 꽃", + "block.betterend.tenanea_outer_leaves": "테나니아나무 겉잎", "block.betterend.pink_moss": "분홍색 이끼", "block.betterend.pink_moss_path": "분홍색 이끼 길", @@ -516,7 +516,7 @@ "block.betterend.lacugrove_composter": "라쿠그로브나무 퇴비통", "block.betterend.mossy_glowshroom_composter": "이끼 낀 발광버섯 퇴비통", "block.betterend.pythadendron_composter": "피타덴드론나무 퇴비통", - "block.betterend.tenanea_composter": "테나네아나무 퇴비통", + "block.betterend.tenanea_composter": "테나니아나무 퇴비통", "biome.betterend.old_bulbis_gardens": "오래된 구근 정원", "block.betterend.ivis_moss": "이비스 이끼", @@ -598,7 +598,7 @@ "item.betterend.silk_fiber": "비단 실", "item.betterend.spawn_egg_silk_moth": "누에나방 생성 알", - "item.betterend.thallasium_raw": "탈라슘 원석 블록", + "item.betterend.thallasium_raw": "탈라슘 원석", "block.betterend.thallasium_ore": "탈라슘 광석", "item.betterend.thallasium_axe": "탈라슘 도끼", "item.betterend.thallasium_hoe": "탈라슘 괭이", @@ -725,7 +725,7 @@ "block.betterend.azure_jadestone_wall": "하늘색 옥석 담장", "block.betterend.chorus_mushroom_seed": "후렴 버섯 씨앗", "block.betterend.end_stone_stalactite": "엔드 돌 종유석", - "block.betterend.end_stone_stalactite_cavemoss": "동굴 이끼가 덮힌 엔드 돌 종유석", + "block.betterend.end_stone_stalactite_cavemoss": "동굴 이끼가 덮인 엔드 돌 종유석", "block.betterend.pearlberry_seed": "펄베리 씨앗", "block.betterend.rubinea": "루비네아", "block.betterend.sandy_jadestone": "모래색 옥석", @@ -744,8 +744,8 @@ "block.betterend.sandy_jadestone_stairs": "모래색 옥석 계단", "block.betterend.sandy_jadestone_tiles": "모래색 옥석 타일", "block.betterend.sandy_jadestone_wall": "모래색 옥석 담장", - "block.betterend.smaragdant_crystal": "스마그댄트 수정", - "block.betterend.smaragdant_crystal_shard": "스마그댄트 수정 조각", + "block.betterend.smaragdant_crystal": "스마라그댄트 수정", + "block.betterend.smaragdant_crystal_shard": "스마라그댄트 수정 조각", "block.betterend.virid_jadestone": "담녹색 옥석", "block.betterend.virid_jadestone_bricks": "담녹색 옥석 벽돌", "block.betterend.virid_jadestone_bricks_slab": "담녹색 옥석 벽돌 반 블록", @@ -768,9 +768,9 @@ "biome.betterend.empty_aurora_cave": "빈 오로라 동굴", "biome.betterend.empty_end_cave": "빈 엔드 동굴", - "biome.betterend.empty_smaragdant_cave": "빈 스마그댄트 동굴", + "biome.betterend.empty_smaragdant_cave": "빈 스마라그댄트 동굴", "biome.betterend.lush_aurora_cave": "무성한 오로라 동굴", - "biome.betterend.lush_smaragdant_cave": "무성한 스마그댄트 동굴", + "biome.betterend.lush_smaragdant_cave": "무성한 스마라그댄트 동굴", "block.betterend.dragon_bone_block": "드래곤 뼈 블록", "block.betterend.dragon_bone_slab": "드래곤 뼈 반 블록", @@ -848,17 +848,17 @@ "block.betterend.hydralux_petal_block_slate_gray": "쥐색 꽃잎 블록", "block.betterend.hydralux_petal_block_violet": "보라색 꽃잎 블록", - "block.betterend.smaragdant_crystal_bricks": "스마그댄트 벽돌", - "block.betterend.smaragdant_crystal_bricks_slab": "스마그댄트 벽돌 반 블록", - "block.betterend.smaragdant_crystal_bricks_stairs": "스마그댄트 벽돌 계단", - "block.betterend.smaragdant_crystal_bricks_wall": "스마그댄트 벽돌 담장", - "block.betterend.smaragdant_crystal_pedestal": "스마그댄트 받침대", - "block.betterend.smaragdant_crystal_pillar": "스마그댄트 기둥", - "block.betterend.smaragdant_crystal_polished": "윤나는 스마그댄트", - "block.betterend.smaragdant_crystal_slab": "스마그댄트 반 블록", - "block.betterend.smaragdant_crystal_stairs": "스마그댄트 계단", - "block.betterend.smaragdant_crystal_tiles": "스마그댄트 타일", - "block.betterend.smaragdant_crystal_wall": "스마그댄트 담장", + "block.betterend.smaragdant_crystal_bricks": "스마라그댄트 벽돌", + "block.betterend.smaragdant_crystal_bricks_slab": "스마라그댄트 벽돌 반 블록", + "block.betterend.smaragdant_crystal_bricks_stairs": "스마라그댄트 벽돌 계단", + "block.betterend.smaragdant_crystal_bricks_wall": "스마라그댄트 벽돌 담장", + "block.betterend.smaragdant_crystal_pedestal": "스마라그댄트 받침대", + "block.betterend.smaragdant_crystal_pillar": "스마라그댄트 기둥", + "block.betterend.smaragdant_crystal_polished": "윤나는 스마라그댄트", + "block.betterend.smaragdant_crystal_slab": "스마라그댄트 반 블록", + "block.betterend.smaragdant_crystal_stairs": "스마라그댄트 계단", + "block.betterend.smaragdant_crystal_tiles": "스마라그댄트 타일", + "block.betterend.smaragdant_crystal_wall": "스마라그댄트 담장", "message.betterend.anvil_damage": "§c피해", "block.betterend.neon_cactus_block": "네온 선인장 블록", @@ -872,9 +872,9 @@ "attribute.name.generic.blindness_resistance": "실명 저항", - "tooltip.armor.crystalite_set": "세트 보너스 : 재생 I", - "tooltip.armor.crystalite_chest": "효과 : 굴착 속도 I", - "tooltip.armor.crystalite_boots": "효과 : 신속 I", + "tooltip.armor.crystalite_set": "세트 보너스: 재생 I", + "tooltip.armor.crystalite_chest": "효과: 채굴 속도 I", + "tooltip.armor.crystalite_boots": "효과: 신속 I", "block.betterend.azure_jadestone_flower_pot": "하늘색 옥석 화분", "block.betterend.endstone_flower_pot": "엔드 돌 화분", @@ -904,7 +904,7 @@ "block.betterend.umbralith_wall": "엄브럴리스 담장", "biome.betterend.umbra_valley": "그림자 계곡", - "block.betterend.inflexia": "인플렉시어", + "block.betterend.inflexia": "인플렉시아", "block.betterend.pallidium_full": "팔리디움 (전체형 커버)", "block.betterend.pallidium_heavy": "팔리디움 (중형 커버)", "block.betterend.pallidium_thin": "팔리디움 (경형 커버)", From 288bf2e473aa945e05d07fd616e317d9317aa607 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 24 Feb 2022 11:38:42 +0100 Subject: [PATCH 18/23] Adding `c:end_stones` to terrain Blockas and all blocks that are used in surface rules for our end biomes. (#436) --- .../ru/betterend/blocks/EndstoneDustBlock.java | 12 +++++++++++- .../java/ru/betterend/blocks/ShadowGrassBlock.java | 13 ++++++++++++- .../ru/betterend/blocks/basis/EndTerrainBlock.java | 14 +++++++++++++- src/main/java/ru/betterend/registry/EndTags.java | 7 +++++++ .../java/ru/betterend/world/biome/EndBiome.java | 4 +++- 5 files changed, 46 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/EndstoneDustBlock.java b/src/main/java/ru/betterend/blocks/EndstoneDustBlock.java index d5698e81..2f81b4a8 100644 --- a/src/main/java/ru/betterend/blocks/EndstoneDustBlock.java +++ b/src/main/java/ru/betterend/blocks/EndstoneDustBlock.java @@ -5,18 +5,23 @@ import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags; import net.minecraft.core.BlockPos; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.FallingBlock; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.storage.loot.LootContext; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.TagAPI.TagLocation; +import ru.bclib.interfaces.TagProvider; import ru.bclib.util.ColorUtil; import java.util.Collections; import java.util.List; -public class EndstoneDustBlock extends FallingBlock { +public class EndstoneDustBlock extends FallingBlock implements TagProvider { @Environment(EnvType.CLIENT) private static final int COLOR = ColorUtil.color(226, 239, 168); @@ -38,4 +43,9 @@ public class EndstoneDustBlock extends FallingBlock { public int getDustColor(BlockState state, BlockGetter world, BlockPos pos) { return COLOR; } + + @Override + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(NamedCommonBlockTags.END_STONES); + } } diff --git a/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java b/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java index 3cdaf282..a88df432 100644 --- a/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java +++ b/src/main/java/ru/betterend/blocks/ShadowGrassBlock.java @@ -3,15 +3,21 @@ package ru.betterend.blocks; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.core.BlockPos; +import net.minecraft.world.item.Item; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.MaterialColor; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.TagAPI.TagLocation; +import ru.bclib.interfaces.TagProvider; import ru.betterend.blocks.basis.EndTerrainBlock; import ru.betterend.registry.EndParticles; +import java.util.List; import java.util.Random; -public class ShadowGrassBlock extends EndTerrainBlock { +public class ShadowGrassBlock extends EndTerrainBlock implements TagProvider { public ShadowGrassBlock() { super(MaterialColor.COLOR_BLACK); } @@ -31,4 +37,9 @@ public class ShadowGrassBlock extends EndTerrainBlock { ); } } + + @Override + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(NamedCommonBlockTags.END_STONES); + } } diff --git a/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java b/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java index be224b9c..4669d6da 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndTerrainBlock.java @@ -1,12 +1,24 @@ package ru.betterend.blocks.basis; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; +import ru.bclib.api.tag.NamedCommonBlockTags; +import ru.bclib.api.tag.TagAPI.TagLocation; import ru.bclib.blocks.BaseTerrainBlock; +import ru.bclib.interfaces.TagProvider; import ru.betterend.interfaces.PottableTerrain; -public class EndTerrainBlock extends BaseTerrainBlock implements PottableTerrain { +import java.util.List; + +public class EndTerrainBlock extends BaseTerrainBlock implements PottableTerrain, TagProvider { public EndTerrainBlock(MaterialColor color) { super(Blocks.END_STONE, color); } + + @Override + public void addTags(List> blockTags, List> itemTags) { + blockTags.add(NamedCommonBlockTags.END_STONES); + } } diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index d2ce638b..00b0089f 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -31,6 +31,7 @@ import ru.betterend.BetterEnd; import ru.betterend.blocks.basis.EndTerrainBlock; import ru.betterend.blocks.basis.PedestalBlock; import ru.betterend.item.tool.EndHammerItem; +import ru.betterend.world.biome.EndBiome; import java.util.List; @@ -139,6 +140,12 @@ public class EndTags { TagAPI.addBlockTag(NamedCommonBlockTags.END_STONES, bl); } + public static void addBiomeSurfaceToEndGroup(EndBiome b){ + addEndGround(b.getTopMaterial().getBlock()); + addEndGround(b.getAltTopMaterial().getBlock()); + addEndGround(b.getUnderMaterial().getBlock()); + } + // TODO make getter for biome top blocks public static void addTerrainTags(Registry biomeRegistry) { /*biomeRegistry.forEach((biome) -> { diff --git a/src/main/java/ru/betterend/world/biome/EndBiome.java b/src/main/java/ru/betterend/world/biome/EndBiome.java index 25c27a65..5449b78e 100644 --- a/src/main/java/ru/betterend/world/biome/EndBiome.java +++ b/src/main/java/ru/betterend/world/biome/EndBiome.java @@ -21,6 +21,7 @@ import ru.betterend.interfaces.StructureFeaturesAccessor; import ru.betterend.registry.EndBlocks; import ru.betterend.registry.EndFeatures; import ru.betterend.registry.EndSounds; +import ru.betterend.registry.EndTags; public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { public static class DefaultSurfaceMaterialProvider implements SurfaceMaterialProvider{ @@ -124,7 +125,8 @@ public class EndBiome extends BCLBiome implements SurfaceMaterialProvider { EndBiome biome = builder.build(biomeConfig.getSupplier()); biome.addCustomData("has_caves", biomeConfig.hasCaves()); biome.setSurfaceMaterial(biomeConfig.surfaceMaterial()); - + + EndTags.addBiomeSurfaceToEndGroup(biome); return biome; } From e5ed351f3ef5fbed8feb8539256f72236715ecca Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 24 Feb 2022 11:43:43 +0100 Subject: [PATCH 19/23] Make sure all hammers have the `c:hammer` Tag (#436) --- .../ru/betterend/complexmaterials/MetalMaterial.java | 2 -- .../java/ru/betterend/item/tool/EndHammerItem.java | 12 +++++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java b/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java index bb31ef59..2144aed5 100644 --- a/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java +++ b/src/main/java/ru/betterend/complexmaterials/MetalMaterial.java @@ -14,7 +14,6 @@ import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.material.MaterialColor; import ru.bclib.api.tag.NamedBlockTags; import ru.bclib.api.tag.NamedCommonBlockTags; -import ru.bclib.api.tag.NamedCommonItemTags; import ru.bclib.api.tag.NamedItemTags; import ru.bclib.api.tag.TagAPI; import ru.bclib.api.tag.TagAPI.TagNamed; @@ -496,6 +495,5 @@ public class MetalMaterial { TagAPI.addBlockTag(NamedBlockTags.BEACON_BASE_BLOCKS, block); TagAPI.addItemTag(NamedItemTags.BEACON_PAYMENT_ITEMS, ingot); TagAPI.addBlockTag(NamedCommonBlockTags.DRAGON_IMMUNE, ore, bars); - TagAPI.addItemTag(NamedCommonItemTags.HAMMERS, hammer); } } \ No newline at end of file diff --git a/src/main/java/ru/betterend/item/tool/EndHammerItem.java b/src/main/java/ru/betterend/item/tool/EndHammerItem.java index cc5cfa57..b4907e85 100644 --- a/src/main/java/ru/betterend/item/tool/EndHammerItem.java +++ b/src/main/java/ru/betterend/item/tool/EndHammerItem.java @@ -24,16 +24,21 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Tier; import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.Material; import ru.bclib.api.tag.CommonItemTags; +import ru.bclib.api.tag.NamedCommonItemTags; +import ru.bclib.api.tag.TagAPI.TagLocation; import ru.bclib.client.models.ModelsHelper; import ru.bclib.interfaces.ItemModelProvider; +import ru.bclib.interfaces.TagProvider; +import java.util.List; import java.util.UUID; -public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, ItemModelProvider { +public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, ItemModelProvider, TagProvider { public final static UUID ATTACK_KNOCKBACK_MODIFIER_ID = Mth.createInsecureUUID(ThreadLocalRandom.current()); private final Multimap attributeModifiers; @@ -161,4 +166,9 @@ public class EndHammerItem extends DiggerItem implements DynamicAttributeTool, I public BlockModel getItemModel(ResourceLocation resourceLocation) { return ModelsHelper.createHandheldItem(resourceLocation); } + + @Override + public void addTags(List> blockTags, List> itemTags) { + itemTags.add(NamedCommonItemTags.HAMMERS); + } } From 4ab1d89258c5d601326387f4938e2e1d84bf7fac Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 24 Feb 2022 11:49:00 +0100 Subject: [PATCH 20/23] Renamed `markDirty` (#431) --- src/main/java/ru/betterend/blocks/basis/PedestalBlock.java | 2 +- src/main/java/ru/betterend/rituals/InfusionRitual.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java index 597e7de4..3bd8db5b 100644 --- a/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/PedestalBlock.java @@ -136,7 +136,7 @@ public class PedestalBlock extends BaseBlockNotFull implements EntityBlock { if (blockEntity instanceof InfusionPedestalEntity) { InfusionPedestalEntity pedestal = (InfusionPedestalEntity) blockEntity; if (pedestal.hasRitual()) { - pedestal.getRitual().markDirty(); + pedestal.getRitual().setDirty(); } } break; diff --git a/src/main/java/ru/betterend/rituals/InfusionRitual.java b/src/main/java/ru/betterend/rituals/InfusionRitual.java index 689e9fca..47eaf977 100644 --- a/src/main/java/ru/betterend/rituals/InfusionRitual.java +++ b/src/main/java/ru/betterend/rituals/InfusionRitual.java @@ -228,7 +228,7 @@ public class InfusionRitual implements Container { } } - public void markDirty() { + public void setDirty() { this.isDirty = true; } From 58a2894658c1457a50f4200b112df4c034873a1b Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 24 Feb 2022 13:07:43 +0100 Subject: [PATCH 21/23] Removed unneeded hammer tag assignment --- src/main/java/ru/betterend/registry/EndTags.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/ru/betterend/registry/EndTags.java b/src/main/java/ru/betterend/registry/EndTags.java index 00b0089f..ee139b9b 100644 --- a/src/main/java/ru/betterend/registry/EndTags.java +++ b/src/main/java/ru/betterend/registry/EndTags.java @@ -111,7 +111,6 @@ public class EndTags { } }); ToolManagerImpl.tag(CommonItemTags.HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(ITEM_HAMMERS)); - TagAPI.addItemTag(NamedCommonItemTags.HAMMERS, EndItems.AETERNIUM_HAMMER); TagAPI.addBlockTag( NamedCommonBlockTags.GEN_END_STONES, From 79b435b7b1e3241e8ffdeb3fd9fb3b78dec12389 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 24 Feb 2022 16:08:18 +0100 Subject: [PATCH 22/23] Version update --- gradle.properties | 8 ++++---- src/main/resources/fabric.mod.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2df0d8e5..e8be91de 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,14 +4,14 @@ org.gradle.jvmargs=-Xmx2G # Fabric Properties # check these on https://fabricmc.net/use minecraft_version=1.18.1 -fabric_version = 0.46.2+1.18 -loader_version=0.12.12 +fabric_version = 0.46.4+1.18 +loader_version=0.13.3 #Loom loom_version=0.10-SNAPSHOT # Mod Properties -mod_version=1.0.2 +mod_version=1.0.3 maven_group=ru.betterend archives_base_name=better-end @@ -19,6 +19,6 @@ archives_base_name=better-end # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api patchouli_version = 55-FABRIC-SNAPSHOT -bclib_version = 1.3.0 +bclib_version = 1.3.4 rei_version = 7.2.408 canvas_version = 1.0.+ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 6192c96b..8d525552 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -46,7 +46,7 @@ "fabricloader": ">=0.12.9", "fabric": ">=0.44.0", "minecraft": "1.18.x", - "bclib": ">=1.3.0" + "bclib": ">=1.3.4" }, "suggests": { "byg": ">=1.1.3", From a5d5511d27c55aed7a15551146abbc0d7259ee52 Mon Sep 17 00:00:00 2001 From: Frank Date: Mon, 7 Mar 2022 12:57:34 +0100 Subject: [PATCH 23/23] updated dependencies --- gradle.properties | 2 +- src/main/resources/fabric.mod.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index e8be91de..95227a0d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,6 +19,6 @@ archives_base_name=better-end # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api patchouli_version = 55-FABRIC-SNAPSHOT -bclib_version = 1.3.4 +bclib_version = 1.3.5 rei_version = 7.2.408 canvas_version = 1.0.+ diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 8d525552..70b7c827 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -46,7 +46,7 @@ "fabricloader": ">=0.12.9", "fabric": ">=0.44.0", "minecraft": "1.18.x", - "bclib": ">=1.3.4" + "bclib": ">=1.3.5" }, "suggests": { "byg": ">=1.1.3",