9
0
mirror of https://github.com/VolmitSoftware/Iris.git synced 2025-12-19 15:09:18 +00:00
This commit is contained in:
Daniel Mills
2021-07-16 02:25:35 -04:00
parent 22387b2610
commit 71140381e0
198 changed files with 1033 additions and 1146 deletions

View File

@@ -1,9 +1,6 @@
--- ---
name: Bug report name: Bug report about: Create a report to help us improve title: ''
about: Create a report to help us improve labels: Bug assignees: ''
title: ''
labels: Bug
assignees: ''
--- ---
@@ -12,6 +9,7 @@ A clear and concise description of what the bug is.
**To Reproduce** **To Reproduce**
Steps to reproduce the behavior: Steps to reproduce the behavior:
1. Go to '...' 1. Go to '...'
2. Click on '....' 2. Click on '....'
3. Scroll down to '....' 3. Scroll down to '....'
@@ -24,11 +22,13 @@ A clear and concise description of what you expected to happen.
If applicable, add screenshots or video recordings to help explain your problem. If applicable, add screenshots or video recordings to help explain your problem.
**Server and Plugin Information** **Server and Plugin Information**
- Installed plugins:
- Iris Version: - Installed plugins:
- Server Platform and Version [eg: PaperSpigot 1.16.3 #240]: - Iris Version:
- Operating System (if applicable): - Server Platform and Version [eg: PaperSpigot 1.16.3 #240]:
- Server Logs: - Operating System (if applicable):
- Server Logs:
**Additional context** **Additional context**
Add any other context about the problem here, server timings reports, Iris dump information, complete console log etc. Please do not make Pastebin dumps or screenshot expire. Add any other context about the problem here, server timings reports, Iris dump information, complete console log etc.
Please do not make Pastebin dumps or screenshot expire.

View File

@@ -1,9 +1,6 @@
--- ---
name: Feature request name: Feature request about: Suggest an idea for this project title: ''
about: Suggest an idea for this project labels: Enhancement, Addition assignees: ''
title: ''
labels: Enhancement, Addition
assignees: ''
--- ---

View File

@@ -2,5 +2,7 @@
For 1.16 and below, see the 1.14-1.16 branch. The master branch is for the latest version of minecraft. For 1.16 and below, see the 1.14-1.16 branch. The master branch is for the latest version of minecraft.
# [Support](https://discord.gg/3xxPTpT) **|** [Documentation](https://docs.volmit.com/iris/) **|** [Git](https://github.com/IrisDimensions) # [Support](https://discord.gg/3xxPTpT) **|** [Documentation](https://docs.volmit.com/iris/) **
|** [Git](https://github.com/IrisDimensions)
![Iris Image](https://raw.githubusercontent.com/VolmitSoftware/Iris/master/IRIS.png) ![Iris Image](https://raw.githubusercontent.com/VolmitSoftware/Iris/master/IRIS.png)

View File

@@ -39,7 +39,7 @@ registerCustomOutputTask('Coco', 'C:/Users/sjoer/Documents/MCServer/plugins');
def registerCustomOutputTask(name, path) { def registerCustomOutputTask(name, path) {
tasks.register('build' + name, Copy) { tasks.register('build' + name, Copy) {
group('development') group('development')
outputs.upToDateWhen{false} outputs.upToDateWhen { false }
dependsOn ':shadowJar' dependsOn ':shadowJar'
from(file('build/libs/Iris-' + version + '-all.jar')) from(file('build/libs/Iris-' + version + '-all.jar'))
into(file(path)) into(file(path))

View File

@@ -15,7 +15,6 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
# #
org.gradle.daemon=true org.gradle.daemon=true
org.gradle.parallel=true org.gradle.parallel=true
org.gradle.jvmargs=-Xmx3072m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.jvmargs=-Xmx3072m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

View File

@@ -15,7 +15,6 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>. # along with this program. If not, see <https://www.gnu.org/licenses/>.
# #
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-7.1-bin.zip

203
gradlew vendored
View File

@@ -28,22 +28,22 @@
# Resolve links: $0 may be a link # Resolve links: $0 may be a link
PRG="$0" PRG="$0"
# Need this for relative symlinks. # Need this for relative symlinks.
while [ -h "$PRG" ] ; do while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"` ls=$(ls -ld "$PRG")
link=`expr "$ls" : '.*-> \(.*\)$'` link=$(expr "$ls" : '.*-> \(.*\)$')
if expr "$link" : '/.*' > /dev/null; then if expr "$link" : '/.*' >/dev/null; then
PRG="$link" PRG="$link"
else else
PRG=`dirname "$PRG"`"/$link" PRG=$(dirname "$PRG")"/$link"
fi fi
done done
SAVED="`pwd`" SAVED="$(pwd)"
cd "`dirname \"$PRG\"`/" >/dev/null cd "$(dirname \"$PRG\")/" >/dev/null
APP_HOME="`pwd -P`" APP_HOME="$(pwd -P)"
cd "$SAVED" >/dev/null cd "$SAVED" >/dev/null
APP_NAME="Gradle" APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"` APP_BASE_NAME=$(basename "$0")
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. # 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"' DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
@@ -51,15 +51,15 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value. # Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum" MAX_FD="maximum"
warn () { warn() {
echo "$*" echo "$*"
} }
die () { die() {
echo echo
echo "$*" echo "$*"
echo echo
exit 1 exit 1
} }
# OS specific support (must be 'true' or 'false'). # OS specific support (must be 'true' or 'false').
@@ -67,119 +67,118 @@ cygwin=false
msys=false msys=false
darwin=false darwin=false
nonstop=false nonstop=false
case "`uname`" in case "$(uname)" in
CYGWIN* ) CYGWIN*)
cygwin=true cygwin=true
;; ;;
Darwin* ) Darwin*)
darwin=true darwin=true
;; ;;
MINGW* ) MINGW*)
msys=true msys=true
;; ;;
NONSTOP* ) NONSTOP*)
nonstop=true nonstop=true
;; ;;
esac esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM. # Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then if [ -n "$JAVA_HOME" ]; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ]; then
# IBM's JDK on AIX uses strange locations for the executables # IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java" JAVACMD="$JAVA_HOME/jre/sh/java"
else else
JAVACMD="$JAVA_HOME/bin/java" JAVACMD="$JAVA_HOME/bin/java"
fi fi
if [ ! -x "$JAVACMD" ] ; then if [ ! -x "$JAVACMD" ]; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi fi
else 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. 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 Please set the JAVA_HOME variable in your environment to match the
location of your Java installation." location of your Java installation."
fi fi
# Increase the maximum file descriptors if we can. # Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ]; then
MAX_FD_LIMIT=`ulimit -H -n` MAX_FD_LIMIT=$(ulimit -H -n)
if [ $? -eq 0 ] ; then if [ $? -eq 0 ]; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
MAX_FD="$MAX_FD_LIMIT" 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
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 fi
# For Darwin, add options to specify how the application appears in the dock # For Darwin, add options to specify how the application appears in the dock
if $darwin; then if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi fi
# For Cygwin or MSYS, switch paths to Windows format before running java # For Cygwin or MSYS, switch paths to Windows format before running java
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then if [ "$cygwin" = "true" -o "$msys" = "true" ]; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"` APP_HOME=$(cygpath --path --mixed "$APP_HOME")
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` CLASSPATH=$(cygpath --path --mixed "$CLASSPATH")
JAVACMD=`cygpath --unix "$JAVACMD"` JAVACMD=$(cygpath --unix "$JAVACMD")
# We build the pattern for arguments to be converted via cygpath # We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` ROOTDIRSRAW=$(find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null)
SEP="" SEP=""
for dir in $ROOTDIRSRAW ; do for dir in $ROOTDIRSRAW; do
ROOTDIRS="$ROOTDIRS$SEP$dir" ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|" SEP="|"
done done
OURCYGPATTERN="(^($ROOTDIRS))" OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments # Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then if [ "$GRADLE_CYGPATTERN" != "" ]; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 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 fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh i=$(expr $i + 1)
i=0 done
for arg in "$@" ; do case $i in
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 0) set -- ;;
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 3) set -- "$args0" "$args1" "$args2" ;;
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
else 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
eval `echo args$i`="\"$arg\"" 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
fi 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
i=`expr $i + 1` 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
done 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
case $i in esac
0) set -- ;;
1) set -- "$args0" ;;
2) set -- "$args0" "$args1" ;;
3) set -- "$args0" "$args1" "$args2" ;;
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi fi
# Escape application args # Escape application args
save () { save() {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done for i; do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/"; done
echo " " echo " "
} }
APP_ARGS=`save "$@"` APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules # 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" eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"

View File

@@ -1,69 +1,69 @@
{ {
"children": [], "children": [],
"decorators": [], "decorators": [],
"objects": [], "objects": [],
"name": "Plains", "name": "Plains",
"layers": [ "layers": [
{ {
"minHeight": 1, "minHeight": 1,
"terrainZoom": 5, "terrainZoom": 5,
"maxHeight": 3, "maxHeight": 3,
"palette": [ "palette": [
"GRASS_BLOCK" "GRASS_BLOCK"
], ],
"dispersion": "SCATTER" "dispersion": "SCATTER"
}, },
{ {
"minHeight": 1, "minHeight": 1,
"terrainZoom": 5, "terrainZoom": 5,
"maxHeight": 1, "maxHeight": 1,
"palette": [ "palette": [
"DIRT" "DIRT"
], ],
"dispersion": "SCATTER" "dispersion": "SCATTER"
}, },
{ {
"minHeight": 1, "minHeight": 1,
"terrainZoom": 5, "terrainZoom": 5,
"maxHeight": 3, "maxHeight": 3,
"palette": [ "palette": [
"DIRT", "DIRT",
"COARSE_DIRT" "COARSE_DIRT"
], ],
"dispersion": "SCATTER" "dispersion": "SCATTER"
}, },
{ {
"minHeight": 6, "minHeight": 6,
"terrainZoom": 5, "terrainZoom": 5,
"maxHeight": 2341, "maxHeight": 2341,
"palette": [ "palette": [
"STONE", "STONE",
"ANDESITE", "ANDESITE",
"STONE" "STONE"
], ],
"dispersion": "SCATTER" "dispersion": "SCATTER"
} }
], ],
"childShrinkFactor": 1.55, "childShrinkFactor": 1.55,
"derivative": "THE_VOID", "derivative": "THE_VOID",
"auxiliaryGenerators": [ "auxiliaryGenerators": [
{ {
"offsetX": 0, "offsetX": 0,
"offsetZ": 0.01, "offsetZ": 0.01,
"min": 1, "min": 1,
"seed": 1336, "seed": 1336,
"max": 5, "max": 5,
"zoom": 3.065 "zoom": 3.065
}, },
{ {
"offsetX": 0, "offsetX": 0,
"offsetZ": 0, "offsetZ": 0,
"min": 1.01, "min": 1.01,
"seed": 1339, "seed": 1339,
"max": 2, "max": 2,
"zoom": 1.6 "zoom": 1.6
} }
], ],
"highHeight": 3.66669, "highHeight": 3.66669,
"lowHeight": 31.5 "lowHeight": 31.5
} }

View File

@@ -23,14 +23,13 @@ import com.volmit.iris.core.command.CommandIris;
import com.volmit.iris.core.command.PermissionIris; import com.volmit.iris.core.command.PermissionIris;
import com.volmit.iris.core.command.world.CommandLocate; import com.volmit.iris.core.command.world.CommandLocate;
import com.volmit.iris.core.link.BKLink; import com.volmit.iris.core.link.BKLink;
import com.volmit.iris.core.link.CitizensLink;
import com.volmit.iris.core.link.MultiverseCoreLink; import com.volmit.iris.core.link.MultiverseCoreLink;
import com.volmit.iris.core.link.MythicMobsLink; import com.volmit.iris.core.link.MythicMobsLink;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.engine.object.IrisCompat;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.framework.EngineCompositeGenerator; import com.volmit.iris.engine.framework.EngineCompositeGenerator;
import com.volmit.iris.engine.object.IrisCompat;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.C;
import com.volmit.iris.util.format.Form; import com.volmit.iris.util.format.Form;
@@ -73,7 +72,6 @@ public class Iris extends VolmitPlugin implements Listener {
public static BKLink linkBK; public static BKLink linkBK;
public static MultiverseCoreLink linkMultiverseCore; public static MultiverseCoreLink linkMultiverseCore;
public static MythicMobsLink linkMythicMobs; public static MythicMobsLink linkMythicMobs;
public static CitizensLink linkCitizens;
private static final Queue<Runnable> syncJobs = new ShurikenQueue<>(); private static final Queue<Runnable> syncJobs = new ShurikenQueue<>();
public static boolean customModels = doesSupportCustomModels(); public static boolean customModels = doesSupportCustomModels();
public static boolean awareEntities = doesSupportAwareness(); public static boolean awareEntities = doesSupportAwareness();
@@ -96,8 +94,7 @@ public class Iris extends VolmitPlugin implements Listener {
installDataPacks(); installDataPacks();
} }
public File getDatapacksFolder() public File getDatapacksFolder() {
{
File props = new File("server.properties"); File props = new File("server.properties");
if (props.exists()) { if (props.exists()) {
@@ -424,12 +421,11 @@ public class Iris extends VolmitPlugin implements Listener {
} }
public static void debug(String string) { public static void debug(String string) {
if(!IrisSettings.get().getGeneral().isDebug()) if (!IrisSettings.get().getGeneral().isDebug()) {
{
return; return;
} }
msg( C.LIGHT_PURPLE+ "" + C.BOLD+ string); msg(C.LIGHT_PURPLE + "" + C.BOLD + string);
} }
public static void verbose(String string) { public static void verbose(String string) {
@@ -535,21 +531,17 @@ public class Iris extends VolmitPlugin implements Listener {
return IrisSettings.get().getGenerator().isMcaPregenerator(); return IrisSettings.get().getGenerator().isMcaPregenerator();
} }
public static synchronized void reportError(Throwable e) public static synchronized void reportError(Throwable e) {
{ if (IrisSettings.get().getGeneral().isDebug()) {
if(IrisSettings.get().getGeneral().isDebug())
{
String n = e.getClass().getCanonicalName() + "-" + e.getStackTrace()[0].getClassName() + "-" + e.getStackTrace()[0].getLineNumber(); String n = e.getClass().getCanonicalName() + "-" + e.getStackTrace()[0].getClassName() + "-" + e.getStackTrace()[0].getLineNumber();
if(e.getCause() != null) if (e.getCause() != null) {
{
n += "-" + e.getCause().getStackTrace()[0].getClassName() + "-" + e.getCause().getStackTrace()[0].getLineNumber(); n += "-" + e.getCause().getStackTrace()[0].getClassName() + "-" + e.getCause().getStackTrace()[0].getLineNumber();
} }
File f = instance.getDataFile("debug", "caught-exceptions", n + ".txt"); File f = instance.getDataFile("debug", "caught-exceptions", n + ".txt");
if(!f.exists()) if (!f.exists()) {
{
J.attempt(() -> { J.attempt(() -> {
PrintWriter pw = new PrintWriter(f); PrintWriter pw = new PrintWriter(f);
pw.println("Thread: " + Thread.currentThread().getName()); pw.println("Thread: " + Thread.currentThread().getName());

View File

@@ -20,13 +20,13 @@ package com.volmit.iris.core;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.data.DirectWorldWriter; import com.volmit.iris.engine.data.DirectWorldWriter;
import com.volmit.iris.engine.data.nbt.io.NBTUtil; import com.volmit.iris.engine.data.nbt.io.NBTUtil;
import com.volmit.iris.engine.data.nbt.io.NamedTag; import com.volmit.iris.engine.data.nbt.io.NamedTag;
import com.volmit.iris.engine.data.nbt.tag.CompoundTag; import com.volmit.iris.engine.data.nbt.tag.CompoundTag;
import com.volmit.iris.engine.data.nbt.tag.IntTag; import com.volmit.iris.engine.data.nbt.tag.IntTag;
import com.volmit.iris.engine.data.nbt.tag.ListTag; import com.volmit.iris.engine.data.nbt.tag.ListTag;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.format.Form; import com.volmit.iris.util.format.Form;

View File

@@ -19,10 +19,10 @@
package com.volmit.iris.core; package com.volmit.iris.core;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.data.loader.ObjectResourceLoader; import com.volmit.iris.engine.data.loader.ObjectResourceLoader;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.engine.data.loader.ResourceLoader; import com.volmit.iris.engine.data.loader.ResourceLoader;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.util.math.RNG;
import lombok.Data; import lombok.Data;
import java.io.File; import java.io.File;

View File

@@ -20,13 +20,13 @@ package com.volmit.iris.core;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.core.report.Report; import com.volmit.iris.core.report.Report;
import com.volmit.iris.core.report.ReportType; import com.volmit.iris.core.report.ReportType;
import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.IrisWorldCreator; import com.volmit.iris.engine.IrisWorldCreator;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.collection.KSet; import com.volmit.iris.util.collection.KSet;
@@ -259,14 +259,10 @@ public class IrisProject {
assert gx != null; assert gx != null;
double v = (double) gx.getGenerated() / (double) req; double v = (double) gx.getGenerated() / (double) req;
if(sender.isPlayer()) if (sender.isPlayer()) {
{
sender.player().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(C.WHITE + "Generating " + Form.pc(v) + ((C.GRAY + " (" + (req - gx.getGenerated()) + " Left)")))); sender.player().spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(C.WHITE + "Generating " + Form.pc(v) + ((C.GRAY + " (" + (req - gx.getGenerated()) + " Left)"))));
J.sleep(50); J.sleep(50);
} } else {
else
{
sender.sendMessage(C.WHITE + "Generating " + Form.pc(v) + ((C.GRAY + " (" + (req - gx.getGenerated()) + " Left)"))); sender.sendMessage(C.WHITE + "Generating " + Form.pc(v) + ((C.GRAY + " (" + (req - gx.getGenerated()) + " Left)")));
J.sleep(1000); J.sleep(1000);
} }
@@ -295,10 +291,7 @@ public class IrisProject {
if (sender.isPlayer()) { if (sender.isPlayer()) {
assert world != null; assert world != null;
sender.player().teleport(world.getSpawnLocation()); sender.player().teleport(world.getSpawnLocation());
} } else {
else
{
sender.sendMessage(C.WHITE + "Generating Complete!"); sender.sendMessage(C.WHITE + "Generating Complete!");
} }

View File

@@ -21,8 +21,8 @@ package com.volmit.iris.core;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException; import com.google.gson.JsonSyntaxException;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.cache.AtomicCache; import com.volmit.iris.engine.cache.AtomicCache;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.format.Form; import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.io.IO; import com.volmit.iris.util.io.IO;

View File

@@ -24,8 +24,8 @@ import com.volmit.iris.core.command.object.CommandIrisObject;
import com.volmit.iris.core.command.studio.CommandIrisStudio; import com.volmit.iris.core.command.studio.CommandIrisStudio;
import com.volmit.iris.core.command.what.CommandIrisWhat; import com.volmit.iris.core.command.what.CommandIrisWhat;
import com.volmit.iris.core.command.world.*; import com.volmit.iris.core.command.world.*;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -20,8 +20,8 @@ package com.volmit.iris.core.command.jigsaw;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.core.command.jigsaw; package com.volmit.iris.core.command.jigsaw;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.edit.JigsawEditor; import com.volmit.iris.core.edit.JigsawEditor;
import com.volmit.iris.engine.object.IrisJigsawPiece; import com.volmit.iris.engine.object.IrisJigsawPiece;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.core.command.jigsaw; package com.volmit.iris.core.command.jigsaw;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.edit.JigsawEditor; import com.volmit.iris.core.edit.JigsawEditor;
import com.volmit.iris.engine.object.IrisObject; import com.volmit.iris.engine.object.IrisObject;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;

View File

@@ -19,11 +19,11 @@
package com.volmit.iris.core.command.jigsaw; package com.volmit.iris.core.command.jigsaw;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.jigsaw.PlannedStructure;
import com.volmit.iris.engine.object.IrisJigsawStructure; import com.volmit.iris.engine.object.IrisJigsawStructure;
import com.volmit.iris.engine.object.IrisPosition; import com.volmit.iris.engine.object.IrisPosition;
import com.volmit.iris.engine.jigsaw.PlannedStructure;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.format.Form; import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;

View File

@@ -20,8 +20,8 @@ package com.volmit.iris.core.command.object;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.core.command.object; package com.volmit.iris.core.command.object;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.ProjectManager; import com.volmit.iris.core.ProjectManager;
import com.volmit.iris.core.WandManager; import com.volmit.iris.core.WandManager;
import com.volmit.iris.engine.object.IrisObject; import com.volmit.iris.engine.object.IrisObject;

View File

@@ -21,9 +21,9 @@ package com.volmit.iris.core.command.object;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.WandManager; import com.volmit.iris.core.WandManager;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.data.Cuboid; import com.volmit.iris.util.data.Cuboid;
import com.volmit.iris.util.data.Cuboid.CuboidDirection; import com.volmit.iris.util.data.Cuboid.CuboidDirection;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;
import org.bukkit.Location; import org.bukkit.Location;

View File

@@ -21,9 +21,9 @@ package com.volmit.iris.core.command.object;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.WandManager; import com.volmit.iris.core.WandManager;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.data.Cuboid; import com.volmit.iris.util.data.Cuboid;
import com.volmit.iris.util.data.Cuboid.CuboidDirection; import com.volmit.iris.util.data.Cuboid.CuboidDirection;
import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;
import org.bukkit.Location; import org.bukkit.Location;

View File

@@ -20,8 +20,8 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -20,8 +20,8 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.util.format.C;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.format.C;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -21,8 +21,8 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.gui.NoiseExplorer; import com.volmit.iris.core.gui.NoiseExplorer;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -19,14 +19,14 @@
package com.volmit.iris.core.command.studio; package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.gui.NoiseExplorer; import com.volmit.iris.core.gui.NoiseExplorer;
import com.volmit.iris.engine.object.IrisGenerator; import com.volmit.iris.engine.object.IrisGenerator;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;
import com.volmit.iris.util.math.RNG;
public class CommandIrisStudioExplorerGenerator extends MortarCommand { public class CommandIrisStudioExplorerGenerator extends MortarCommand {
public CommandIrisStudioExplorerGenerator() { public CommandIrisStudioExplorerGenerator() {

View File

@@ -20,10 +20,10 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisRegion;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisRegion;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.format.C; import com.volmit.iris.util.format.C;
import com.volmit.iris.util.format.Form; import com.volmit.iris.util.format.Form;
@@ -103,9 +103,7 @@ public class CommandIrisStudioGoto extends MortarCommand {
J.s(() -> sender.player().teleport(l)); J.s(() -> sender.player().teleport(l));
} }
}); });
} } else {
else {
sender.sendMessage(args[0] + " is not a biome or region in this dimension. (Biome teleportation works best!"); sender.sendMessage(args[0] + " is not a biome or region in this dimension. (Biome teleportation works best!");
} }

View File

@@ -20,10 +20,10 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.object.InventorySlotType;
import com.volmit.iris.engine.object.IrisLootTable;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.InventorySlotType;
import com.volmit.iris.engine.object.IrisLootTable;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;

View File

@@ -28,10 +28,8 @@ import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;
public class CommandIrisStudioMap extends MortarCommand public class CommandIrisStudioMap extends MortarCommand {
{ public CommandIrisStudioMap() {
public CommandIrisStudioMap()
{
super("map", "render"); super("map", "render");
setDescription("Render a map (gui outside of mc)"); setDescription("Render a map (gui outside of mc)");
requiresPermission(Iris.perm.studio); requiresPermission(Iris.perm.studio);
@@ -44,16 +42,13 @@ public class CommandIrisStudioMap extends MortarCommand
} }
@Override @Override
public boolean handle(MortarSender sender, String[] args) public boolean handle(MortarSender sender, String[] args) {
{ if (!IrisSettings.get().isStudio()) {
if(!IrisSettings.get().isStudio())
{
sender.sendMessage("To use Iris Studio, please enable studio in Iris/settings.json"); sender.sendMessage("To use Iris Studio, please enable studio in Iris/settings.json");
return true; return true;
} }
if(!IrisSettings.get().isUseServerLaunchedGuis()) if (!IrisSettings.get().isUseServerLaunchedGuis()) {
{
sender.sendMessage("To use Iris Guis, please enable serverLaunchedGuis in Iris/settings.json"); sender.sendMessage("To use Iris Guis, please enable serverLaunchedGuis in Iris/settings.json");
return true; return true;
} }
@@ -74,8 +69,7 @@ public class CommandIrisStudioMap extends MortarCommand
} }
@Override @Override
protected String getArgsUsage() protected String getArgsUsage() {
{
return "[pack] [seed=1337]"; return "[pack] [seed=1337]";
} }
} }

View File

@@ -20,10 +20,10 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.util.scheduling.J;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;
import com.volmit.iris.util.scheduling.J;
public class CommandIrisStudioPackage extends MortarCommand { public class CommandIrisStudioPackage extends MortarCommand {
public CommandIrisStudioPackage() { public CommandIrisStudioPackage() {

View File

@@ -19,10 +19,10 @@
package com.volmit.iris.core.command.studio; package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.noise.CNG;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.IrisProject; import com.volmit.iris.core.IrisProject;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.noise.CNG;
import com.volmit.iris.engine.object.*; import com.volmit.iris.engine.object.*;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KMap;

View File

@@ -20,10 +20,10 @@ package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.object.IrisEntity;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisEntity;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.core.command.studio; package com.volmit.iris.core.command.studio;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.IrisProject; import com.volmit.iris.core.IrisProject;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.core.command.what; package com.volmit.iris.core.command.what;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.Command;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -20,9 +20,9 @@ package com.volmit.iris.core.command.what;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.core.command.what; package com.volmit.iris.core.command.what;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.util.format.C;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.format.C;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;
import com.volmit.iris.util.plugin.MortarSender; import com.volmit.iris.util.plugin.MortarSender;
import org.bukkit.Material; import org.bukkit.Material;

View File

@@ -19,11 +19,11 @@
package com.volmit.iris.core.command.what; package com.volmit.iris.core.command.what;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisObject; import com.volmit.iris.engine.object.IrisObject;
import com.volmit.iris.engine.object.IrisObjectPlacement; import com.volmit.iris.engine.object.IrisObjectPlacement;
import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.collection.KSet; import com.volmit.iris.util.collection.KSet;

View File

@@ -19,14 +19,14 @@
package com.volmit.iris.core.command.world; package com.volmit.iris.core.command.world;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.gui.Pregenerator;
import com.volmit.iris.core.link.MultiverseCoreLink; import com.volmit.iris.core.link.MultiverseCoreLink;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.core.gui.Pregenerator;
import com.volmit.iris.engine.IrisWorldCreator; import com.volmit.iris.engine.IrisWorldCreator;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.format.Form; import com.volmit.iris.util.format.Form;
import com.volmit.iris.util.plugin.MortarCommand; import com.volmit.iris.util.plugin.MortarCommand;

View File

@@ -106,10 +106,12 @@ public class CommandIrisPregen extends MortarCommand {
} }
try { try {
new Pregenerator(world, getVal(args[0]) * 2); new Pregenerator(world, getVal(args[0]) * 2);
} catch (NumberFormatException e) {Iris.reportError(e); } catch (NumberFormatException e) {
Iris.reportError(e);
sender.sendMessage("Invalid argument in command"); sender.sendMessage("Invalid argument in command");
return true; return true;
} catch (NullPointerException e) {Iris.reportError(e); } catch (NullPointerException e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
sender.sendMessage("No radius specified (check error in console)"); sender.sendMessage("No radius specified (check error in console)");
} catch (HeadlessException e) { } catch (HeadlessException e) {
@@ -130,12 +132,15 @@ public class CommandIrisPregen extends MortarCommand {
World world = Bukkit.getWorld(args[1]); World world = Bukkit.getWorld(args[1]);
try { try {
new Pregenerator(world, getVal(args[0]) * 2); new Pregenerator(world, getVal(args[0]) * 2);
} catch (NumberFormatException e) {Iris.reportError(e); } catch (NumberFormatException e) {
Iris.reportError(e);
sender.sendMessage("Invalid argument in command"); sender.sendMessage("Invalid argument in command");
return true; return true;
} catch (NullPointerException e) {Iris.reportError(e); } catch (NullPointerException e) {
Iris.reportError(e);
sender.sendMessage("Not all required parameters specified"); sender.sendMessage("Not all required parameters specified");
} catch (HeadlessException e) {Iris.reportError(e); } catch (HeadlessException e) {
Iris.reportError(e);
sender.sendMessage("If you are seeing this and are using a hosted server, please turn off 'useServerLaunchedGUIs' in the settings"); sender.sendMessage("If you are seeing this and are using a hosted server, please turn off 'useServerLaunchedGUIs' in the settings");
} }

View File

@@ -80,7 +80,8 @@ public class JigsawEditor implements Listener {
if (e.getPlayer().equals(player)) { if (e.getPlayer().equals(player)) {
try { try {
target = player.getTargetBlockExact(7).getLocation(); target = player.getTargetBlockExact(7).getLocation();
} catch (Throwable ex) {Iris.reportError(ex); } catch (Throwable ex) {
Iris.reportError(ex);
target = player.getLocation(); target = player.getLocation();
return; return;
} }
@@ -147,7 +148,8 @@ public class JigsawEditor implements Listener {
exit(); exit();
try { try {
IO.writeAll(targetSaveLocation, new JSONObject(new Gson().toJson(piece)).toString(4)); IO.writeAll(targetSaveLocation, new JSONObject(new Gson().toJson(piece)).toString(4));
} catch (IOException e) {Iris.reportError(e); } catch (IOException e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@@ -62,6 +62,6 @@ public class IrisRenderer {
} }
public void set(double worldX, double worldZ) { public void set(double worldX, double worldZ) {
((Engine) renderer).getWorld().getBlockAt((int) worldX, 20, (int) worldZ).setType(Material.DIAMOND_BLOCK); renderer.getWorld().getBlockAt((int) worldX, 20, (int) worldZ).setType(Material.DIAMOND_BLOCK);
} }
} }

View File

@@ -20,10 +20,10 @@ package com.volmit.iris.core.gui;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisComplex; import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisRegion;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisRegion;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.collection.KSet; import com.volmit.iris.util.collection.KSet;
@@ -80,7 +80,7 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
private int h = 0; private int h = 0;
private double lx = 0; private double lx = 0;
private double lz = 0; private double lz = 0;
private KList<LivingEntity> lastEntities = new KList<>(); private final KList<LivingEntity> lastEntities = new KList<>();
private double ox = 0; private double ox = 0;
private double oz = 0; private double oz = 0;
private double hx = 0; private double hx = 0;
@@ -88,10 +88,10 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
private double oxp = 0; private double oxp = 0;
private double ozp = 0; private double ozp = 0;
private Engine engine; private Engine engine;
private KMap<String, Long> notifications = new KMap<>(); private final KMap<String, Long> notifications = new KMap<>();
double tfps = 240D; double tfps = 240D;
int ltc = 3; int ltc = 3;
private ChronoLatch centities = new ChronoLatch(1000); private final ChronoLatch centities = new ChronoLatch(1000);
private final RollingSequence rs = new RollingSequence(512); private final RollingSequence rs = new RollingSequence(512);
private final O<Integer> m = new O<>(); private final O<Integer> m = new O<>();
private int tid = 0; private int tid = 0;
@@ -175,11 +175,10 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
return colorFunction.apply(wx, wz); return colorFunction.apply(wx, wz);
} }
public void notify(String s) public void notify(String s) {
{
notifications.put(s, M.ms() + 2500); notifications.put(s, M.ms() + 2500);
} }
@Override @Override
public void keyTyped(KeyEvent e) { public void keyTyped(KeyEvent e) {
@@ -192,12 +191,15 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
} }
if (e.getKeyCode() == KeyEvent.VK_CONTROL) { if (e.getKeyCode() == KeyEvent.VK_CONTROL) {
control = true; control = true;
}if (e.getKeyCode() == KeyEvent.VK_SEMICOLON) { }
if (e.getKeyCode() == KeyEvent.VK_SEMICOLON) {
debug = true; debug = true;
} if (e.getKeyCode() == KeyEvent.VK_SLASH) { }
if (e.getKeyCode() == KeyEvent.VK_SLASH) {
help = true; help = true;
helpIgnored = true; helpIgnored = true;
} if (e.getKeyCode() == KeyEvent.VK_ALT) { }
if (e.getKeyCode() == KeyEvent.VK_ALT) {
alt = true; alt = true;
} }
} }
@@ -217,7 +219,8 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
if (e.getKeyCode() == KeyEvent.VK_SLASH) { if (e.getKeyCode() == KeyEvent.VK_SLASH) {
help = false; help = false;
helpIgnored = true; helpIgnored = true;
} if (e.getKeyCode() == KeyEvent.VK_ALT) { }
if (e.getKeyCode() == KeyEvent.VK_ALT) {
alt = false; alt = false;
} }
@@ -225,19 +228,12 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
if (e.getKeyCode() == KeyEvent.VK_F) { if (e.getKeyCode() == KeyEvent.VK_F) {
follow = !follow; follow = !follow;
if(player != null && follow) if (player != null && follow) {
{
notify("Following " + player.getName() + ". Press F to disable"); notify("Following " + player.getName() + ". Press F to disable");
} } else if (follow) {
else if(follow)
{
notify("Can't follow, no one is in the world"); notify("Can't follow, no one is in the world");
follow = false; follow = false;
} } else {
else
{
notify("Follow Off"); notify("Follow Off");
} }
@@ -253,7 +249,7 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
if (e.getKeyCode() == KeyEvent.VK_P) { if (e.getKeyCode() == KeyEvent.VK_P) {
lowtile = !lowtile; lowtile = !lowtile;
dump(); dump();
notify("Rendering "+(lowtile ? "Low" : "High")+" Quality Tiles"); notify("Rendering " + (lowtile ? "Low" : "High") + " Quality Tiles");
return; return;
} }
if (e.getKeyCode() == KeyEvent.VK_E) { if (e.getKeyCode() == KeyEvent.VK_E) {
@@ -284,11 +280,9 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
int currentMode = currentType.ordinal(); int currentMode = currentType.ordinal();
for(RenderType i : RenderType.values()) for (RenderType i : RenderType.values()) {
{ if (e.getKeyChar() == String.valueOf(i.ordinal() + 1).charAt(0)) {
if (e.getKeyChar() == String.valueOf(i.ordinal()+1).charAt(0)) { if (i.ordinal() != currentMode) {
if(i.ordinal() != currentMode)
{
currentType = i; currentType = i;
dump(); dump();
notify("Rendering " + Form.capitalizeWords(currentType.name().toLowerCase().replaceAll("\\Q_\\E", " "))); notify("Rendering " + Form.capitalizeWords(currentType.name().toLowerCase().replaceAll("\\Q_\\E", " ")));
@@ -298,14 +292,13 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
} }
if (e.getKeyCode() == KeyEvent.VK_M) { if (e.getKeyCode() == KeyEvent.VK_M) {
currentType = RenderType.values()[(currentMode+1) % RenderType.values().length]; currentType = RenderType.values()[(currentMode + 1) % RenderType.values().length];
notify("Rendering " + Form.capitalizeWords(currentType.name().toLowerCase().replaceAll("\\Q_\\E", " "))); notify("Rendering " + Form.capitalizeWords(currentType.name().toLowerCase().replaceAll("\\Q_\\E", " ")));
dump(); dump();
} }
} }
private void dump() private void dump() {
{
positions.clear(); positions.clear();
fastpositions.clear(); fastpositions.clear();
} }
@@ -418,17 +411,15 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
hz += Math.abs(hz - lz) * 0.36; hz += Math.abs(hz - lz) * 0.36;
} }
if(centities.flip()) if (centities.flip()) {
{
J.s(() -> { J.s(() -> {
synchronized (lastEntities) synchronized (lastEntities) {
{
lastEntities.clear(); lastEntities.clear();
lastEntities.addAll(world.getEntitiesByClass(LivingEntity.class)); lastEntities.addAll(world.getEntitiesByClass(LivingEntity.class));
} }
}); });
} }
lowq = Math.max(Math.min((int)M.lerp(8, 28, velocity / 1000D), 28), 8); lowq = Math.max(Math.min((int) M.lerp(8, 28, velocity / 1000D), 28), 8);
PrecisionStopwatch p = PrecisionStopwatch.start(); PrecisionStopwatch p = PrecisionStopwatch.start();
Graphics2D g = (Graphics2D) gx; Graphics2D g = (Graphics2D) gx;
w = getWidth(); w = getWidth();
@@ -495,8 +486,7 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
} }
private void hanleFollow() { private void hanleFollow() {
if(follow && player != null) if (follow && player != null) {
{
animateTo(player.getLocation().getX(), player.getLocation().getZ()); animateTo(player.getLocation().getX(), player.getLocation().getZ());
} }
} }
@@ -504,21 +494,16 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
private void renderOverlays(Graphics2D g) { private void renderOverlays(Graphics2D g) {
renderPlayer(g); renderPlayer(g);
if(help) if (help) {
{
renderOverlayHelp(g); renderOverlayHelp(g);
} } else if (debug) {
else if(debug)
{
renderOverlayDebug(g); renderOverlayDebug(g);
} }
renderOverlayLegend(g); renderOverlayLegend(g);
renderHoverOverlay(g, shift); renderHoverOverlay(g, shift);
if(!notifications.isEmpty()) if (!notifications.isEmpty()) {
{
renderNotification(g); renderNotification(g);
} }
} }
@@ -526,7 +511,7 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
private void renderOverlayLegend(Graphics2D g) { private void renderOverlayLegend(Graphics2D g) {
KList<String> l = new KList<>(); KList<String> l = new KList<>();
l.add("Zoom: " + Form.pc(mscale, 0)); l.add("Zoom: " + Form.pc(mscale, 0));
l.add("Blocks: " + Form.f((int)mscale * w) + " by " + Form.f((int)mscale * h)); l.add("Blocks: " + Form.f((int) mscale * w) + " by " + Form.f((int) mscale * h));
l.add("BPP: " + Form.f(mscale, 1)); l.add("BPP: " + Form.f(mscale, 1));
l.add("Render Mode: " + Form.capitalizeWords(currentType.name().toLowerCase().replaceAll("\\Q_\\E", " "))); l.add("Render Mode: " + Form.capitalizeWords(currentType.name().toLowerCase().replaceAll("\\Q_\\E", " ")));
@@ -536,10 +521,8 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
private void renderNotification(Graphics2D g) { private void renderNotification(Graphics2D g) {
drawCardCB(g, notifications.k()); drawCardCB(g, notifications.k());
for(String i : notifications.k()) for (String i : notifications.k()) {
{ if (M.ms() > notifications.get(i)) {
if(M.ms() > notifications.get(i))
{
notifications.remove(i); notifications.remove(i);
} }
} }
@@ -548,47 +531,40 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
private void renderPlayer(Graphics2D g) { private void renderPlayer(Graphics2D g) {
Player b = null; Player b = null;
for(Player i : world.getPlayers()) for (Player i : world.getPlayers()) {
{
b = i; b = i;
renderPosition(g, i.getLocation().getX(), i.getLocation().getZ()); renderPosition(g, i.getLocation().getX(), i.getLocation().getZ());
} }
synchronized (lastEntities) synchronized (lastEntities) {
{
double dist = Double.MAX_VALUE; double dist = Double.MAX_VALUE;
LivingEntity h = null; LivingEntity h = null;
for(LivingEntity i : lastEntities) for (LivingEntity i : lastEntities) {
{ if (i instanceof Player) {
if(i instanceof Player)
{
continue; continue;
} }
renderMobPosition(g, i, i.getLocation().getX(), i.getLocation().getZ()); renderMobPosition(g, i, i.getLocation().getX(), i.getLocation().getZ());
if(shift) if (shift) {
{
double d = i.getLocation().distanceSquared(new Location(i.getWorld(), getWorldX(hx), i.getLocation().getY(), getWorldZ(hz))); double d = i.getLocation().distanceSquared(new Location(i.getWorld(), getWorldX(hx), i.getLocation().getY(), getWorldZ(hz)));
if(d < dist) if (d < dist) {
{
dist = d; dist = d;
h = i; h = i;
} }
} }
} }
if(h != null && shift) if (h != null && shift) {
{
g.setColor(Color.red); g.setColor(Color.red);
g.fillRoundRect((int)getScreenX(h.getLocation().getX()) - 10, (int)getScreenZ(h.getLocation().getZ()) - 10, 20, 20, 20, 20); g.fillRoundRect((int) getScreenX(h.getLocation().getX()) - 10, (int) getScreenZ(h.getLocation().getZ()) - 10, 20, 20, 20, 20);
KList<String> k = new KList<>(); KList<String> k = new KList<>();
k.add(Form.capitalizeWords(h.getType().name().toLowerCase(Locale.ROOT).replaceAll("\\Q_\\E", " ")) + h.getEntityId()); k.add(Form.capitalizeWords(h.getType().name().toLowerCase(Locale.ROOT).replaceAll("\\Q_\\E", " ")) + h.getEntityId());
k.add("Pos: " + h.getLocation().getBlockX() + ", " + h.getLocation().getBlockY() + ", " + h.getLocation().getBlockZ()); k.add("Pos: " + h.getLocation().getBlockX() + ", " + h.getLocation().getBlockY() + ", " + h.getLocation().getBlockZ());
k.add("UUID: " + h.getUniqueId().toString()); k.add("UUID: " + h.getUniqueId());
k.add("HP: " + h.getHealth() + " / " + h.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); k.add("HP: " + h.getHealth() + " / " + h.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
drawCardTR(g, k); drawCardTR(g, k);
} }
@@ -598,32 +574,26 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
} }
private void animateTo(double wx, double wz) { private void animateTo(double wx, double wz) {
double cx = getWorldX(getWidth()/2); double cx = getWorldX(getWidth() / 2);
double cz = getWorldZ(getHeight()/2); double cz = getWorldZ(getHeight() / 2);
ox += (wx - cx); ox += (wx - cx);
oz += (wz - cz); oz += (wz - cz);
} }
private void renderPosition(Graphics2D g, double x, double z) private void renderPosition(Graphics2D g, double x, double z) {
{ if (texture != null) {
if(texture != null) g.drawImage(texture, (int) getScreenX(x), (int) getScreenZ(z), 66, 66, (img, infoflags, xx, xy, width, height) -> true);
{ } else {
g.drawImage(texture, (int)getScreenX(x), (int)getScreenZ(z), 66, 66, (img, infoflags, xx, xy, width, height) -> true);
}
else
{
g.setColor(Color.darkGray); g.setColor(Color.darkGray);
g.fillRoundRect((int)getScreenX(x) - 15, (int)getScreenZ(z) - 15, 30, 30, 15, 15); g.fillRoundRect((int) getScreenX(x) - 15, (int) getScreenZ(z) - 15, 30, 30, 15, 15);
g.setColor(Color.cyan.darker().darker()); g.setColor(Color.cyan.darker().darker());
g.fillRoundRect((int)getScreenX(x) - 10, (int)getScreenZ(z) - 10, 20, 20, 10, 10); g.fillRoundRect((int) getScreenX(x) - 10, (int) getScreenZ(z) - 10, 20, 20, 10, 10);
} }
} }
private void renderMobPosition(Graphics2D g, LivingEntity e, double x, double z) private void renderMobPosition(Graphics2D g, LivingEntity e, double x, double z) {
{
g.setColor(Color.red.darker().darker()); g.setColor(Color.red.darker().darker());
g.fillRoundRect((int)getScreenX(x) - 2, (int)getScreenZ(z) - 2, 4, 4, 4, 4); g.fillRoundRect((int) getScreenX(x) - 2, (int) getScreenZ(z) - 2, 4, 4, 4, 4);
} }
private void renderHoverOverlay(Graphics2D g, boolean detailed) { private void renderHoverOverlay(Graphics2D g, boolean detailed) {
@@ -632,22 +602,21 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
KList<String> l = new KList<>(); KList<String> l = new KList<>();
l.add("Biome: " + biome.getName()); l.add("Biome: " + biome.getName());
l.add("Region: " + region.getName() + "(" + region.getLoadKey() + ")"); l.add("Region: " + region.getName() + "(" + region.getLoadKey() + ")");
if(detailed) if (detailed) {
{ l.add("Block " + (int) getWorldX(hx) + ", " + (int) getWorldZ(hz));
l.add("Block " + (int)getWorldX(hx) + ", " + (int)getWorldZ(hz)); l.add("Chunk " + ((int) getWorldX(hx) >> 4) + ", " + ((int) getWorldZ(hz) >> 4));
l.add("Chunk " + ((int)getWorldX(hx)>>4) + ", " + ((int)getWorldZ(hz)>>4)); l.add("Region " + (((int) getWorldX(hx) >> 4) >> 5) + ", " + (((int) getWorldZ(hz) >> 4) >> 5));
l.add("Region " + (((int)getWorldX(hx)>>4)>>5) + ", " + (((int)getWorldZ(hz)>>4)>>5));
l.add("Key: " + biome.getLoadKey()); l.add("Key: " + biome.getLoadKey());
l.add("File: " + biome.getLoadFile()); l.add("File: " + biome.getLoadFile());
} }
drawCardAt((float)hx, (float)hz, 0, 0, g, l); drawCardAt((float) hx, (float) hz, 0, 0, g, l);
} }
private void renderOverlayDebug(Graphics2D g) { private void renderOverlayDebug(Graphics2D g) {
KList<String> l = new KList<>(); KList<String> l = new KList<>();
l.add("Velocity: " + (int)velocity); l.add("Velocity: " + (int) velocity);
l.add("Center Pos: " + Form.f((int)getWorldX(getWidth()/2)) + ", " + Form.f((int)getWorldZ(getHeight()/2))); l.add("Center Pos: " + Form.f((int) getWorldX(getWidth() / 2)) + ", " + Form.f((int) getWorldZ(getHeight() / 2)));
drawCardBL(g, l); drawCardBL(g, l);
} }
@@ -674,32 +643,26 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
drawCardTL(g, l); drawCardTL(g, l);
} }
private void drawCardTL(Graphics2D g, KList<String> text) private void drawCardTL(Graphics2D g, KList<String> text) {
{
drawCardAt(0, 0, 0, 0, g, text); drawCardAt(0, 0, 0, 0, g, text);
} }
private void drawCardBR(Graphics2D g, KList<String> text) private void drawCardBR(Graphics2D g, KList<String> text) {
{
drawCardAt(getWidth(), getHeight(), 1, 1, g, text); drawCardAt(getWidth(), getHeight(), 1, 1, g, text);
} }
private void drawCardBL(Graphics2D g, KList<String> text) private void drawCardBL(Graphics2D g, KList<String> text) {
{
drawCardAt(0, getHeight(), 0, 1, g, text); drawCardAt(0, getHeight(), 0, 1, g, text);
} }
private void drawCardTR(Graphics2D g, KList<String> text) private void drawCardTR(Graphics2D g, KList<String> text) {
{
drawCardAt(getWidth(), 0, 1, 0, g, text); drawCardAt(getWidth(), 0, 1, 0, g, text);
} }
private void open() private void open() {
{
IrisComplex complex = engine.getFramework().getComplex(); IrisComplex complex = engine.getFramework().getComplex();
File r = null; File r = null;
switch(currentType) switch (currentType) {
{
case BIOME, LAYER_LOAD, DECORATOR_LOAD, OBJECT_LOAD, HEIGHT -> r = complex.getTrueBiomeStream().get(getWorldX(hx), getWorldZ(hz)).openInVSCode(); case BIOME, LAYER_LOAD, DECORATOR_LOAD, OBJECT_LOAD, HEIGHT -> r = complex.getTrueBiomeStream().get(getWorldX(hx), getWorldZ(hz)).openInVSCode();
case BIOME_LAND -> r = complex.getLandBiomeStream().get(getWorldX(hx), getWorldZ(hz)).openInVSCode(); case BIOME_LAND -> r = complex.getLandBiomeStream().get(getWorldX(hx), getWorldZ(hz)).openInVSCode();
case BIOME_SEA -> r = complex.getSeaBiomeStream().get(getWorldX(hx), getWorldZ(hz)).openInVSCode(); case BIOME_SEA -> r = complex.getSeaBiomeStream().get(getWorldX(hx), getWorldZ(hz)).openInVSCode();
@@ -710,41 +673,32 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
notify("Opening " + r.getPath() + " in VSCode"); notify("Opening " + r.getPath() + " in VSCode");
} }
private void teleport() private void teleport() {
{
J.s(() -> { J.s(() -> {
if(player != null) if (player != null) {
{
double h = engine.getFramework().getComplex().getTrueHeightStream().get(getWorldX(hx), getWorldZ(hz)); double h = engine.getFramework().getComplex().getTrueHeightStream().get(getWorldX(hx), getWorldZ(hz));
player.teleport(new Location(player.getWorld(), getWorldX(hx), h, getWorldZ(hz))); player.teleport(new Location(player.getWorld(), getWorldX(hx), h, getWorldZ(hz)));
notify("Teleporting to " + Form.f((int)getWorldX(hx)) +", " + Form.f((int)h) + ", " + Form.f((int)getWorldZ(hz))); notify("Teleporting to " + Form.f((int) getWorldX(hx)) + ", " + Form.f((int) h) + ", " + Form.f((int) getWorldZ(hz)));
} } else {
else
{
notify("No player in world, can't teleport."); notify("No player in world, can't teleport.");
} }
}); });
} }
private void drawCardCB(Graphics2D g, KList<String> text) private void drawCardCB(Graphics2D g, KList<String> text) {
{ drawCardAt(getWidth() / 2, getHeight(), 0.5, 1, g, text);
drawCardAt(getWidth()/2, getHeight(), 0.5, 1, g, text);
} }
private void drawCardCT(Graphics2D g, KList<String> text) private void drawCardCT(Graphics2D g, KList<String> text) {
{ drawCardAt(getWidth() / 2, 0, 0.5, 0, g, text);
drawCardAt(getWidth()/2, 0, 0.5, 0, g, text);
} }
private void drawCardAt(float x, float y, double pushX, double pushZ, Graphics2D g, KList<String> text) private void drawCardAt(float x, float y, double pushX, double pushZ, Graphics2D g, KList<String> text) {
{
g.setFont(new Font("Hevetica", Font.BOLD, 16)); g.setFont(new Font("Hevetica", Font.BOLD, 16));
int h = 0; int h = 0;
int w = 0; int w = 0;
for(String i : text) for (String i : text) {
{
h += g.getFontMetrics().getHeight(); h += g.getFontMetrics().getHeight();
w = Math.max(w, g.getFontMetrics().stringWidth(i)); w = Math.max(w, g.getFontMetrics().stringWidth(i));
} }
@@ -752,21 +706,20 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
w += 28; w += 28;
h += 28; h += 28;
int cw = (int) ((w+26) * pushX); int cw = (int) ((w + 26) * pushX);
int ch = (int) ((h+26) * pushZ); int ch = (int) ((h + 26) * pushZ);
g.setColor(Color.darkGray); g.setColor(Color.darkGray);
g.fillRect((int)x + 7 + 2-cw , (int)y + 7 + 2-ch, w + 7, h + 7); // Shadow g.fillRect((int) x + 7 + 2 - cw, (int) y + 7 + 2 - ch, w + 7, h + 7); // Shadow
g.setColor(Color.gray); g.setColor(Color.gray);
g.fillRect((int)x + 7 + 1-cw, (int)y + 7 + 1-ch, w + 7, h + 7); // Shadow g.fillRect((int) x + 7 + 1 - cw, (int) y + 7 + 1 - ch, w + 7, h + 7); // Shadow
g.setColor(Color.white); g.setColor(Color.white);
g.fillRect((int)x + 7-cw, (int)y + 7-ch, w + 7, h + 7); g.fillRect((int) x + 7 - cw, (int) y + 7 - ch, w + 7, h + 7);
g.setColor(Color.black); g.setColor(Color.black);
int m = 0; int m = 0;
for(String i : text) for (String i : text) {
{ g.drawString(i, x + 14 - cw, y + 14 - ch + (++m * g.getFontMetrics().getHeight()));
g.drawString(i, x + 14-cw, y + 14 -ch + (++m * g.getFontMetrics().getHeight()));
} }
} }
@@ -785,7 +738,8 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
try { try {
nv.texture = ImageIO.read(file); nv.texture = ImageIO.read(file);
frame.setIconImage(ImageIO.read(file)); frame.setIconImage(ImageIO.read(file));
} catch (IOException e) {Iris.reportError(e); } catch (IOException e) {
Iris.reportError(e);
} }
} }
@@ -811,13 +765,9 @@ public class IrisVision extends JPanel implements MouseWheelListener, KeyListene
@Override @Override
public void mouseClicked(MouseEvent e) { public void mouseClicked(MouseEvent e) {
if(control) if (control) {
{
teleport(); teleport();
} } else if (alt) {
else if(alt)
{
open(); open();
} }
} }

View File

@@ -32,7 +32,6 @@ import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.swing.*; import javax.swing.*;
import java.awt.Dimension;
import java.awt.*; import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.io.File; import java.io.File;
@@ -250,7 +249,8 @@ public class NoiseExplorer extends JPanel implements MouseWheelListener {
if (file != null) { if (file != null) {
try { try {
frame.setIconImage(ImageIO.read(file)); frame.setIconImage(ImageIO.read(file));
} catch (IOException e) {Iris.reportError(e); } catch (IOException e) {
Iris.reportError(e);
} }
} }
frame.setSize(1440, 820); frame.setSize(1440, 820);
@@ -283,7 +283,8 @@ public class NoiseExplorer extends JPanel implements MouseWheelListener {
if (file != null) { if (file != null) {
try { try {
frame.setIconImage(ImageIO.read(file)); frame.setIconImage(ImageIO.read(file));
} catch (IOException e) {Iris.reportError(e); } catch (IOException e) {
Iris.reportError(e);
} }
} }
frame.setSize(1440, 820); frame.setSize(1440, 820);

View File

@@ -192,8 +192,7 @@ public class Pregenerator implements Listener {
flushWorld(); flushWorld();
} }
while(wait.isNotEmpty()) while (wait.isNotEmpty()) {
{
J.sleep(50); J.sleep(50);
} }
@@ -263,7 +262,7 @@ public class Pregenerator implements Listener {
totalChunks.getAndAdd(1024); totalChunks.getAndAdd(1024);
mcaDefer.add(new ChunkPosition(x, z)); mcaDefer.add(new ChunkPosition(x, z));
install(mcg, mca); install(mcg, mca);
} else { } else {
totalChunks.getAndAdd(1024); totalChunks.getAndAdd(1024);
mcaDefer.add(new ChunkPosition(x, z)); mcaDefer.add(new ChunkPosition(x, z));
e.complete(); e.complete();
@@ -277,7 +276,8 @@ public class Pregenerator implements Listener {
try { try {
Files.move(from.toPath(), to.toPath()); Files.move(from.toPath(), to.toPath());
return true; return true;
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
@@ -285,7 +285,8 @@ public class Pregenerator implements Listener {
IO.copyFile(from, to); IO.copyFile(from, to);
from.delete(); from.delete();
return true; return true;
} catch (IOException e) {Iris.reportError(e); } catch (IOException e) {
Iris.reportError(e);
} }
@@ -307,13 +308,12 @@ public class Pregenerator implements Listener {
if (PaperLib.isPaper()) { if (PaperLib.isPaper()) {
method.set("PaperAsync (Slow)"); method.set("PaperAsync (Slow)");
while(wait.size() > 8192) while (wait.size() > 8192) {
{
J.sleep(25); J.sleep(25);
} }
mcaIteration.accept(mcaox, mcaoz, (ii, jj) -> { mcaIteration.accept(mcaox, mcaoz, (ii, jj) -> {
ChunkPosition cx = new ChunkPosition(ii,jj); ChunkPosition cx = new ChunkPosition(ii, jj);
PaperLib.getChunkAtAsync(world, ii, jj).thenAccept((c) -> { PaperLib.getChunkAtAsync(world, ii, jj).thenAccept((c) -> {
draw(ii, jj, COLOR_MCA_GENERATE_SLOW_ASYNC); draw(ii, jj, COLOR_MCA_GENERATE_SLOW_ASYNC);
draw(ii, jj, COLOR_MCA_GENERATED); draw(ii, jj, COLOR_MCA_GENERATED);
@@ -321,8 +321,7 @@ public class Pregenerator implements Listener {
vcax.set(ii); vcax.set(ii);
vcaz.set(jj); vcaz.set(jj);
synchronized (wait) synchronized (wait) {
{
wait.remove(cx); wait.remove(cx);
} }
}); });
@@ -358,7 +357,8 @@ public class Pregenerator implements Listener {
try { try {
q.pop().run(); q.pop().run();
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
} }
@@ -521,7 +521,8 @@ public class Pregenerator implements Listener {
while (order.isNotEmpty()) { while (order.isNotEmpty()) {
try { try {
order.pop().run(); order.pop().run();
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
} }
@@ -590,7 +591,8 @@ public class Pregenerator implements Listener {
if (file != null) { if (file != null) {
try { try {
frame.setIconImage(ImageIO.read(file)); frame.setIconImage(ImageIO.read(file));
} catch (IOException ignored) {Iris.reportError(ignored); } catch (IOException ignored) {
Iris.reportError(ignored);
} }
} }

View File

@@ -1,37 +0,0 @@
/*
* Iris is a World Generator for Minecraft Bukkit Servers
* Copyright (c) 2021 Arcane Arts (Volmit Software)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
package com.volmit.iris.core.link;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
public class CitizensLink {
public CitizensLink() {
}
public boolean supported() {
return getCitizens() != null;
}
public Plugin getCitizens() {
return Bukkit.getPluginManager().getPlugin("Citizens");
}
}

View File

@@ -67,7 +67,8 @@ public class MultiverseCoreLink {
Field f = mvWorldManager.getClass().getDeclaredField("worldsFromTheConfig"); Field f = mvWorldManager.getClass().getDeclaredField("worldsFromTheConfig");
f.setAccessible(true); f.setAccessible(true);
return (Map<String, ?>) f.get(mvWorldManager); return (Map<String, ?>) f.get(mvWorldManager);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
@@ -97,7 +98,8 @@ public class MultiverseCoreLink {
Plugin p = getMultiverse(); Plugin p = getMultiverse();
Object mvWorldManager = p.getClass().getDeclaredMethod("getMVWorldManager").invoke(p); Object mvWorldManager = p.getClass().getDeclaredMethod("getMVWorldManager").invoke(p);
mvWorldManager.getClass().getDeclaredMethod("saveWorldsConfig").invoke(mvWorldManager); mvWorldManager.getClass().getDeclaredMethod("saveWorldsConfig").invoke(mvWorldManager);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -110,7 +112,8 @@ public class MultiverseCoreLink {
try { try {
String t = worldNameTypes.get(worldName); String t = worldNameTypes.get(worldName);
return t == null ? defaultType : t; return t == null ? defaultType : t;
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
return defaultType; return defaultType;
} }
} }

View File

@@ -43,7 +43,8 @@ public class INMS {
try { try {
return Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3]; return Bukkit.getServer().getClass().getCanonicalName().split("\\Q.\\E")[3];
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
Iris.error("Failed to determine server nms version!"); Iris.error("Failed to determine server nms version!");
e.printStackTrace(); e.printStackTrace();
} }
@@ -61,7 +62,8 @@ public class INMS {
Iris.info("Craftbukkit " + code + " <-> " + b.getClass().getSimpleName() + " Successfully Bound"); Iris.info("Craftbukkit " + code + " <-> " + b.getClass().getSimpleName() + " Successfully Bound");
return b; return b;
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@@ -46,7 +46,8 @@ public class NMSBinding17_1 implements INMSBinding {
private Object getBiomeStorage(ChunkGenerator.BiomeGrid g) { private Object getBiomeStorage(ChunkGenerator.BiomeGrid g) {
try { try {
return getFieldForBiomeStorage(g).get(g); return getFieldForBiomeStorage(g).get(g);
} catch (IllegalAccessException e) {Iris.reportError(e); } catch (IllegalAccessException e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
@@ -64,7 +65,8 @@ public class NMSBinding17_1 implements INMSBinding {
f = storage.getClass().getDeclaredField("biome"); f = storage.getClass().getDeclaredField("biome");
f.setAccessible(true); f.setAccessible(true);
return f; return f;
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
Iris.error(storage.getClass().getCanonicalName()); Iris.error(storage.getClass().getCanonicalName());
} }
@@ -128,7 +130,8 @@ public class NMSBinding17_1 implements INMSBinding {
f.setAccessible(true); f.setAccessible(true);
//noinspection unchecked //noinspection unchecked
return (T) f.invoke(from, par); return (T) f.invoke(from, par);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
@@ -141,7 +144,8 @@ public class NMSBinding17_1 implements INMSBinding {
f.setAccessible(true); f.setAccessible(true);
//noinspection unchecked //noinspection unchecked
return (T) f.invoke(null, par); return (T) f.invoke(null, par);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
@@ -154,7 +158,8 @@ public class NMSBinding17_1 implements INMSBinding {
f.setAccessible(true); f.setAccessible(true);
//noinspection unchecked //noinspection unchecked
return (T) f.get(from); return (T) f.get(from);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
@@ -167,7 +172,8 @@ public class NMSBinding17_1 implements INMSBinding {
f.setAccessible(true); f.setAccessible(true);
//noinspection unchecked //noinspection unchecked
return (T) f.get(null); return (T) f.get(null);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
@@ -230,7 +236,8 @@ public class NMSBinding17_1 implements INMSBinding {
try { try {
BiomeStorage s = (BiomeStorage) getFieldForBiomeStorage(chunk).get(chunk); BiomeStorage s = (BiomeStorage) getFieldForBiomeStorage(chunk).get(chunk);
s.setBiome(x, y, z, (BiomeBase) somethingVeryDirty); s.setBiome(x, y, z, (BiomeBase) somethingVeryDirty);
} catch (IllegalAccessException e) {Iris.reportError(e); } catch (IllegalAccessException e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@@ -20,17 +20,17 @@ package com.volmit.iris.engine;
import com.google.common.util.concurrent.AtomicDouble; import com.google.common.util.concurrent.AtomicDouble;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.actuator.IrisTerrainActuator; import com.volmit.iris.engine.actuator.IrisTerrainActuator;
import com.volmit.iris.engine.modifier.IrisCaveModifier;
import com.volmit.iris.engine.noise.CNG;
import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.data.DataProvider; import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.modifier.IrisCaveModifier;
import com.volmit.iris.engine.noise.CNG;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.object.common.CaveResult;
import com.volmit.iris.engine.stream.ProceduralStream; import com.volmit.iris.engine.stream.ProceduralStream;
import com.volmit.iris.engine.stream.interpolation.Interpolated; import com.volmit.iris.engine.stream.interpolation.Interpolated;
import com.volmit.iris.engine.object.common.CaveResult;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.M;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;

View File

@@ -19,12 +19,15 @@
package com.volmit.iris.engine; package com.volmit.iris.engine;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.framework.*; import com.volmit.iris.engine.framework.*;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisBiomePaletteLayer;
import com.volmit.iris.engine.object.IrisDecorator;
import com.volmit.iris.engine.object.IrisObjectPlacement;
import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.scheduling.J; import com.volmit.iris.util.scheduling.J;
import com.volmit.iris.util.scheduling.PrecisionStopwatch; import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import com.volmit.iris.util.math.RNG;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import org.bukkit.Chunk; import org.bukkit.Chunk;
@@ -97,28 +100,24 @@ public class IrisEngine extends BlockPopulator implements Engine {
} }
private void computeBiomeMaxes() { private void computeBiomeMaxes() {
for(IrisBiome i : getDimension().getAllBiomes(this)) for (IrisBiome i : getDimension().getAllBiomes(this)) {
{
double density = 0; double density = 0;
for(IrisObjectPlacement j : i.getObjects()) for (IrisObjectPlacement j : i.getObjects()) {
{
density += j.getDensity() * j.getChance(); density += j.getDensity() * j.getChance();
} }
maxBiomeObjectDensity = Math.max(maxBiomeObjectDensity, density); maxBiomeObjectDensity = Math.max(maxBiomeObjectDensity, density);
density = 0; density = 0;
for(IrisDecorator j : i.getDecorators()) for (IrisDecorator j : i.getDecorators()) {
{
density += Math.max(j.getStackMax(), 1) * j.getChance(); density += Math.max(j.getStackMax(), 1) * j.getChance();
} }
maxBiomeDecoratorDensity = Math.max(maxBiomeDecoratorDensity, density); maxBiomeDecoratorDensity = Math.max(maxBiomeDecoratorDensity, density);
density = 0; density = 0;
for(IrisBiomePaletteLayer j : i.getLayers()) for (IrisBiomePaletteLayer j : i.getLayers()) {
{
density++; density++;
} }

View File

@@ -20,14 +20,14 @@ package com.volmit.iris.engine;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.object.IrisDimensionIndex;
import com.volmit.iris.engine.object.IrisPosition;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineCompound; import com.volmit.iris.engine.framework.EngineCompound;
import com.volmit.iris.engine.framework.EngineData; import com.volmit.iris.engine.framework.EngineData;
import com.volmit.iris.engine.framework.EngineTarget; import com.volmit.iris.engine.framework.EngineTarget;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.object.IrisDimensionIndex;
import com.volmit.iris.engine.object.IrisPosition;
import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.engine.parallel.MultiBurst;
import com.volmit.iris.util.atomics.AtomicRollingSequence; import com.volmit.iris.util.atomics.AtomicRollingSequence;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;

View File

@@ -23,11 +23,11 @@ import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.actuator.IrisBiomeActuator; import com.volmit.iris.engine.actuator.IrisBiomeActuator;
import com.volmit.iris.engine.actuator.IrisDecorantActuator; import com.volmit.iris.engine.actuator.IrisDecorantActuator;
import com.volmit.iris.engine.actuator.IrisTerrainActuator; import com.volmit.iris.engine.actuator.IrisTerrainActuator;
import com.volmit.iris.engine.framework.*;
import com.volmit.iris.engine.modifier.IrisCaveModifier; import com.volmit.iris.engine.modifier.IrisCaveModifier;
import com.volmit.iris.engine.modifier.IrisDepositModifier; import com.volmit.iris.engine.modifier.IrisDepositModifier;
import com.volmit.iris.engine.modifier.IrisPostModifier; import com.volmit.iris.engine.modifier.IrisPostModifier;
import com.volmit.iris.engine.modifier.IrisRavineModifier; import com.volmit.iris.engine.modifier.IrisRavineModifier;
import com.volmit.iris.engine.framework.*;
import com.volmit.iris.util.scheduling.ChronoLatch; import com.volmit.iris.util.scheduling.ChronoLatch;
import lombok.Getter; import lombok.Getter;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.engine; package com.volmit.iris.engine;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.framework.EngineCompositeGenerator; import com.volmit.iris.engine.framework.EngineCompositeGenerator;
import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.util.fakenews.FakeWorld; import com.volmit.iris.util.fakenews.FakeWorld;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.WorldCreator; import org.bukkit.WorldCreator;

View File

@@ -20,13 +20,13 @@ package com.volmit.iris.engine;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings; import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedWorldManager; import com.volmit.iris.engine.framework.EngineAssignedWorldManager;
import com.volmit.iris.util.scheduling.J; import com.volmit.iris.engine.object.*;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.scheduling.J;
import org.bukkit.Chunk; import org.bukkit.Chunk;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockBreakEvent;

View File

@@ -20,15 +20,15 @@ package com.volmit.iris.engine.actuator;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.data.chunk.TerrainChunk;
import com.volmit.iris.engine.object.IrisBiomeCustom;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedActuator; import com.volmit.iris.engine.framework.EngineAssignedActuator;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.hunk.view.BiomeGridHunkView; import com.volmit.iris.engine.hunk.view.BiomeGridHunkView;
import com.volmit.iris.util.scheduling.PrecisionStopwatch; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisBiomeCustom;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import com.volmit.iris.engine.data.chunk.TerrainChunk; import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.generator.ChunkGenerator; import org.bukkit.generator.ChunkGenerator;

View File

@@ -19,13 +19,13 @@
package com.volmit.iris.engine.actuator; package com.volmit.iris.engine.actuator;
import com.volmit.iris.engine.decorator.*; import com.volmit.iris.engine.decorator.*;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedActuator; import com.volmit.iris.engine.framework.EngineAssignedActuator;
import com.volmit.iris.engine.framework.EngineDecorator; import com.volmit.iris.engine.framework.EngineDecorator;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.util.scheduling.PrecisionStopwatch; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import lombok.Getter; import lombok.Getter;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;

View File

@@ -18,13 +18,13 @@
package com.volmit.iris.engine.actuator; package com.volmit.iris.engine.actuator;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedActuator; import com.volmit.iris.engine.framework.EngineAssignedActuator;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import lombok.Getter; import lombok.Getter;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;

View File

@@ -18,8 +18,8 @@
package com.volmit.iris.engine.cache; package com.volmit.iris.engine.cache;
import com.volmit.iris.util.scheduling.IrisLock;
import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.M;
import com.volmit.iris.util.scheduling.IrisLock;
import java.util.function.Supplier; import java.util.function.Supplier;

View File

@@ -76,7 +76,8 @@ public class B {
Material mm = Material.valueOf(bx); Material mm = Material.valueOf(bx);
materialCache.put(bx, mm); materialCache.put(bx, mm);
return mm; return mm;
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
nullMaterialCache.add(bx); nullMaterialCache.add(bx);
return null; return null;
} }
@@ -111,7 +112,8 @@ public class B {
} }
return bdx; return bdx;
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
Iris.warn("Unknown Block Data '" + bdxf + "'"); Iris.warn("Unknown Block Data '" + bdxf + "'");
} }
@@ -143,7 +145,8 @@ public class B {
BlockData bx = Bukkit.createBlockData(ix); BlockData bx = Bukkit.createBlockData(ix);
blockDataCache.put(ix, bx); blockDataCache.put(ix, bx);
return bx; return bx;
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
@@ -154,7 +157,8 @@ public class B {
try { try {
BlockData bd = Material.valueOf(i).createBlockData(); BlockData bd = Material.valueOf(i).createBlockData();
blockDataCache.put(ix, bd); blockDataCache.put(ix, bd);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }

View File

@@ -69,7 +69,8 @@ public class DirectWorldWriter {
MCAUtil.write(writeBuffer.get(i), f, true); MCAUtil.write(writeBuffer.get(i), f, true);
writeBuffer.remove(i); writeBuffer.remove(i);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
}); });
@@ -157,7 +158,8 @@ public class DirectWorldWriter {
} }
return getBlockData(tag); return getBlockData(tag);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
return B.get("AIR"); return B.get("AIR");
@@ -238,14 +240,11 @@ public class DirectWorldWriter {
public void verify(int mcaox, int mcaoz) { public void verify(int mcaox, int mcaoz) {
MCAFile file = getMCA(mcaox, mcaoz); MCAFile file = getMCA(mcaox, mcaoz);
for(int i = 0; i < 32; i++) for (int i = 0; i < 32; i++) {
{ for (int j = 0; j < 32; j++) {
for(int j = 0; j < 32; j++)
{
Chunk c = file.getChunk(i, j); Chunk c = file.getChunk(i, j);
if(c == null) if (c == null) {
{
Iris.warn("Chunk " + ((mcaox << 5) + i) + ", " + ((mcaoz << 5) + j) + " is null in MCA File " + mcaox + ", " + mcaoz); Iris.warn("Chunk " + ((mcaox << 5) + i) + ", " + ((mcaoz << 5) + j) + " is null in MCA File " + mcaox + ", " + mcaoz);
} }
} }

View File

@@ -60,7 +60,8 @@ public class LinkedTerrainChunk implements TerrainChunk {
private ChunkData createChunkData(int maxHeight) { private ChunkData createChunkData(int maxHeight) {
try { try {
return Bukkit.createChunkData(new HeightedFakeWorld(maxHeight)); return Bukkit.createChunkData(new HeightedFakeWorld(maxHeight));
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }

View File

@@ -126,23 +126,21 @@ public class ResourceLoader<T extends IrisRegistrant> {
t.setLoader(manager); t.setLoader(manager);
lock.unlock(); lock.unlock();
return t; return t;
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
lock.unlock(); lock.unlock();
failLoad(j, e); failLoad(j, e);
return null; return null;
} }
} }
public KList<T> loadAll(KList<String> s) public KList<T> loadAll(KList<String> s) {
{
KList<T> m = new KList<>(); KList<T> m = new KList<>();
for(String i : s) for (String i : s) {
{
T t = load(i); T t = load(i);
if(t != null) if (t != null) {
{
m.add(t); m.add(t);
} }
} }

View File

@@ -93,19 +93,22 @@ public final class SNBTParser implements MaxDepthIO {
} else if (SHORT_LITERAL_PATTERN.matcher(s).matches()) { } else if (SHORT_LITERAL_PATTERN.matcher(s).matches()) {
try { try {
return new ShortTag(Short.parseShort(s.substring(0, s.length() - 1))); return new ShortTag(Short.parseShort(s.substring(0, s.length() - 1)));
} catch (NumberFormatException ex) {Iris.reportError(ex); } catch (NumberFormatException ex) {
Iris.reportError(ex);
throw ptr.parseException("short not in range: \"" + s.substring(0, s.length() - 1) + "\""); throw ptr.parseException("short not in range: \"" + s.substring(0, s.length() - 1) + "\"");
} }
} else if (LONG_LITERAL_PATTERN.matcher(s).matches()) { } else if (LONG_LITERAL_PATTERN.matcher(s).matches()) {
try { try {
return new LongTag(Long.parseLong(s.substring(0, s.length() - 1))); return new LongTag(Long.parseLong(s.substring(0, s.length() - 1)));
} catch (NumberFormatException ex) {Iris.reportError(ex); } catch (NumberFormatException ex) {
Iris.reportError(ex);
throw ptr.parseException("long not in range: \"" + s.substring(0, s.length() - 1) + "\""); throw ptr.parseException("long not in range: \"" + s.substring(0, s.length() - 1) + "\"");
} }
} else if (INT_LITERAL_PATTERN.matcher(s).matches()) { } else if (INT_LITERAL_PATTERN.matcher(s).matches()) {
try { try {
return new IntTag(Integer.parseInt(s)); return new IntTag(Integer.parseInt(s));
} catch (NumberFormatException ex) {Iris.reportError(ex); } catch (NumberFormatException ex) {
Iris.reportError(ex);
throw ptr.parseException("int not in range: \"" + s.substring(0, s.length() - 1) + "\""); throw ptr.parseException("int not in range: \"" + s.substring(0, s.length() - 1) + "\"");
} }
} else if (DOUBLE_LITERAL_PATTERN.matcher(s).matches()) { } else if (DOUBLE_LITERAL_PATTERN.matcher(s).matches()) {
@@ -152,7 +155,8 @@ public final class SNBTParser implements MaxDepthIO {
Tag<?> element = parseAnything(decrementMaxDepth(maxDepth)); Tag<?> element = parseAnything(decrementMaxDepth(maxDepth));
try { try {
list.addUnchecked(element); list.addUnchecked(element);
} catch (IllegalArgumentException ex) {Iris.reportError(ex); } catch (IllegalArgumentException ex) {
Iris.reportError(ex);
throw ptr.parseException(ex.getMessage()); throw ptr.parseException(ex.getMessage());
} }
if (!ptr.nextArrayElement()) { if (!ptr.nextArrayElement()) {
@@ -187,7 +191,8 @@ public final class SNBTParser implements MaxDepthIO {
if (NUMBER_PATTERN.matcher(s).matches()) { if (NUMBER_PATTERN.matcher(s).matches()) {
try { try {
byteList.add(Byte.parseByte(s)); byteList.add(Byte.parseByte(s));
} catch (NumberFormatException ex) {Iris.reportError(ex); } catch (NumberFormatException ex) {
Iris.reportError(ex);
throw ptr.parseException("byte not in range: \"" + s + "\""); throw ptr.parseException("byte not in range: \"" + s + "\"");
} }
} else { } else {
@@ -213,7 +218,8 @@ public final class SNBTParser implements MaxDepthIO {
if (NUMBER_PATTERN.matcher(s).matches()) { if (NUMBER_PATTERN.matcher(s).matches()) {
try { try {
intList.add(Integer.parseInt(s)); intList.add(Integer.parseInt(s));
} catch (NumberFormatException ex) {Iris.reportError(ex); } catch (NumberFormatException ex) {
Iris.reportError(ex);
throw ptr.parseException("int not in range: \"" + s + "\""); throw ptr.parseException("int not in range: \"" + s + "\"");
} }
} else { } else {
@@ -235,7 +241,8 @@ public final class SNBTParser implements MaxDepthIO {
if (NUMBER_PATTERN.matcher(s).matches()) { if (NUMBER_PATTERN.matcher(s).matches()) {
try { try {
longList.add(Long.parseLong(s)); longList.add(Long.parseLong(s));
} catch (NumberFormatException ex) {Iris.reportError(ex); } catch (NumberFormatException ex) {
Iris.reportError(ex);
throw ptr.parseException("long not in range: \"" + s + "\""); throw ptr.parseException("long not in range: \"" + s + "\"");
} }
} else { } else {

View File

@@ -18,12 +18,12 @@
package com.volmit.iris.engine.decorator; package com.volmit.iris.engine.decorator;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
public class IrisCeilingDecorator extends IrisEngineDecorator { public class IrisCeilingDecorator extends IrisEngineDecorator {

View File

@@ -19,13 +19,13 @@
package com.volmit.iris.engine.decorator; package com.volmit.iris.engine.decorator;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedComponent; import com.volmit.iris.engine.framework.EngineAssignedComponent;
import com.volmit.iris.engine.framework.EngineDecorator; import com.volmit.iris.engine.framework.EngineDecorator;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import lombok.Getter; import lombok.Getter;

View File

@@ -18,12 +18,12 @@
package com.volmit.iris.engine.decorator; package com.volmit.iris.engine.decorator;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
public class IrisSeaFloorDecorator extends IrisEngineDecorator { public class IrisSeaFloorDecorator extends IrisEngineDecorator {

View File

@@ -18,12 +18,12 @@
package com.volmit.iris.engine.decorator; package com.volmit.iris.engine.decorator;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
public class IrisSeaSurfaceDecorator extends IrisEngineDecorator { public class IrisSeaSurfaceDecorator extends IrisEngineDecorator {

View File

@@ -18,12 +18,12 @@
package com.volmit.iris.engine.decorator; package com.volmit.iris.engine.decorator;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
public class IrisShoreLineDecorator extends IrisEngineDecorator { public class IrisShoreLineDecorator extends IrisEngineDecorator {

View File

@@ -19,13 +19,13 @@
package com.volmit.iris.engine.decorator; package com.volmit.iris.engine.decorator;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.DecorationPart; import com.volmit.iris.engine.object.DecorationPart;
import com.volmit.iris.engine.object.InferredType; import com.volmit.iris.engine.object.InferredType;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDecorator; import com.volmit.iris.engine.object.IrisDecorator;
import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.hunk.Hunk;
import org.bukkit.block.data.Bisected; import org.bukkit.block.data.Bisected;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;

View File

@@ -20,13 +20,13 @@ package com.volmit.iris.engine.framework;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.gui.Renderer;
import com.volmit.iris.core.gui.RenderType; import com.volmit.iris.core.gui.RenderType;
import com.volmit.iris.engine.data.B; import com.volmit.iris.core.gui.Renderer;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.data.DataProvider; import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.parallax.ParallaxAccess; import com.volmit.iris.engine.parallax.ParallaxAccess;
import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.engine.parallel.MultiBurst;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
@@ -231,7 +231,8 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro
try { try {
InventoryHolder m = (InventoryHolder) block.getState(); InventoryHolder m = (InventoryHolder) block.getState();
addItems(false, m.getInventory(), rx, tables, slot, x, y, z, 15); addItems(false, m.getInventory(), rx, tables, slot, x, y, z, 15);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
} }
@@ -269,7 +270,8 @@ public interface Engine extends DataProvider, Fallible, GeneratorAccess, LootPro
try { try {
Arrays.parallelSort(nitems, (a, b) -> rng.nextInt()); Arrays.parallelSort(nitems, (a, b) -> rng.nextInt());
break; break;
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
} }

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.engine.framework; package com.volmit.iris.engine.framework;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.object.IrisDimension; import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.parallax.ParallaxAccess; import com.volmit.iris.engine.parallax.ParallaxAccess;
import com.volmit.iris.util.math.RollingSequence; import com.volmit.iris.util.math.RollingSequence;
@@ -38,7 +38,8 @@ public interface EngineComponent {
if (this instanceof Listener) { if (this instanceof Listener) {
Iris.instance.unregisterListener((Listener) this); Iris.instance.unregisterListener((Listener) this);
} }
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
} }

View File

@@ -19,20 +19,20 @@
package com.volmit.iris.engine.framework; package com.volmit.iris.engine.framework;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.engine.IrisEngineCompound;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.nms.BiomeBaseInjector; import com.volmit.iris.core.nms.BiomeBaseInjector;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.engine.IrisEngineCompound;
import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.data.B; import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.data.DirectWorldWriter;
import com.volmit.iris.engine.data.chunk.TerrainChunk; import com.volmit.iris.engine.data.chunk.TerrainChunk;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDimension; import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.object.IrisPosition; import com.volmit.iris.engine.object.IrisPosition;
import com.volmit.iris.engine.data.DirectWorldWriter;
import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.parallel.BurstExecutor; import com.volmit.iris.engine.parallel.BurstExecutor;
import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.engine.parallel.MultiBurst;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
@@ -120,7 +120,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
new MortarSender(i, Iris.instance.getTag()).sendMessage("Dimension Hotloaded"); new MortarSender(i, Iris.instance.getTag()).sendMessage("Dimension Hotloaded");
i.playSound(i.getLocation(), Sound.BLOCK_COPPER_PLACE, 1f, 1.25f); i.playSound(i.getLocation(), Sound.BLOCK_COPPER_PLACE, 1f, 1.25f);
} }
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
}); });
@@ -142,7 +143,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
J.a(() -> hotloader.check()); J.a(() -> hotloader.check());
getComposite().clean(); getComposite().clean();
} }
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
@@ -163,7 +165,6 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
File iris = new File(world.getWorldFolder(), "iris"); File iris = new File(world.getWorldFolder(), "iris");
if (iris.exists() && iris.isDirectory()) { if (iris.exists() && iris.isDirectory()) {
searching:
for (File i : iris.listFiles()) { for (File i : iris.listFiles()) {
// Look for v1 location // Look for v1 location
if (i.isDirectory() && i.getName().equals("dimensions")) { if (i.isDirectory() && i.getName().equals("dimensions")) {
@@ -318,7 +319,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
populators.addAll(compound.get().getPopulators()); populators.addAll(compound.get().getPopulators());
hotloader = new ReactiveFolder(data.getDataFolder(), (a, c, d) -> hotload()); hotloader = new ReactiveFolder(data.getDataFolder(), (a, c, d) -> hotload());
dim.installDataPack(() -> data, Iris.instance.getDatapacksFolder()); dim.installDataPack(() -> data, Iris.instance.getDatapacksFolder());
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
Iris.error("FAILED TO INITIALIZE DIMENSION FROM " + world.toString()); Iris.error("FAILED TO INITIALIZE DIMENSION FROM " + world.toString());
} }
@@ -326,7 +328,6 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
/** /**
* Place strongholds in the world * Place strongholds in the world
*
*/ */
public void placeStrongholds(World world) { public void placeStrongholds(World world) {
EngineData metadata = getComposite().getEngineMetadata(); EngineData metadata = getComposite().getEngineMetadata();
@@ -362,7 +363,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
try { try {
Object o = getBP(clazz, clazzSG, clazzBP, nmsWorld, blockPosToTest, chunkGenerator); Object o = getBP(clazz, clazzSG, clazzBP, nmsWorld, blockPosToTest, chunkGenerator);
future.complete(o); future.complete(o);
} catch (Exception e) {Iris.reportError(e); } catch (Exception e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
future.complete(e); future.complete(e);
} }
@@ -383,7 +385,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
strongholds.add(ipos); strongholds.add(ipos);
} }
} catch (Exception e) {Iris.reportError(e); } catch (Exception e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -398,7 +401,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
getComposite().saveEngineMetadata(); getComposite().saveEngineMetadata();
}); });
} catch (Exception e) {Iris.reportError(e); } catch (Exception e) {
Iris.reportError(e);
strongholds.add(new IrisPosition(1337, 32, -1337)); strongholds.add(new IrisPosition(1337, 32, -1337));
metadata.setStrongholdPositions(strongholds); metadata.setStrongholdPositions(strongholds);
Iris.warn("Couldn't properly find the stronghold position for this world. Is this headless mode? Are you not using 1.16 or higher?"); Iris.warn("Couldn't properly find the stronghold position for this world. Is this headless mode? Are you not using 1.16 or higher?");
@@ -917,7 +921,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
public boolean isClosed() { public boolean isClosed() {
try { try {
return getComposite().getEngine(0).isClosed(); return getComposite().getEngine(0).isClosed();
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
return false; return false;
} }
} }
@@ -926,7 +931,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
public EngineTarget getTarget() { public EngineTarget getTarget() {
try { try {
return getComposite().getEngine(0).getTarget(); return getComposite().getEngine(0).getTarget();
} catch (NullPointerException e) {Iris.reportError(e); } catch (NullPointerException e) {
Iris.reportError(e);
Iris.info("Failed to get composite engine. Please re-create the world in case you notice issues"); Iris.info("Failed to get composite engine. Please re-create the world in case you notice issues");
return null; return null;
} }
@@ -965,7 +971,8 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
try { try {
dim.getDimensionalComposite().forEach((m) -> IrisDataManager.loadAnyDimension(m.getDimension()).getAllAnyBiomes().forEach((i) -> v.put(i.getLoadKey(), i))); dim.getDimensionalComposite().forEach((m) -> IrisDataManager.loadAnyDimension(m.getDimension()).getAllAnyBiomes().forEach((i) -> v.put(i.getLoadKey(), i)));
} catch (Throwable ignored) {Iris.reportError(ignored); } catch (Throwable ignored) {
Iris.reportError(ignored);
} }

View File

@@ -19,13 +19,13 @@
package com.volmit.iris.engine.framework; package com.volmit.iris.engine.framework;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.actuator.IrisTerrainActuator;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.actuator.IrisTerrainActuator;
import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDimension; import com.volmit.iris.engine.object.IrisDimension;
import com.volmit.iris.engine.object.IrisPosition; import com.volmit.iris.engine.object.IrisPosition;
import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.engine.parallel.MultiBurst;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KMap;

View File

@@ -48,7 +48,8 @@ public class EngineData {
try { try {
f.getParentFile().mkdirs(); f.getParentFile().mkdirs();
return new Gson().fromJson(IO.readAll(f), EngineData.class); return new Gson().fromJson(IO.readAll(f), EngineData.class);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }

View File

@@ -18,9 +18,9 @@
package com.volmit.iris.engine.framework; package com.volmit.iris.engine.framework;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.data.B; import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.IrisBiome;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
public interface EngineDecorator extends EngineComponent { public interface EngineDecorator extends EngineComponent {

View File

@@ -18,8 +18,8 @@
package com.volmit.iris.engine.framework; package com.volmit.iris.engine.framework;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.data.DataProvider; import com.volmit.iris.engine.data.DataProvider;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;

View File

@@ -19,16 +19,16 @@
package com.volmit.iris.engine.framework; package com.volmit.iris.engine.framework;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.data.B; import com.volmit.iris.engine.IrisComplex;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.object.tile.TileData;
import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.cache.Cache;
import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.data.DataProvider; import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.jigsaw.PlannedStructure; import com.volmit.iris.engine.jigsaw.PlannedStructure;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.object.tile.TileData;
import com.volmit.iris.engine.parallax.ParallaxAccess; import com.volmit.iris.engine.parallax.ParallaxAccess;
import com.volmit.iris.engine.parallax.ParallaxChunkMeta; import com.volmit.iris.engine.parallax.ParallaxChunkMeta;
import com.volmit.iris.engine.parallel.BurstExecutor; import com.volmit.iris.engine.parallel.BurstExecutor;
@@ -184,7 +184,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
}); });
getEngine().getMetrics().getParallaxInsert().put(p.getMilliseconds()); getEngine().getMetrics().getParallaxInsert().put(p.getMilliseconds());
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
Iris.error("Failed to insert parallax at chunk " + (x >> 4) + " " + (z >> 4)); Iris.error("Failed to insert parallax at chunk " + (x >> 4) + " " + (z >> 4));
e.printStackTrace(); e.printStackTrace();
} }
@@ -214,7 +215,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
} }
} }
} }
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
Iris.warn("Failed to read positional features in chunk " + (i + cx) + " " + (j + cz) + "(" + e.getClass().getSimpleName() + ")"); Iris.warn("Failed to read positional features in chunk " + (i + cx) + " " + (j + cz) + "(" + e.getClass().getSimpleName() + ")");
} }
@@ -252,8 +254,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
burst.complete(); burst.complete();
if(getEngine().getDimension().isPlaceObjects()) if (getEngine().getDimension().isPlaceObjects()) {
{
burst = MultiBurst.burst.burst(bs); burst = MultiBurst.burst.burst(bs);
for (i = -s; i <= s; i++) { for (i = -s; i <= s; i++) {
@@ -287,7 +288,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
getParallaxAccess().setChunkGenerated(x, z); getParallaxAccess().setChunkGenerated(x, z);
p.end(); p.end();
getEngine().getMetrics().getParallax().put(p.getMilliseconds()); getEngine().getMetrics().getParallax().put(p.getMilliseconds());
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
Iris.error("Failed to generate parallax in " + x + " " + z); Iris.error("Failed to generate parallax in " + x + " " + z);
e.printStackTrace(); e.printStackTrace();
} }
@@ -299,8 +301,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
return after; return after;
} }
if(getEngine().getDimension().isPlaceObjects()) if (getEngine().getDimension().isPlaceObjects()) {
{
int xx = x << 4; int xx = x << 4;
int zz = z << 4; int zz = z << 4;
RNG rng = new RNG(Cache.key(x, z)).nextParallelRNG(getEngine().getTarget().getWorld().getSeed()); RNG rng = new RNG(Cache.key(x, z)).nextParallelRNG(getEngine().getTarget().getWorld().getSeed());
@@ -376,8 +377,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
default KList<Runnable> generateParallaxJigsaw(RNG rng, int x, int z, IrisBiome biome, IrisRegion region) { default KList<Runnable> generateParallaxJigsaw(RNG rng, int x, int z, IrisBiome biome, IrisRegion region) {
KList<Runnable> placeAfter = new KList<>(); KList<Runnable> placeAfter = new KList<>();
if(getEngine().getDimension().isPlaceObjects()) if (getEngine().getDimension().isPlaceObjects()) {
{
boolean placed = false; boolean placed = false;
if (getEngine().getDimension().getStronghold() != null) { if (getEngine().getDimension().getStronghold() != null) {
@@ -441,7 +441,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
if (rng.chance(i.getChance() + rng.d(-0.005, 0.005)) && rng.chance(getComplex().getObjectChanceStream().get(x << 4, z << 4))) { if (rng.chance(i.getChance() + rng.d(-0.005, 0.005)) && rng.chance(getComplex().getObjectChanceStream().get(x << 4, z << 4))) {
try { try {
place(rng, x << 4, z << 4, i); place(rng, x << 4, z << 4, i);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
Iris.error("Failed to place objects in the following biome: " + biome.getName()); Iris.error("Failed to place objects in the following biome: " + biome.getName());
Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")."); Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ").");
Iris.error("Are these objects missing?"); Iris.error("Are these objects missing?");
@@ -458,7 +459,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
if (rng.chance(i.getChance() + rng.d(-0.005, 0.005)) && rng.chance(getComplex().getObjectChanceStream().get(x << 4, z << 4))) { if (rng.chance(i.getChance() + rng.d(-0.005, 0.005)) && rng.chance(getComplex().getObjectChanceStream().get(x << 4, z << 4))) {
try { try {
place(rng, x << 4, z << 4, i); place(rng, x << 4, z << 4, i);
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
Iris.error("Failed to place objects in the following biome: " + biome.getName()); Iris.error("Failed to place objects in the following biome: " + biome.getName());
Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ")."); Iris.error("Object(s) " + i.getPlace().toString(", ") + " (" + e.getClass().getSimpleName() + ").");
Iris.error("Are these objects missing?"); Iris.error("Are these objects missing?");
@@ -589,8 +591,7 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
int x = xg.get(); int x = xg.get();
int z = zg.get(); int z = zg.get();
if(getEngine().getDimension().isPlaceObjects()) if (getEngine().getDimension().isPlaceObjects()) {
{
KList<IrisRegion> r = getAllRegions(); KList<IrisRegion> r = getAllRegions();
KList<IrisBiome> b = getAllBiomes(); KList<IrisBiome> b = getAllBiomes();
@@ -629,7 +630,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
if (getEngine().getDimension().getStronghold() != null) { if (getEngine().getDimension().getStronghold() != null) {
try { try {
jig = Math.max(jig, getData().getJigsawStructureLoader().load(getEngine().getDimension().getStronghold()).getMaxDimension()); jig = Math.max(jig, getData().getJigsawStructureLoader().load(getEngine().getDimension().getStronghold()).getMaxDimension());
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
Iris.error("THIS IS THE ONE"); Iris.error("THIS IS THE ONE");
e.printStackTrace(); e.printStackTrace();
} }
@@ -648,7 +650,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
try { try {
return IrisObject.sampleSize(getData().getObjectLoader().findFile(i)); return IrisObject.sampleSize(getData().getObjectLoader().findFile(i));
} catch (IOException ex) {Iris.reportError(ex); } catch (IOException ex) {
Iris.reportError(ex);
ex.printStackTrace(); ex.printStackTrace();
} }
@@ -668,7 +671,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
synchronized (zg) { synchronized (zg) {
zg.getAndSet(Math.max(bv.getBlockZ(), zg.get())); zg.getAndSet(Math.max(bv.getBlockZ(), zg.get()));
} }
} catch (Throwable ed) {Iris.reportError(ed); } catch (Throwable ed) {
Iris.reportError(ed);
} }
}); });
@@ -686,7 +690,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
try { try {
return IrisObject.sampleSize(getData().getObjectLoader().findFile(j)); return IrisObject.sampleSize(getData().getObjectLoader().findFile(j));
} catch (IOException ioException) {Iris.reportError(ioException); } catch (IOException ioException) {
Iris.reportError(ioException);
ioException.printStackTrace(); ioException.printStackTrace();
} }
@@ -706,7 +711,8 @@ public interface EngineParallaxManager extends DataProvider, IObjectPlacer {
synchronized (zg) { synchronized (zg) {
zg.getAndSet((int) Math.max(Math.ceil(bv.getBlockZ() * ms), zg.get())); zg.getAndSet((int) Math.max(Math.ceil(bv.getBlockZ() * ms), zg.get()));
} }
} catch (Throwable ee) {Iris.reportError(ee); } catch (Throwable ee) {
Iris.reportError(ee);
} }
}); });

View File

@@ -22,8 +22,8 @@ import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisEffect; import com.volmit.iris.engine.object.IrisEffect;
import com.volmit.iris.engine.object.IrisRegion; import com.volmit.iris.engine.object.IrisRegion;
import com.volmit.iris.util.scheduling.J;
import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.M;
import com.volmit.iris.util.scheduling.J;
import lombok.Data; import lombok.Data;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -64,7 +64,8 @@ public class EnginePlayer {
for (IrisEffect j : biome.getEffects()) { for (IrisEffect j : biome.getEffects()) {
try { try {
j.apply(player, getEngine()); j.apply(player, getEngine());
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
} }
@@ -83,7 +84,8 @@ public class EnginePlayer {
lastSample = M.ms(); lastSample = M.ms();
sampleBiomeRegion(); sampleBiomeRegion();
} }
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
} }
} }

View File

@@ -20,10 +20,10 @@ package com.volmit.iris.engine.framework;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.core.gui.Renderer; import com.volmit.iris.core.gui.Renderer;
import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisObjectPlacement; import com.volmit.iris.engine.object.IrisObjectPlacement;
import com.volmit.iris.engine.object.IrisRegion; import com.volmit.iris.engine.object.IrisRegion;
import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.parallax.ParallaxAccess; import com.volmit.iris.engine.parallax.ParallaxAccess;
public interface GeneratorAccess extends DataProvider, Renderer { public interface GeneratorAccess extends DataProvider, Renderer {

View File

@@ -20,10 +20,10 @@ package com.volmit.iris.engine.framework;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.data.DirectWorldWriter;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisRegion; import com.volmit.iris.engine.object.IrisRegion;
import com.volmit.iris.engine.data.DirectWorldWriter;
import com.volmit.iris.engine.data.DataProvider;
import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.engine.parallel.MultiBurst;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.math.M; import com.volmit.iris.util.math.M;
@@ -139,7 +139,8 @@ public interface IrisAccess extends Hotloadable, DataProvider {
return; return;
} }
} }
} catch (Throwable e) {Iris.reportError(e); } catch (Throwable e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
}); });
@@ -199,7 +200,8 @@ public interface IrisAccess extends Hotloadable, DataProvider {
} }
tries.getAndIncrement(); tries.getAndIncrement();
} catch (Throwable xe) {Iris.reportError(xe); } catch (Throwable xe) {
Iris.reportError(xe);
xe.printStackTrace(); xe.printStackTrace();
return; return;
} }

View File

@@ -18,9 +18,9 @@
package com.volmit.iris.engine.framework; package com.volmit.iris.engine.framework;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.data.B; import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.data.chunk.TerrainChunk; import com.volmit.iris.engine.data.chunk.TerrainChunk;
import com.volmit.iris.engine.hunk.Hunk;
import lombok.Data; import lombok.Data;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;

View File

@@ -20,9 +20,9 @@ package com.volmit.iris.engine.hunk.io;
import com.volmit.iris.engine.data.IOAdapter; import com.volmit.iris.engine.data.IOAdapter;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.util.oldnbt.ByteArrayTag;
import com.volmit.iris.util.io.CustomOutputStream;
import com.volmit.iris.util.function.Function3; import com.volmit.iris.util.function.Function3;
import com.volmit.iris.util.io.CustomOutputStream;
import com.volmit.iris.util.oldnbt.ByteArrayTag;
import java.io.*; import java.io.*;
import java.util.zip.GZIPInputStream; import java.util.zip.GZIPInputStream;

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.engine.hunk.io; package com.volmit.iris.engine.hunk.io;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.tile.TileData;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.tile.TileData;
import com.volmit.iris.engine.parallel.BurstExecutor; import com.volmit.iris.engine.parallel.BurstExecutor;
import com.volmit.iris.engine.parallel.GridLock; import com.volmit.iris.engine.parallel.GridLock;
import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.engine.parallel.MultiBurst;
@@ -109,7 +109,8 @@ public class HunkRegionSlice<T> {
try { try {
lock.withNasty(i.getX(), i.getZ(), () -> save.remove(i)); lock.withNasty(i.getX(), i.getZ(), () -> save.remove(i));
} catch (Throwable eer) {Iris.reportError(eer); } catch (Throwable eer) {
Iris.reportError(eer);
} }
} }
@@ -137,7 +138,8 @@ public class HunkRegionSlice<T> {
try { try {
return adapter.read(factory, (ByteArrayTag) t); return adapter.read(factory, (ByteArrayTag) t);
} catch (IOException xe) {Iris.reportError(xe); } catch (IOException xe) {
Iris.reportError(xe);
e.set(xe); e.set(xe);
} }
@@ -175,7 +177,8 @@ public class HunkRegionSlice<T> {
public void save(Hunk<T> region, int x, int z) { public void save(Hunk<T> region, int x, int z) {
try { try {
lock.withIO(x, z, () -> write(region, x, z)); lock.withIO(x, z, () -> write(region, x, z));
} catch (IOException e) {Iris.reportError(e); } catch (IOException e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }
@@ -218,7 +221,8 @@ public class HunkRegionSlice<T> {
if (contains(x, z)) { if (contains(x, z)) {
try { try {
v = read(x, z); v = read(x, z);
} catch (IOException e) {Iris.reportError(e); } catch (IOException e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
} }

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.engine.hunk.storage; package com.volmit.iris.engine.hunk.storage;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.util.function.Consumer4;
import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.function.Consumer4;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;

View File

@@ -19,8 +19,8 @@
package com.volmit.iris.engine.hunk.view; package com.volmit.iris.engine.hunk.view;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.data.chunk.LinkedTerrainChunk; import com.volmit.iris.engine.data.chunk.LinkedTerrainChunk;
import com.volmit.iris.engine.hunk.Hunk;
import lombok.Getter; import lombok.Getter;
import org.bukkit.block.Biome; import org.bukkit.block.Biome;
import org.bukkit.generator.ChunkGenerator.BiomeGrid; import org.bukkit.generator.ChunkGenerator.BiomeGrid;

View File

@@ -19,12 +19,12 @@
package com.volmit.iris.engine.jigsaw; package com.volmit.iris.engine.jigsaw;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.object.tile.TileData;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.object.tile.TileData;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.math.AxisAlignedBB; import com.volmit.iris.util.math.AxisAlignedBB;
import com.volmit.iris.util.math.BlockPosition; import com.volmit.iris.util.math.BlockPosition;

View File

@@ -20,12 +20,12 @@ package com.volmit.iris.engine.jigsaw;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.core.IrisDataManager; import com.volmit.iris.core.IrisDataManager;
import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.framework.EngineParallaxManager; import com.volmit.iris.engine.framework.EngineParallaxManager;
import com.volmit.iris.engine.framework.IrisAccess; import com.volmit.iris.engine.framework.IrisAccess;
import com.volmit.iris.engine.parallax.ParallaxChunkMeta; import com.volmit.iris.engine.object.*;
import com.volmit.iris.engine.object.common.IObjectPlacer; import com.volmit.iris.engine.object.common.IObjectPlacer;
import com.volmit.iris.engine.parallax.ParallaxChunkMeta;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KMap;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;

View File

@@ -166,7 +166,6 @@ public enum LightingCategory {
/** /**
* Initializes the lighting in the chunk for this category * Initializes the lighting in the chunk for this category
*
*/ */
public abstract void initialize(LightingChunk chunk); public abstract void initialize(LightingChunk chunk);
@@ -180,7 +179,6 @@ public enum LightingCategory {
/** /**
* Sets whether this category of light is dirty, indicating this category of light is all good, * Sets whether this category of light is dirty, indicating this category of light is all good,
* or that more work is needed spreading light around. * or that more work is needed spreading light around.
*
*/ */
public abstract void setDirty(LightingChunk chunk, boolean dirty); public abstract void setDirty(LightingChunk chunk, boolean dirty);
@@ -195,7 +193,6 @@ public enum LightingCategory {
/** /**
* Sets the light level in a section at the coordinates specified. * Sets the light level in a section at the coordinates specified.
* No bounds checking is performed. * No bounds checking is performed.
*
*/ */
public abstract void set(LightingCube section, int x, int y, int z, int level); public abstract void set(LightingCube section, int x, int y, int z, int level);
} }

View File

@@ -462,7 +462,8 @@ public class LightingChunk {
return Boolean.TRUE; return Boolean.TRUE;
} }
} }
} catch (Throwable t) {Iris.reportError(t); } catch (Throwable t) {
Iris.reportError(t);
t.printStackTrace(); t.printStackTrace();
} }

View File

@@ -66,7 +66,7 @@ public class LightingChunkNeighboring {
/** /**
* Gets a relative neighboring chunk, and then a vertical cube in that chunk, if possible. * Gets a relative neighboring chunk, and then a vertical cube in that chunk, if possible.
* *
* @param cy Cube absolute y-coordinate * @param cy Cube absolute y-coordinate
* @return cube, null if the chunk or cube is not available * @return cube, null if the chunk or cube is not available
*/ */
public LightingCube getCube(int deltaChunkX, int deltaChunkZ, int cy) { public LightingCube getCube(int deltaChunkX, int deltaChunkZ, int cy) {
@@ -77,7 +77,7 @@ public class LightingChunkNeighboring {
/** /**
* Sets the neighbor representing the given relative chunk * Sets the neighbor representing the given relative chunk
* *
* @param neighbor to set to * @param neighbor to set to
*/ */
public void set(int deltaChunkX, int deltaChunkZ, LightingChunk neighbor) { public void set(int deltaChunkX, int deltaChunkZ, LightingChunk neighbor) {
values[getIndexByChunk(deltaChunkX, deltaChunkZ)] = neighbor; values[getIndexByChunk(deltaChunkX, deltaChunkZ)] = neighbor;

View File

@@ -136,9 +136,9 @@ public class LightingCube {
* higher light value if all these tests pass. * higher light value if all these tests pass.
* The x/y/z coordinates are allowed to check neighboring cubes. * The x/y/z coordinates are allowed to check neighboring cubes.
* *
* @param x The X-coordinate of the block (-1 to 16) * @param x The X-coordinate of the block (-1 to 16)
* @param y The Y-coordinate of the block (-1 to 16) * @param y The Y-coordinate of the block (-1 to 16)
* @param z The Z-coordinate of the block (-1 to 16) * @param z The Z-coordinate of the block (-1 to 16)
* @return higher light level if propagated, otherwise the old light value * @return higher light level if propagated, otherwise the old light value
*/ */
public int getLightIfHigherNeighbor(LightingCategory category, int old_light, int faceMask, int x, int y, int z) { public int getLightIfHigherNeighbor(LightingCategory category, int old_light, int faceMask, int x, int y, int z) {

View File

@@ -68,7 +68,7 @@ public class LightingCubeNeighboring {
/** /**
* Sets the neighbor representing the given relative cube * Sets the neighbor representing the given relative cube
* *
* @param neighbor to set to, is allowed to be null to set to 'none' * @param neighbor to set to, is allowed to be null to set to 'none'
*/ */
public void set(int deltaCubeX, int deltaCubeY, int deltaCubeZ, LightingCube neighbor) { public void set(int deltaCubeX, int deltaCubeY, int deltaCubeZ, LightingCube neighbor) {
values[getIndexByCube(deltaCubeX, deltaCubeY, deltaCubeZ)] = neighbor; values[getIndexByCube(deltaCubeX, deltaCubeY, deltaCubeZ)] = neighbor;

View File

@@ -412,7 +412,8 @@ public class LightingService extends AsyncTask {
while (paused) { while (paused) {
try { try {
Thread.sleep(1000); Thread.sleep(1000);
} catch (InterruptedException e) {Iris.reportError(e); } catch (InterruptedException e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
} }
synchronized (tasks) { synchronized (tasks) {
@@ -468,7 +469,8 @@ public class LightingService extends AsyncTask {
// Process the task // Process the task
try { try {
currentTask.process(); currentTask.process();
} catch (Throwable t) {Iris.reportError(t); } catch (Throwable t) {
Iris.reportError(t);
t.printStackTrace(); t.printStackTrace();
Iris.error("Failed to process task: " + currentTask.getStatus()); Iris.error("Failed to process task: " + currentTask.getStatus());
} }

View File

@@ -105,10 +105,10 @@ public class LightingTaskBatch implements LightingTask {
return coords; return coords;
} else //noinspection ReplaceNullCheck } else //noinspection ReplaceNullCheck
if (this.chunks_coords != null) { if (this.chunks_coords != null) {
return this.chunks_coords; return this.chunks_coords;
} else { } else {
return new long[0]; return new long[0];
} }
} }
} }
@@ -240,7 +240,8 @@ public class LightingTaskBatch implements LightingTask {
return true; return true;
} catch (InterruptedException | TimeoutException e1) { } catch (InterruptedException | TimeoutException e1) {
Iris.reportError(e1); Iris.reportError(e1);
} catch (ExecutionException ex) {Iris.reportError(ex); } catch (ExecutionException ex) {
Iris.reportError(ex);
ex.printStackTrace(); ex.printStackTrace();
Iris.error("Error while processing"); Iris.error("Error while processing");
return false; return false;
@@ -441,15 +442,18 @@ public class LightingTaskBatch implements LightingTask {
try { try {
future.get(200, TimeUnit.MILLISECONDS); future.get(200, TimeUnit.MILLISECONDS);
break; break;
} catch (TimeoutException e) {Iris.reportError(e); } catch (TimeoutException e) {
Iris.reportError(e);
if (this.aborted) { if (this.aborted) {
return; return;
} }
} }
} }
} catch (InterruptedException e) {Iris.reportError(e); } catch (InterruptedException e) {
Iris.reportError(e);
// Ignore // Ignore
} catch (ExecutionException e) {Iris.reportError(e); } catch (ExecutionException e) {
Iris.reportError(e);
e.printStackTrace(); e.printStackTrace();
Iris.error("Failed to apply lighting data for " + getShortStatus()); Iris.error("Failed to apply lighting data for " + getShortStatus());

View File

@@ -99,9 +99,11 @@ public class LightingTaskWorld implements LightingTask {
// Wait until region list is loaded synchronously // Wait until region list is loaded synchronously
try { try {
regionsLoadedFuture.get(); regionsLoadedFuture.get();
} catch (InterruptedException ex) {Iris.reportError(ex); } catch (InterruptedException ex) {
Iris.reportError(ex);
// Ignore // Ignore
} catch (ExecutionException ex) {Iris.reportError(ex); } catch (ExecutionException ex) {
Iris.reportError(ex);
throw new RuntimeException("Failed to load regions", ex.getCause()); throw new RuntimeException("Failed to load regions", ex.getCause());
} }

View File

@@ -19,12 +19,12 @@
package com.volmit.iris.engine.modifier; package com.volmit.iris.engine.modifier;
import com.volmit.iris.engine.data.B; import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.noise.FastNoiseDouble;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisCaveLayer;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedModifier; import com.volmit.iris.engine.framework.EngineAssignedModifier;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.noise.FastNoiseDouble;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisCaveLayer;
import com.volmit.iris.engine.object.common.CaveResult; import com.volmit.iris.engine.object.common.CaveResult;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;

View File

@@ -18,16 +18,16 @@
package com.volmit.iris.engine.modifier; package com.volmit.iris.engine.modifier;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedModifier;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.IrisDepositGenerator; import com.volmit.iris.engine.object.IrisDepositGenerator;
import com.volmit.iris.engine.object.IrisObject; import com.volmit.iris.engine.object.IrisObject;
import com.volmit.iris.engine.object.IrisRegion; import com.volmit.iris.engine.object.IrisRegion;
import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedModifier;
import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.util.data.HeightMap; import com.volmit.iris.util.data.HeightMap;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import org.bukkit.util.BlockVector; import org.bukkit.util.BlockVector;

View File

@@ -19,16 +19,16 @@
package com.volmit.iris.engine.modifier; package com.volmit.iris.engine.modifier;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.object.IrisBiome; import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedModifier; import com.volmit.iris.engine.framework.EngineAssignedModifier;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.object.IrisBiome;
import com.volmit.iris.engine.object.common.CaveResult;
import com.volmit.iris.engine.parallel.BurstExecutor; import com.volmit.iris.engine.parallel.BurstExecutor;
import com.volmit.iris.engine.parallel.MultiBurst; import com.volmit.iris.engine.parallel.MultiBurst;
import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.object.common.CaveResult;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import com.volmit.iris.util.scheduling.PrecisionStopwatch;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.block.data.BlockData; import org.bukkit.block.data.BlockData;
import org.bukkit.block.data.Levelled; import org.bukkit.block.data.Levelled;

View File

@@ -19,11 +19,11 @@
package com.volmit.iris.engine.modifier; package com.volmit.iris.engine.modifier;
import com.volmit.iris.engine.data.B; import com.volmit.iris.engine.data.B;
import com.volmit.iris.engine.noise.CNG;
import com.volmit.iris.engine.object.NoiseStyle;
import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.engine.framework.Engine;
import com.volmit.iris.engine.framework.EngineAssignedModifier; import com.volmit.iris.engine.framework.EngineAssignedModifier;
import com.volmit.iris.engine.hunk.Hunk; import com.volmit.iris.engine.hunk.Hunk;
import com.volmit.iris.engine.noise.CNG;
import com.volmit.iris.engine.object.NoiseStyle;
import com.volmit.iris.util.math.BlockPosition; import com.volmit.iris.util.math.BlockPosition;
import com.volmit.iris.util.math.ChunkPosition; import com.volmit.iris.util.math.ChunkPosition;
import com.volmit.iris.util.math.MathHelper; import com.volmit.iris.util.math.MathHelper;

View File

@@ -19,6 +19,7 @@
package com.volmit.iris.engine.noise; package com.volmit.iris.engine.noise;
import com.volmit.iris.Iris; import com.volmit.iris.Iris;
import com.volmit.iris.engine.interpolation.IrisInterpolation;
import com.volmit.iris.engine.object.common.IRare; import com.volmit.iris.engine.object.common.IRare;
import com.volmit.iris.engine.stream.ProceduralStream; import com.volmit.iris.engine.stream.ProceduralStream;
import com.volmit.iris.engine.stream.arithmetic.FittedStream; import com.volmit.iris.engine.stream.arithmetic.FittedStream;
@@ -26,7 +27,6 @@ import com.volmit.iris.engine.stream.sources.CNGStream;
import com.volmit.iris.util.collection.KList; import com.volmit.iris.util.collection.KList;
import com.volmit.iris.util.function.NoiseInjector; import com.volmit.iris.util.function.NoiseInjector;
import com.volmit.iris.util.math.RNG; import com.volmit.iris.util.math.RNG;
import com.volmit.iris.engine.interpolation.IrisInterpolation;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;

Some files were not shown because too many files have changed in this diff Show More