diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 000000000..d5e375a0e --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,13 @@ +# +#Thu Sep 13 12:26:41 EDT 2018 +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.source=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error diff --git a/CustomNPC.iml b/CustomNPC.iml new file mode 100644 index 000000000..797656b98 --- /dev/null +++ b/CustomNPC.iml @@ -0,0 +1,699 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MCP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 000000000..b3ab280d8 --- /dev/null +++ b/build.gradle @@ -0,0 +1,63 @@ +buildscript { + repositories { + mavenCentral() + maven { + name = "forge" + url = "http://files.minecraftforge.net/maven" + } + maven { + name = "sonatype" + url = "https://oss.sonatype.org/content/repositories/snapshots/" + } + } + dependencies { + classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT' + } +} + +apply plugin: 'forge' + +version = "1.0" +group= "com.yourname.modid" // http://maven.apache.org/guides/mini/guide-naming-conventions.html +archivesBaseName = "modid" + +minecraft { + version = "1.7.10-10.13.4.1614-1.7.10" + runDir = "eclipse" +} + +dependencies { + // you may put jars on which you depend on in ./libs + // or you may define them like so.. + //compile "some.group:artifact:version:classifier" + //compile "some.group:artifact:version" + + // real examples + //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env + //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env + + // for more info... + // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html + // http://www.gradle.org/docs/current/userguide/dependency_management.html + +} + +processResources +{ + // this will ensure that this task is redone when the versions change. + inputs.property "version", project.version + inputs.property "mcversion", project.minecraft.version + + // replace stuff in mcmod.info, nothing else + from(sourceSets.main.resources.srcDirs) { + include 'mcmod.info' + + // replace version and mcversion + expand 'version':project.version, 'mcversion':project.minecraft.version + } + + // copy everything else, thats not the mcmod.info + from(sourceSets.main.resources.srcDirs) { + exclude 'mcmod.info' + } +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 000000000..b76121670 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 000000000..830c5ccee --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-3.0-bin.zip diff --git a/gradlew b/gradlew new file mode 100644 index 000000000..91a7e269e --- /dev/null +++ b/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 000000000..8a0b282aa --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/src/main/java/noppes/npcs/CommonProxy.java b/src/main/java/noppes/npcs/CommonProxy.java index 423963949..836d85f6e 100644 --- a/src/main/java/noppes/npcs/CommonProxy.java +++ b/src/main/java/noppes/npcs/CommonProxy.java @@ -32,9 +32,9 @@ import noppes.npcs.entity.EntityNPCInterface; import cpw.mods.fml.common.network.IGuiHandler; public class CommonProxy implements IGuiHandler { - + public boolean newVersionAvailable = false; - public int revision = 4; + public int revision = 1; public void load() { CustomNpcs.Channel.register(new PacketHandlerServer()); diff --git a/src/main/java/noppes/npcs/CustomItems.java b/src/main/java/noppes/npcs/CustomItems.java index ec44b0ab9..ffbd8da27 100644 --- a/src/main/java/noppes/npcs/CustomItems.java +++ b/src/main/java/noppes/npcs/CustomItems.java @@ -749,7 +749,7 @@ public class CustomItems { armor = new ItemNpcArmor(26922, armorEmerald,1,"fullemerald").setUnlocalizedName("npcFullEmeraldChest").setMaxStackSize(1).setTextureName("customnpcs:npcFullEmeraldChest"); armor = new ItemNpcArmor(26923, armorEmerald,2,"fullemerald").setUnlocalizedName("npcFullEmeraldLeggings").setMaxStackSize(1).setTextureName("customnpcs:npcFullEmeraldLeggings"); armor = new ItemNpcArmor(26924, armorEmerald,3,"fullemerald").setUnlocalizedName("npcFullEmeraldBoots").setMaxStackSize(1).setTextureName("customnpcs:npcFullEmeraldBoots"); - + armor = new ItemNpcArmor(26880,ArmorMaterial.CLOTH,0,"fullwood").setUnlocalizedName("npcFullWoodenHead").setMaxStackSize(1).setTextureName("customnpcs:npcFullWoodenHead"); armor = new ItemNpcArmor(26881,ArmorMaterial.CLOTH,1,"fullwood").setUnlocalizedName("npcFullWoodenChest").setMaxStackSize(1).setTextureName("customnpcs:npcFullWoodenChest"); armor = new ItemNpcArmor(26882,ArmorMaterial.CLOTH,2,"fullwood").setUnlocalizedName("npcFullWoodenLeggings").setMaxStackSize(1).setTextureName("customnpcs:npcFullWoodenLeggings"); diff --git a/src/main/java/noppes/npcs/CustomNpcs.java b/src/main/java/noppes/npcs/CustomNpcs.java index e17cdc72c..84382b862 100644 --- a/src/main/java/noppes/npcs/CustomNpcs.java +++ b/src/main/java/noppes/npcs/CustomNpcs.java @@ -43,15 +43,7 @@ import noppes.npcs.controllers.ServerCloneController; import noppes.npcs.controllers.SpawnController; import noppes.npcs.controllers.TransportController; import noppes.npcs.enchants.EnchantInterface; -import noppes.npcs.entity.EntityChairMount; -import noppes.npcs.entity.EntityCustomNpc; -import noppes.npcs.entity.EntityMagicProjectile; -import noppes.npcs.entity.EntityNPCGolem; -import noppes.npcs.entity.EntityNpcCrystal; -import noppes.npcs.entity.EntityNpcDragon; -import noppes.npcs.entity.EntityNpcPony; -import noppes.npcs.entity.EntityNpcSlime; -import noppes.npcs.entity.EntityProjectile; +import noppes.npcs.entity.*; import noppes.npcs.entity.old.EntityNPCDwarfFemale; import noppes.npcs.entity.old.EntityNPCDwarfMale; import noppes.npcs.entity.old.EntityNPCElfFemale; @@ -210,6 +202,8 @@ public class CustomNpcs { registerNpc(EntityNPCEnderman.class, "npcEnderman"); registerNpc(EntityNPCGolem.class, "npcGolem"); registerNpc(EntityCustomNpc.class, "CustomNpc"); + registerNpc(EntityNPC64x64.class, "CustomNpc64"); + registerNewEntity(EntityChairMount.class, "CustomNpcChairMount", 64, 10, false); registerNewEntity(EntityProjectile.class, "throwableitem", 64, 3, true); diff --git a/src/main/java/noppes/npcs/DataDisplay.java b/src/main/java/noppes/npcs/DataDisplay.java index 15780845a..97a52f765 100644 --- a/src/main/java/noppes/npcs/DataDisplay.java +++ b/src/main/java/noppes/npcs/DataDisplay.java @@ -152,4 +152,18 @@ public class DataDisplay { return false; return showName == 0 || (showName == 2 && npc.isAttacking()); } + + public String getSkinTexture(){ + return texture; + } + + public void setSkinTexture(String texture){ + if(this.texture.equals(texture)) + return; + this.texture = texture; + npc.textureLocation = null; + skinType = 0; + npc.updateClient = true; + } + } diff --git a/src/main/java/noppes/npcs/DataScript.java b/src/main/java/noppes/npcs/DataScript.java index d36b0be7c..7699db313 100644 --- a/src/main/java/noppes/npcs/DataScript.java +++ b/src/main/java/noppes/npcs/DataScript.java @@ -14,6 +14,7 @@ import noppes.npcs.constants.EnumScriptType; import noppes.npcs.controllers.ScriptContainer; import noppes.npcs.controllers.ScriptController; import noppes.npcs.entity.EntityCustomNpc; +import noppes.npcs.entity.EntityNPC64x64; import noppes.npcs.entity.EntityNPCInterface; import noppes.npcs.scripted.ScriptEvent; import noppes.npcs.scripted.ScriptNpc; diff --git a/src/main/java/noppes/npcs/client/ClientProxy.java b/src/main/java/noppes/npcs/client/ClientProxy.java index ed09acadb..e6454a6a2 100644 --- a/src/main/java/noppes/npcs/client/ClientProxy.java +++ b/src/main/java/noppes/npcs/client/ClientProxy.java @@ -105,19 +105,8 @@ import noppes.npcs.client.gui.roles.GuiNpcFollowerSetup; import noppes.npcs.client.gui.roles.GuiNpcItemGiver; import noppes.npcs.client.gui.roles.GuiNpcTraderSetup; import noppes.npcs.client.gui.roles.GuiNpcTransporter; -import noppes.npcs.client.model.ModelNPCGolem; -import noppes.npcs.client.model.ModelNpcCrystal; -import noppes.npcs.client.model.ModelNpcDragon; -import noppes.npcs.client.model.ModelNpcSlime; -import noppes.npcs.client.model.ModelSkirtArmor; -import noppes.npcs.client.renderer.NpcItemRenderer; -import noppes.npcs.client.renderer.RenderCustomNpc; -import noppes.npcs.client.renderer.RenderNPCHumanMale; -import noppes.npcs.client.renderer.RenderNPCPony; -import noppes.npcs.client.renderer.RenderNpcCrystal; -import noppes.npcs.client.renderer.RenderNpcDragon; -import noppes.npcs.client.renderer.RenderNpcSlime; -import noppes.npcs.client.renderer.RenderProjectile; +import noppes.npcs.client.model.*; +import noppes.npcs.client.renderer.*; import noppes.npcs.client.renderer.blocks.BlockBannerRenderer; import noppes.npcs.client.renderer.blocks.BlockBarrelRenderer; import noppes.npcs.client.renderer.blocks.BlockBeamRenderer; @@ -161,14 +150,7 @@ import noppes.npcs.containers.ContainerNPCTraderSetup; import noppes.npcs.containers.ContainerNpcItemGiver; import noppes.npcs.containers.ContainerNpcQuestReward; import noppes.npcs.containers.ContainerNpcQuestTypeItem; -import noppes.npcs.entity.EntityCustomNpc; -import noppes.npcs.entity.EntityNPCGolem; -import noppes.npcs.entity.EntityNPCInterface; -import noppes.npcs.entity.EntityNpcCrystal; -import noppes.npcs.entity.EntityNpcDragon; -import noppes.npcs.entity.EntityNpcPony; -import noppes.npcs.entity.EntityNpcSlime; -import noppes.npcs.entity.EntityProjectile; +import noppes.npcs.entity.*; import org.lwjgl.input.Keyboard; @@ -199,6 +181,7 @@ public class ClientProxy extends CommonProxy { RenderingRegistry.registerEntityRenderingHandler(EntityNpcSlime.class, new RenderNpcSlime(new ModelNpcSlime(16), new ModelNpcSlime(0), 0.25F)); RenderingRegistry.registerEntityRenderingHandler(EntityProjectile.class, new RenderProjectile()); RenderingRegistry.registerEntityRenderingHandler(EntityCustomNpc.class, new RenderCustomNpc()); + RenderingRegistry.registerEntityRenderingHandler(EntityNPC64x64.class, new RenderCustomNpc(1)); RenderingRegistry.registerEntityRenderingHandler(EntityNPCGolem.class, new RenderNPCHumanMale( new ModelNPCGolem(0), new ModelNPCGolem(1F), new ModelNPCGolem(0.5F))); FMLCommonHandler.instance().bus().register(new ClientTickHandler()); diff --git a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawner.java b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawner.java index 85817887b..e4e2dbfe1 100644 --- a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawner.java +++ b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawner.java @@ -39,7 +39,7 @@ public class GuiNpcMobSpawner extends GuiNPCInterface implements IGuiData{ public GuiNpcMobSpawner(int i, int j, int k) { super(); - xSize = 256; + xSize = 384; posX = i; posY = j; @@ -56,7 +56,7 @@ public class GuiNpcMobSpawner extends GuiNPCInterface implements IGuiData{ if(scroll == null){ scroll = new GuiCustomScroll(this,0); - scroll.setSize(165, 188); + scroll.setSize(293, 188); } else scroll.clear(); @@ -64,7 +64,7 @@ public class GuiNpcMobSpawner extends GuiNPCInterface implements IGuiData{ scroll.guiTop = guiTop + 26; addScroll(scroll); - addTextField(new GuiNpcTextField(1, this, fontRendererObj, guiLeft + 4, guiTop + 4, 165, 20, search)); + addTextField(new GuiNpcTextField(1, this, fontRendererObj, guiLeft + 4, guiTop + 4, 293, 20, search)); GuiMenuTopButton button; addTopButton(button = new GuiMenuTopButton(3,guiLeft + 4, guiTop - 17, "spawner.clones")); @@ -74,28 +74,38 @@ public class GuiNpcMobSpawner extends GuiNPCInterface implements IGuiData{ addTopButton(button = new GuiMenuTopButton(5, button, "gui.server")); button.active = showingClones == 2; - addButton(new GuiNpcButton(1, guiLeft + 170, guiTop + 6, 82, 20, "item.monsterPlacer.name")); + addButton(new GuiNpcButton(1, guiLeft + 298, guiTop + 6, 82, 20, "item.monsterPlacer.name")); - addButton(new GuiNpcButton(2, guiLeft + 170, guiTop + 100, 82, 20, "spawner.mobspawner")); + addButton(new GuiNpcButton(2, guiLeft + 298, guiTop + 100, 82, 20, "spawner.mobspawner")); if(showingClones == 0 || showingClones == 2){ - addSideButton(new GuiMenuSideButton(21,guiLeft - 69, this.guiTop + 2, 70,22, "Tab 1")); - addSideButton(new GuiMenuSideButton(22,guiLeft - 69, this.guiTop + 23, 70,22, "Tab 2")); - addSideButton(new GuiMenuSideButton(23,guiLeft - 69, this.guiTop + 44, 70,22, "Tab 3")); - addSideButton(new GuiMenuSideButton(24,guiLeft - 69, this.guiTop + 65, 70,22, "Tab 4")); - addSideButton(new GuiMenuSideButton(25,guiLeft - 69, this.guiTop + 86, 70,22, "Tab 5")); - addSideButton(new GuiMenuSideButton(26,guiLeft - 69, this.guiTop + 107, 70,22, "Tab 6")); - addSideButton(new GuiMenuSideButton(27,guiLeft - 69, this.guiTop + 128, 70,22, "Tab 7")); - addSideButton(new GuiMenuSideButton(28,guiLeft - 69, this.guiTop + 149, 70,22, "Tab 8")); - addSideButton(new GuiMenuSideButton(29,guiLeft - 69, this.guiTop + 170, 70,22, "Tab 9")); - - addButton(new GuiNpcButton(6, guiLeft + 170, guiTop + 30, 82, 20, "gui.remove")); - + + addSideButton(new GuiMenuSideButton(21,guiLeft - 90, this.guiTop + 2, 90,22, "1")); + addSideButton(new GuiMenuSideButton(22,guiLeft - 90, this.guiTop + 23, 90,22, "2")); + addSideButton(new GuiMenuSideButton(23,guiLeft - 90, this.guiTop + 44, 90,22, "3")); + addSideButton(new GuiMenuSideButton(24,guiLeft - 90, this.guiTop + 65, 90,22, "4")); + addSideButton(new GuiMenuSideButton(25,guiLeft - 90, this.guiTop + 86, 90,22, "5")); + addSideButton(new GuiMenuSideButton(26,guiLeft - 90, this.guiTop + 107, 45,22, "6")); + addSideButton(new GuiMenuSideButton(27,guiLeft - 45, this.guiTop + 107, 45,22, "7")); + addSideButton(new GuiMenuSideButton(28,guiLeft - 90, this.guiTop + 128, 45,22, "8")); + addSideButton(new GuiMenuSideButton(29,guiLeft - 45, this.guiTop + 128, 45,22, "9")); + addSideButton(new GuiMenuSideButton(30,guiLeft - 90, this.guiTop + 149, 45,22, "10")); + addSideButton(new GuiMenuSideButton(31,guiLeft - 45, this.guiTop + 149, 45,22, "11")); + addSideButton(new GuiMenuSideButton(32,guiLeft - 90, this.guiTop + 170, 45,22, "12")); + addSideButton(new GuiMenuSideButton(33,guiLeft - 45, this.guiTop + 170, 45,22, "13")); + addSideButton(new GuiMenuSideButton(34,guiLeft - 90, this.guiTop + 191, 45,22, "14")); + addSideButton(new GuiMenuSideButton(35,guiLeft - 45, this.guiTop + 191, 45,22, "15")); + + + + addButton(new GuiNpcButton(6, guiLeft + 298, guiTop + 190, 82, 20, "gui.remove")); + getSideButton(20 + activeTab).active = true; showClones(); } - else + else{ showEntities(); + } } private void showEntities() { @@ -119,7 +129,6 @@ public class GuiNpcMobSpawner extends GuiNPCInterface implements IGuiData{ Client.sendData(EnumPacketServer.CloneList, activeTab); return; } - ArrayList list = new ArrayList(); this.list = ClientCloneController.Instance.getClones(activeTab); scroll.setList(getSearchList()); diff --git a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java index df6e7da50..9428ae26a 100644 --- a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java +++ b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerAdd.java @@ -44,7 +44,7 @@ public class GuiNpcMobSpawnerAdd extends GuiNPCInterface implements GuiYesNoCall addLabel(new GuiNpcLabel(1, "Tab", guiLeft + 10, guiTop + 50)); - addButton(new GuiNpcButton(2, guiLeft + 40, guiTop + 45, 20, 20, new String[]{"1","2","3","4","5","6","7","8","9"}, tab - 1)); + addButton(new GuiNpcButton(2, guiLeft + 40, guiTop + 45, 20, 20, new String[]{"1","2","3","4","5","6","7","8","9","10","11","12","13","14","15"}, tab - 1)); addButton(new GuiNpcButton(3, guiLeft + 4, guiTop + 95, new String[]{"Client side", "Server side"}, serverSide?1:0)); diff --git a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerMounter.java b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerMounter.java index 42882a792..b3cec0a09 100644 --- a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerMounter.java +++ b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerMounter.java @@ -82,15 +82,21 @@ public class GuiNpcMobSpawnerMounter extends GuiNPCInterface implements IGuiData addButton(new GuiNpcButton(2, guiLeft + 170, guiTop + 50, 82, 20, "spawner.mountplayer")); if(showingClones == 0 || showingClones == 2){ - addSideButton(new GuiMenuSideButton(21,guiLeft - 69, this.guiTop + 2, 70,22, "Tab 1")); - addSideButton(new GuiMenuSideButton(22,guiLeft - 69, this.guiTop + 23, 70,22, "Tab 2")); - addSideButton(new GuiMenuSideButton(23,guiLeft - 69, this.guiTop + 44, 70,22, "Tab 3")); - addSideButton(new GuiMenuSideButton(24,guiLeft - 69, this.guiTop + 65, 70,22, "Tab 4")); - addSideButton(new GuiMenuSideButton(25,guiLeft - 69, this.guiTop + 86, 70,22, "Tab 5")); - addSideButton(new GuiMenuSideButton(26,guiLeft - 69, this.guiTop + 107, 70,22, "Tab 6")); - addSideButton(new GuiMenuSideButton(27,guiLeft - 69, this.guiTop + 128, 70,22, "Tab 7")); - addSideButton(new GuiMenuSideButton(28,guiLeft - 69, this.guiTop + 149, 70,22, "Tab 8")); - addSideButton(new GuiMenuSideButton(29,guiLeft - 69, this.guiTop + 170, 70,22, "Tab 9")); + addSideButton(new GuiMenuSideButton(21,guiLeft - 90, this.guiTop + 2, 90,22, "1")); + addSideButton(new GuiMenuSideButton(22,guiLeft - 90, this.guiTop + 23, 90,22, "2")); + addSideButton(new GuiMenuSideButton(23,guiLeft - 90, this.guiTop + 44, 90,22, "3")); + addSideButton(new GuiMenuSideButton(24,guiLeft - 90, this.guiTop + 65, 90,22, "4")); + addSideButton(new GuiMenuSideButton(25,guiLeft - 90, this.guiTop + 86, 90,22, "5")); + addSideButton(new GuiMenuSideButton(26,guiLeft - 45, this.guiTop + 107, 45,22, "6")); + addSideButton(new GuiMenuSideButton(27,guiLeft - 90, this.guiTop + 107, 45,22, "7")); + addSideButton(new GuiMenuSideButton(28,guiLeft - 45, this.guiTop + 128, 45,22, "8")); + addSideButton(new GuiMenuSideButton(29,guiLeft - 90, this.guiTop + 128, 45,22, "9")); + addSideButton(new GuiMenuSideButton(30,guiLeft - 45, this.guiTop + 149, 45,22, "10")); + addSideButton(new GuiMenuSideButton(31,guiLeft - 90, this.guiTop + 149, 45,22, "11")); + addSideButton(new GuiMenuSideButton(32,guiLeft - 45, this.guiTop + 170, 45,22, "12")); + addSideButton(new GuiMenuSideButton(33,guiLeft - 90, this.guiTop + 170, 45,22, "13")); + addSideButton(new GuiMenuSideButton(34,guiLeft - 45, this.guiTop + 191, 45,22, "14")); + addSideButton(new GuiMenuSideButton(35,guiLeft - 90, this.guiTop + 191, 45,22, "15")); getSideButton(20 + activeTab).active = true; showClones(); diff --git a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerSelector.java b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerSelector.java index 98acfd5e8..4636347d6 100644 --- a/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerSelector.java +++ b/src/main/java/noppes/npcs/client/gui/GuiNpcMobSpawnerSelector.java @@ -59,16 +59,22 @@ public class GuiNpcMobSpawnerSelector extends SubGuiInterface implements IGuiDat addButton(new GuiNpcButton(0, guiLeft + 171, guiTop + 80, 80, 20, "gui.done")); addButton(new GuiNpcButton(1, guiLeft + 171, guiTop + 103, 80, 20, "gui.cancel")); - - addSideButton(new GuiMenuSideButton(21,guiLeft - 69, this.guiTop + 2, 70,22, "Tab 1")); - addSideButton(new GuiMenuSideButton(22,guiLeft - 69, this.guiTop + 23, 70,22, "Tab 2")); - addSideButton(new GuiMenuSideButton(23,guiLeft - 69, this.guiTop + 44, 70,22, "Tab 3")); - addSideButton(new GuiMenuSideButton(24,guiLeft - 69, this.guiTop + 65, 70,22, "Tab 4")); - addSideButton(new GuiMenuSideButton(25,guiLeft - 69, this.guiTop + 86, 70,22, "Tab 5")); - addSideButton(new GuiMenuSideButton(26,guiLeft - 69, this.guiTop + 107, 70,22, "Tab 6")); - addSideButton(new GuiMenuSideButton(27,guiLeft - 69, this.guiTop + 128, 70,22, "Tab 7")); - addSideButton(new GuiMenuSideButton(28,guiLeft - 69, this.guiTop + 149, 70,22, "Tab 8")); - addSideButton(new GuiMenuSideButton(29,guiLeft - 69, this.guiTop + 170, 70,22, "Tab 9")); + + addSideButton(new GuiMenuSideButton(21,guiLeft - 90, this.guiTop + 2, 90,22, "1")); + addSideButton(new GuiMenuSideButton(22,guiLeft - 90, this.guiTop + 23, 90,22, "2")); + addSideButton(new GuiMenuSideButton(23,guiLeft - 90, this.guiTop + 44, 90,22, "3")); + addSideButton(new GuiMenuSideButton(24,guiLeft - 90, this.guiTop + 65, 90,22, "4")); + addSideButton(new GuiMenuSideButton(25,guiLeft - 90, this.guiTop + 86, 90,22, "5")); + addSideButton(new GuiMenuSideButton(26,guiLeft - 45, this.guiTop + 107, 45,22, "6")); + addSideButton(new GuiMenuSideButton(27,guiLeft - 90, this.guiTop + 107, 45,22, "7")); + addSideButton(new GuiMenuSideButton(28,guiLeft - 45, this.guiTop + 128, 45,22, "8")); + addSideButton(new GuiMenuSideButton(29,guiLeft - 90, this.guiTop + 128, 45,22, "9")); + addSideButton(new GuiMenuSideButton(30,guiLeft - 45, this.guiTop + 149, 45,22, "10")); + addSideButton(new GuiMenuSideButton(31,guiLeft - 90, this.guiTop + 149, 45,22, "11")); + addSideButton(new GuiMenuSideButton(32,guiLeft - 45, this.guiTop + 170, 45,22, "12")); + addSideButton(new GuiMenuSideButton(33,guiLeft - 90, this.guiTop + 170, 45,22, "13")); + addSideButton(new GuiMenuSideButton(34,guiLeft - 45, this.guiTop + 191, 45,22, "14")); + addSideButton(new GuiMenuSideButton(35,guiLeft - 90, this.guiTop + 191, 45,22, "15")); getSideButton(20 + activeTab).active = true; showClones(); diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java b/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java index 32bce96c3..21097d35f 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiCreationScreen.java @@ -32,6 +32,7 @@ import noppes.npcs.constants.EnumPacketServer; import noppes.npcs.controllers.PixelmonHelper; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.entity.EntityFakeLiving; +import noppes.npcs.entity.EntityNPC64x64; import noppes.npcs.entity.EntityNPCInterface; public class GuiCreationScreen extends GuiModelInterface implements ICustomScrollListener{ @@ -61,7 +62,8 @@ public class GuiCreationScreen extends GuiModelInterface implements ICustomScrol e.printStackTrace(); } catch (NoSuchMethodException e) { } - } + } + data.put("NPC64", EntityNPC64x64.class); list = new ArrayList(data.keySet()); Collections.sort(list,String.CASE_INSENSITIVE_ORDER); } diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java index 77d06f17a..e076289e1 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelBody.java @@ -11,10 +11,12 @@ import noppes.npcs.entity.EntityCustomNpc; public class GuiModelBody extends GuiModelInterface{ private GuiScreen parent; - private final String[] arrWing = new String[]{"gui.no","Player","Type1","Type2","Type3"}; + private final String[] arrWing = new String[]{"gui.no","Player","Type1","Type2","Type3","Type4","Type5","Type6","Type7","Type8","Type9", + "Type10","Type11","Type12","Type13"}; private final String[] arrBreasts = new String[]{"gui.no","Type1","Type2","Type3"}; private final String[] arrParticles = new String[]{"gui.no","Player","Type1","Type2", "Rainbow"}; - private final String[] arrfins = new String[]{"gui.no","Player","Type1"}; + private final String[] arrfins = new String[]{"gui.no","Player","Type1","Type2","Type3","Type4","Type5","Type6"}; + private final String[] arrskirt = new String[]{"gui.no","Player","Type1"}; public GuiModelBody(GuiScreen parent, EntityCustomNpc npc){ super(npc); @@ -47,15 +49,48 @@ public class GuiModelBody extends GuiModelInterface{ if(fin != null) addButton(new GuiNpcButton(13, guiLeft + 122, y, 40, 20, fin.getColor())); + ModelPartData skirt = playerdata.getPartData("skirt"); + addButton(new GuiNpcButton(4, guiLeft + 50, y += 22, 70, 20, arrskirt, getSkirtindex(skirt))); + addLabel(new GuiNpcLabel(4, "Skirt", guiLeft, y + 5, 0xFFFFFF)); + if(skirt != null) + addButton(new GuiNpcButton(14, guiLeft + 122, y, 40, 20, skirt.getColor())); } private int getFinIndex(ModelPartData fin) { - if(fin == null) - return 0; - return fin.playerTexture?1:2; + if(fin == null) + return 0; + if(fin.type == 0){ + if(fin.playerTexture) + return 1; + if(fin.texture.contains("1")) + return 2; + if(fin.texture.contains("2")) + return 3; + if(fin.texture.contains("3")) + return 4; + if(fin.texture.contains("4")) + return 5; + if(fin.texture.contains("5")) + return 6; + if(fin.texture.contains("6")) + return 7; + } + return 0; } + private int getSkirtindex(ModelPartData skirt) { + if (skirt == null) + return 0; + if (skirt.type == 0) { + if (skirt.playerTexture) + return 1; + if (skirt.texture.contains("1")) + return 2; + } + return 0; + } + private int getParticleIndex(ModelPartData particles) { if(particles == null) return 0; @@ -110,19 +145,44 @@ public class GuiModelBody extends GuiModelInterface{ initGui(); } if(button.id == 3){ - int value = button.getValue(); - if(value == 0) - playerdata.removePart("fin"); - else{ - ModelPartData particles = playerdata.getOrCreatePart("fin"); - if(value == 1) - particles.setTexture("", 0); - if(value == 2) - particles.setTexture("fin/fin1", 0); - } - initGui(); + int value = button.getValue(); + if(value == 0) + playerdata.removePart("fin"); + else{ + ModelPartData particles = playerdata.getOrCreatePart("fin"); + if(value == 1) + particles.setTexture("", 0); + if(value == 2) + particles.setTexture("fin/fin1", 0); + if(value == 3) + particles.setTexture("fin/fin2", 0); + if(value == 4) + particles.setTexture("fin/fin3", 0); + if(value == 5) + particles.setTexture("fin/fin4", 0); + if(value == 6) + particles.setTexture("fin/fin5", 0); + if(value == 7) + particles.setTexture("fin/fin6", 0); + + } + initGui(); } + if(button.id == 4){ + int value = button.getValue(); + if(value == 0) + playerdata.removePart("skirt"); + else{ + ModelPartData particles = playerdata.getOrCreatePart("skirt"); + if(value == 1) + particles.setTexture("", 0); + if(value == 2) + particles.setTexture("skirt/skirt1", 0); + } + initGui(); + } + if(button.id == 11){ this.mc.displayGuiScreen(new GuiModelColor(this, playerdata.getPartData("wings"), npc)); } @@ -132,6 +192,9 @@ public class GuiModelBody extends GuiModelInterface{ if(button.id == 13){ this.mc.displayGuiScreen(new GuiModelColor(this, playerdata.getPartData("fin"), npc)); } + if(button.id == 14){ + this.mc.displayGuiScreen(new GuiModelColor(this, playerdata.getPartData("skirt"), npc)); + } } @Override diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java index 12a795a88..c29a52a0a 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelHead.java @@ -15,11 +15,12 @@ public class GuiModelHead extends GuiModelInterface{ private final String[] arrHeadwear = new String[]{"gui.no","gui.yes","Solid"}; private final String[] arrHair = new String[]{"gui.no","Player","Long","Thin","Stylish","Ponytail"}; private final String[] arrBeard = new String[]{"gui.no","Player","Standard","Viking","Long","Short"}; - private final String[] arrMohawk = new String[]{"gui.no","Type1"}; - private final String[] arrSnout = new String[]{"gui.no","Player Small","Player Medium", "Player Large", "Player Bunny", - "Small1", "Medium1", "Large1", "Bunny1"}; + private final String[] arrMohawk = new String[]{"gui.no","Type1","Type2","Type3"}; + private final String[] arrSnout = new String[]{"gui.no","Player Small","Player Medium", "Player Large", "Player Bunny", + "Small1", "Medium1", "Large1", "Bunny1", "Beak1"}; private final String[] arrEars = new String[]{"gui.no","Player","Player Bunny","Bunny","Type1"}; - + private final String[] arrHorns = new String[]{"gui.no", "Player Bull", "Player Antlers", "Player AntennasB", "Player AntennasF", "Bull", "Antlers", "AntennasB", "AntennasF" }; + public GuiModelHead(GuiScreen parent, EntityCustomNpc npc){ super(npc); this.parent = parent; @@ -28,42 +29,49 @@ public class GuiModelHead extends GuiModelInterface{ @Override public void initGui() { - super.initGui(); + super.initGui(); int y = guiTop + 20; - - addButton(new GuiNpcButton(0, guiLeft + 50, y += 22, 70, 20, arrHeadwear, playerdata.headwear)); + + addButton(new GuiNpcButton(0, guiLeft + 50, y += 22, 70, 20, arrHeadwear, playerdata.headwear)); addLabel(new GuiNpcLabel(0, "Headwear", guiLeft, y + 5, 0xFFFFFF)); ModelPartData hair = playerdata.getPartData("hair"); - addButton(new GuiNpcButton(1, guiLeft + 50, y += 22, 70, 20, arrHair, hair == null?0:hair.type + 1)); + addButton(new GuiNpcButton(1, guiLeft + 50, y += 22, 70, 20, arrHair, hair == null ? 0 : hair.type + 1)); addLabel(new GuiNpcLabel(1, "Hair", guiLeft, y + 5, 0xFFFFFF)); - if(hair != null) + if (hair != null) addButton(new GuiNpcButton(11, guiLeft + 122, y, 40, 20, hair.getColor())); ModelPartData mohawk = playerdata.getPartData("mohawk"); - addButton(new GuiNpcButton(2, guiLeft + 50, y += 22, 70, 20, arrMohawk, mohawk == null?0:mohawk.type)); + addButton(new GuiNpcButton(2, guiLeft + 50, y += 22, 70, 20, arrMohawk, mohawk == null ? 0 : mohawk.type)); addLabel(new GuiNpcLabel(2, "Mohawk", guiLeft, y + 5, 0xFFFFFF)); - if(mohawk != null) + if (mohawk != null) addButton(new GuiNpcButton(12, guiLeft + 122, y, 40, 20, mohawk.getColor())); ModelPartData beard = playerdata.getPartData("beard"); - addButton(new GuiNpcButton(3, guiLeft + 50, y += 22, 70, 20, arrBeard, beard == null?0:beard.type + 1)); + addButton(new GuiNpcButton(3, guiLeft + 50, y += 22, 70, 20, arrBeard, beard == null ? 0 : beard.type + 1)); addLabel(new GuiNpcLabel(3, "Beard", guiLeft, y + 5, 0xFFFFFF)); - if(beard != null) + if (beard != null) addButton(new GuiNpcButton(13, guiLeft + 122, y, 40, 20, beard.getColor())); ModelPartData snout = playerdata.getPartData("snout"); - addButton(new GuiNpcButton(4, guiLeft + 50, y += 22, 70, 20, arrSnout, snout == null?0:snout.type + (snout.playerTexture?1:5))); + addButton(new GuiNpcButton(4, guiLeft + 50, y += 22, 70, 20, arrSnout, snout == null ? 0 : snout.type + (snout.playerTexture ? 1 : 5))); addLabel(new GuiNpcLabel(4, "Snout", guiLeft, y + 5, 0xFFFFFF)); - if(snout != null) + if (snout != null) addButton(new GuiNpcButton(14, guiLeft + 122, y, 40, 20, snout.getColor())); ModelPartData ears = playerdata.getPartData("ears"); - addButton(new GuiNpcButton(5, guiLeft + 50, y += 22, 70, 20, arrEars, getEars(ears))); + addButton(new GuiNpcButton(5, guiLeft + 50, y += 22, 70, 20, arrEars, getEars(ears))); addLabel(new GuiNpcLabel(5, "Ears", guiLeft, y + 5, 0xFFFFFF)); - if(ears != null) + if (ears != null) addButton(new GuiNpcButton(15, guiLeft + 122, y, 40, 20, ears.getColor())); + + ModelPartData horns = playerdata.getPartData("horns"); + y += 22;addButton(new GuiNpcButton(6, guiLeft + 50, y, 70, 20, arrHorns, getHorns(horns))); + addLabel(new GuiNpcLabel(6, "Horns", guiLeft, y + 5, 16777215)); + if (horns != null) { + addButton(new GuiNpcButton(16, guiLeft + 122, y, 40, 20, horns.getColor())); + } } @@ -82,6 +90,15 @@ public class GuiModelHead extends GuiModelInterface{ return 0; } + private int getHorns(ModelPartData data) { + if (data == null) + return 0; + if (data.playerTexture) { + return data.type + 1; + } + return data.type + 5; + } + @Override protected void actionPerformed(GuiButton btn) { super.actionPerformed(btn); @@ -124,26 +141,28 @@ public class GuiModelHead extends GuiModelInterface{ initGui(); } - if(button.id == 4){ - if(button.getValue() == 0) - playerdata.removePart("snout"); - else if(button.getValue() < 5){ - ModelPartData data = playerdata.getOrCreatePart("snout"); - data.type = (byte) (button.getValue() - 1); - } - else{ - ModelPartData data = playerdata.getOrCreatePart("snout"); - byte type = 0; - if(button.displayString.startsWith("Medium")) - type = 1; - if(button.displayString.startsWith("Large")) - type = 2; - if(button.displayString.startsWith("Bunny")) - type = 3; - data.setTexture("snout/" + button.displayString.toLowerCase(), type); - } - initGui(); - } + if(button.id == 4){ + if(button.getValue() == 0) + playerdata.removePart("snout"); + else if(button.getValue() < 5){ + ModelPartData data = playerdata.getOrCreatePart("snout"); + data.type = (byte) (button.getValue() - 1); + } + else{ + ModelPartData data = playerdata.getOrCreatePart("snout"); + byte type = 0; + if(button.displayString.startsWith("Medium")) + type = 1; + if(button.displayString.startsWith("Large")) + type = 2; + if(button.displayString.startsWith("Bunny")) + type = 3; + if(button.displayString.startsWith("Beak")) + type = 4; + data.setTexture("snout/" + button.displayString.toLowerCase(), type); + } + initGui(); + } if(button.id == 5){ int value = button.getValue(); @@ -163,6 +182,26 @@ public class GuiModelHead extends GuiModelInterface{ initGui(); } + if(button.id == 6){ + int value = button.getValue(); + if(value == 0) + playerdata.removePart("horns"); + else{ + ModelPartData data = playerdata.getOrCreatePart("horns"); + if(value <= 4) + data.setTexture("", value - 1); + if(value == 5) + data.setTexture("horns/bull", 0); + if(value == 6) + data.setTexture("horns/antlers", 1); + if(value == 7) + data.setTexture("horns/antennas", 2); + if(value == 8) + data.setTexture("horns/antennas", 3); + } + initGui(); + } + if(button.id == 11){ this.mc.displayGuiScreen(new GuiModelColor(this, playerdata.getPartData("hair"), npc)); } @@ -178,6 +217,9 @@ public class GuiModelHead extends GuiModelInterface{ if(button.id == 15){ this.mc.displayGuiScreen(new GuiModelColor(this, playerdata.getPartData("ears"), npc)); } + if(button.id == 16){ + this.mc.displayGuiScreen(new GuiModelColor(this, playerdata.getPartData("horns"), npc)); + } } @Override diff --git a/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java b/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java index 660d005dc..8912683b7 100644 --- a/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java +++ b/src/main/java/noppes/npcs/client/gui/model/GuiModelLegs.java @@ -12,7 +12,7 @@ public class GuiModelLegs extends GuiModelInterface{ private GuiScreen parent; private final String[] arrLegs = new String[]{"gui.no","Player","Player Naga","Spider","Horse","Naga", "Mermaid","Digitigrade"}; - private final String[] arrTail = new String[]{"gui.no","Player", "Player Dragon","Cat","Wolf","Horse","Dragon", "Squirrel"}; + private final String[] arrTail = new String[]{"gui.no","Player", "Player Dragon","Cat","Wolf","Horse","Dragon", "Squirrel", "Fin", "Rodent"}; public GuiModelLegs(GuiScreen parent, EntityCustomNpc npc){ super(npc); this.parent = parent; @@ -46,22 +46,26 @@ public class GuiModelLegs extends GuiModelInterface{ } private int getTailIndex(ModelPartData data){ - if(data == null) - return 0; - if(data.playerTexture && data.type == 0) - return 1; - if(data.type == 0 && data.texture.contains("tail1")) - return 3; - if(data.type == 0 && data.texture.contains("tail2")) - return 4; - if(data.playerTexture && data.type == 1) - return 2; - if(data.type == 1) - return 6; - if(data.type == 2) - return 5; - if(data.type == 3) - return 7; + if(data == null) + return 0; + if(data.playerTexture && data.type == 0) + return 1; + if(data.type == 0 && data.texture.contains("tail1")) + return 3; + if(data.type == 0 && data.texture.contains("tail2")) + return 4; + if(data.playerTexture && data.type == 1) + return 2; + if(data.type == 1) + return 6; + if(data.type == 2) + return 5; + if(data.type == 3) + return 7; + if(data.type == 4) + return 8; + if(data.type == 5) + return 9; return 0; } @@ -94,30 +98,34 @@ public class GuiModelLegs extends GuiModelInterface{ } - if(button.id == 2){ + if(button.id == 2){ int value = button.getValue(); - if(value == 0) - playerdata.removePart("tail"); - else{ - ModelPartData data = playerdata.getOrCreatePart("tail"); - if(value == 1) - data.setTexture("", 0); - if(value == 2) - data.setTexture("", 1); - if(value == 3) - data.setTexture("tail/tail1", 0); - if(value == 4) - data.setTexture("tail/tail2", 0); - if(value == 5) - data.setTexture("tail/horse1", 2); - if(value == 6) - data.setTexture("tail/dragon1", 1); - if(value == 7) - data.setTexture("tail/squirrel1", 3); - - } - initGui(); - } + if(value == 0) + playerdata.removePart("tail"); + else{ + ModelPartData data = playerdata.getOrCreatePart("tail"); + if(value == 1) + data.setTexture("", 0); + if(value == 2) + data.setTexture("", 1); + if(value == 3) + data.setTexture("tail/tail1", 0); + if(value == 4) + data.setTexture("tail/tail2", 0); + if(value == 5) + data.setTexture("tail/horse1", 2); + if(value == 6) + data.setTexture("tail/dragon1", 1); + if(value == 7) + data.setTexture("tail/squirrel1", 3); + if(value == 8) + data.setTexture("tail/fin1", 4); + if(value == 9) + data.setTexture("tail/rodent1", 5); + + } + initGui(); + } if(button.id == 11){ this.mc.displayGuiScreen(new GuiModelColor(this, playerdata.legParts, npc)); } diff --git a/src/main/java/noppes/npcs/client/gui/util/GuiNpcSlider.java b/src/main/java/noppes/npcs/client/gui/util/GuiNpcSlider.java index 6e7751aa6..ccb0ab861 100644 --- a/src/main/java/noppes/npcs/client/gui/util/GuiNpcSlider.java +++ b/src/main/java/noppes/npcs/client/gui/util/GuiNpcSlider.java @@ -23,6 +23,14 @@ public class GuiNpcSlider extends GuiButton { if(parent instanceof ISliderListener) listener = (ISliderListener) parent; } + + public GuiNpcSlider(GuiScreen parent, int id, int xPos, int yPos, int width, int height, String displayString, float sliderValue) { + super(id, xPos, yPos, width, height, NoppesStringUtils.translate(displayString)); + this.id = id; + this.sliderValue = sliderValue; + if(parent instanceof ISliderListener) + listener = (ISliderListener) parent; + } public GuiNpcSlider(GuiScreen parent, int id, int xPos, int yPos, float sliderValue) { this(parent, id, xPos, yPos, "", sliderValue); diff --git a/src/main/java/noppes/npcs/client/model/ModelMPM.java b/src/main/java/noppes/npcs/client/model/ModelMPM.java index 405a17de2..af2396472 100644 --- a/src/main/java/noppes/npcs/client/model/ModelMPM.java +++ b/src/main/java/noppes/npcs/client/model/ModelMPM.java @@ -32,6 +32,8 @@ import noppes.npcs.constants.EnumAnimation; import noppes.npcs.constants.EnumJobType; import noppes.npcs.entity.EntityCustomNpc; import noppes.npcs.roles.JobPuppet; +import noppes.npcs.client.model.part.ModelHorns; +import noppes.npcs.client.model.part.ModelSkirt; import org.lwjgl.opengl.GL11; @@ -44,6 +46,8 @@ public class ModelMPM extends ModelNPCMale{ private ModelPartInterface snout; private ModelPartInterface ears; private ModelPartInterface fin; + private ModelPartInterface skirt; + private ModelPartInterface horns; private ModelPartInterface clawsR; private ModelPartInterface clawsL; @@ -94,40 +98,26 @@ public class ModelMPM extends ModelNPCMale{ headwear = new ModelHeadwear(this); legs = new ModelLegs(this, (ModelScaleRenderer)bipedRightLeg, (ModelScaleRenderer)bipedLeftLeg); - - breasts = new ModelBreasts(this); - this.bipedBody.addChild(breasts); - if(!isArmor){ - ears = new ModelEars(this); - this.bipedHead.addChild(ears); - - mohawk = new ModelMohawk(this); - this.bipedHead.addChild(mohawk); - - hair = new ModelHair(this); - this.bipedHead.addChild(hair); - - beard = new ModelBeard(this); - this.bipedHead.addChild(beard); - - snout = new ModelSnout(this); - this.bipedHead.addChild(snout); - - tail = new ModelTail(this); - - wings = new ModelWings(this); - this.bipedBody.addChild(wings); - - fin = new ModelFin(this); - this.bipedBody.addChild(fin); - - clawsL = new ModelClaws(this, false); - this.bipedLeftArm.addChild(clawsL); - clawsR = new ModelClaws(this, true); - this.bipedRightArm.addChild(clawsR); - } - } + this.bipedBody.addChild(breasts = new ModelBreasts(this)); + if(!isArmor){ + this.bipedHead.addChild(ears = new ModelEars(this)); + this.bipedHead.addChild(mohawk = new ModelMohawk(this)); + this.bipedHead.addChild(hair = new ModelHair(this)); + this.bipedHead.addChild(beard = new ModelBeard(this)); + this.bipedHead.addChild(snout = new ModelSnout(this)); + this.bipedHead.addChild(horns = new ModelHorns(this)); + + tail = new ModelTail(this); + + this.bipedBody.addChild(wings = new ModelWings(this)); + this.bipedBody.addChild(skirt = new ModelSkirt(this)); + this.bipedBody.addChild(fin = new ModelFin(this)); + + this.bipedLeftArm.addChild(clawsL = new ModelClaws(this, false)); + this.bipedRightArm.addChild(clawsR = new ModelClaws(this, true)); + } + } private void setPlayerData(EntityCustomNpc entity){ if(!isArmor){ @@ -141,6 +131,8 @@ public class ModelMPM extends ModelNPCMale{ ears.setData(entity.modelData, entity); clawsL.setData(entity.modelData, entity); clawsR.setData(entity.modelData, entity); + skirt.setData(entity.modelData, entity); + horns.setData(entity.modelData, entity); } breasts.setData(entity.modelData, entity); legs.setData(entity); @@ -263,6 +255,7 @@ public class ModelMPM extends ModelNPCMale{ beard.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); wings.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); tail.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); + skirt.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); } legs.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); diff --git a/src/main/java/noppes/npcs/client/model/ModelMPM64.java b/src/main/java/noppes/npcs/client/model/ModelMPM64.java new file mode 100644 index 000000000..d518bbaea --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/ModelMPM64.java @@ -0,0 +1,31 @@ +package noppes.npcs.client.model; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.MathHelper; +import noppes.npcs.ModelPartConfig; +import noppes.npcs.ModelPartData; +import noppes.npcs.client.ClientProxy; +import noppes.npcs.client.model.animation.AniCrawling; +import noppes.npcs.client.model.animation.AniHug; +import noppes.npcs.client.model.part.*; +import noppes.npcs.client.model.util.ModelPartInterface; +import noppes.npcs.client.model.util.ModelScaleRenderer; +import noppes.npcs.constants.EnumAnimation; +import noppes.npcs.constants.EnumJobType; +import noppes.npcs.entity.EntityCustomNpc; +import noppes.npcs.roles.JobPuppet; +import org.lwjgl.opengl.GL11; + +import java.util.Random; + +public class ModelMPM64 extends ModelMPM{ + + public ModelMPM64(float par1) { + super(par1); + } +} diff --git a/src/main/java/noppes/npcs/client/model/part/ModelDuckBeak.java b/src/main/java/noppes/npcs/client/model/part/ModelDuckBeak.java new file mode 100644 index 000000000..58749c6df --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/ModelDuckBeak.java @@ -0,0 +1,78 @@ +package noppes.npcs.client.model.part; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import noppes.npcs.client.model.ModelMPM; +import noppes.npcs.client.model.util.ModelPartInterface; + +public class ModelDuckBeak extends ModelRenderer { + ModelRenderer Top3; + ModelRenderer Top2; + ModelRenderer Bottom; + ModelRenderer Left; + ModelRenderer Right; + ModelRenderer Middle; + ModelRenderer Top; + + public ModelDuckBeak(ModelMPM base) { + super(base); + + Top3 = new ModelRenderer(base, 14, 0); + Top3.addBox(0F, 0F, 0F, 2, 1, 3); + Top3.setRotationPoint(-1F, -2F, -5F); + setRotation(Top3, 0.3346075F, 0F, 0F); + addChild(Top3); + + Top2 = new ModelRenderer(base, 0, 0); + Top2.addBox(0F, 0F, -0.4F, 4, 1, 3); + Top2.setRotationPoint(-2F, -3F, -2F); + setRotation(Top2, 0.3346075F, 0F, 0F); + addChild(Top2); + + Bottom = new ModelRenderer(base, 24, 0); + Bottom.addBox(0F, 0F, 0F, 2, 1, 5); + Bottom.setRotationPoint(-1F, -1F, -5F); + addChild(Bottom); + + Left = new ModelRenderer(base, 0, 4); + Left.mirror = true; + Left.addBox(0F, 0F, 0F, 1, 3, 2); + Left.setRotationPoint(0.98F, -3F, -2F); + addChild(Left); + + Right = new ModelRenderer(base, 0, 4); + Right.addBox(0F, 0F, 0F, 1, 3, 2); + Right.setRotationPoint(-1.98F, -3F, -2F); + addChild(Right); + + Middle = new ModelRenderer(base, 3, 0); + Middle.addBox(0F, 0F, 0F, 2, 1, 3); + Middle.setRotationPoint(-1F, -2F, -5F); + addChild(Middle); + + Top = new ModelRenderer(base, 6, 4); + Top.addBox(0F, 0F, 0F, 2, 2, 1); + Top.setRotationPoint(-1F, -4.4F, -1F); + addChild(Top); + } + + @Override + public void render(float f) + { + GL11.glPushMatrix(); + GL11.glTranslatef(0, 0, -1f * f); + GL11.glScalef(0.82f, 0.82f, 0.70f); + super.render(f); + GL11.glPopMatrix(); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + +} diff --git a/src/main/java/noppes/npcs/client/model/part/ModelFin.java b/src/main/java/noppes/npcs/client/model/part/ModelFin.java index e8bbae8fa..c8f79c9fc 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelFin.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelFin.java @@ -13,7 +13,7 @@ public class ModelFin extends ModelPartInterface { public ModelFin(ModelMPM base) { super(base); - model = new Model2DRenderer(base, 56, 20, 8, 12, 64, 32); + model = new Model2DRenderer(base, 48, 8, 16, 24, 64, 32); model.setRotationPoint(-0.5F, 12, 10); model.setScale(0.74f); model.rotateAngleY = (float)Math.PI / 2; diff --git a/src/main/java/noppes/npcs/client/model/part/ModelHorns.java b/src/main/java/noppes/npcs/client/model/part/ModelHorns.java new file mode 100644 index 000000000..0b7fe1612 --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/ModelHorns.java @@ -0,0 +1,58 @@ +package noppes.npcs.client.model.part; + +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.ResourceLocation; +import noppes.npcs.ModelPartData; +import noppes.npcs.ModelData; +import noppes.npcs.client.model.ModelMPM; +import noppes.npcs.client.model.util.ModelPartInterface; +import noppes.npcs.client.model.part.horns.ModelAntennasBack; +import noppes.npcs.client.model.part.horns.ModelAntennasFront; +import noppes.npcs.client.model.part.horns.ModelAntlerHorns; +import noppes.npcs.client.model.part.horns.ModelBullHorns; + +public class ModelHorns extends ModelPartInterface { + private ModelRenderer bull; + private ModelRenderer antlers; + private ModelRenderer antennasBack; + private ModelRenderer antennasFront; + + public ModelHorns(ModelMPM base) { + super(base); + + this.addChild(bull = new ModelBullHorns(base)); + this.addChild(antlers = new ModelAntlerHorns(base)); + this.addChild(antennasBack = new ModelAntennasBack(base)); + this.addChild(antennasFront = new ModelAntennasFront(base)); + } + + @Override + public void setRotationAngles(float par1, float par2, float par3, + float par4, float par5, float par6, Entity entity) { + + } + + @Override + public void initData(ModelData data) { + ModelPartData config = data.getPartData("horns"); + if(config == null) + { + isHidden = true; + return; + } + color = config.color; + isHidden = false; + + bull.isHidden = config.type != 0; + antlers.isHidden = config.type != 1; + antennasBack.isHidden = config.type != 2; + antennasFront.isHidden = config.type != 3; + + if(!config.playerTexture){ + location = config.getResource(); + } + else + location = null; + } +} diff --git a/src/main/java/noppes/npcs/client/model/part/ModelLegs.java b/src/main/java/noppes/npcs/client/model/part/ModelLegs.java index a4c834263..a01c6aae2 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelLegs.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelLegs.java @@ -12,6 +12,7 @@ import noppes.npcs.client.ClientProxy; import noppes.npcs.client.model.ModelMPM; import noppes.npcs.client.model.part.legs.ModelDigitigradeLegs; import noppes.npcs.client.model.part.legs.ModelMermaidLegs; +import noppes.npcs.client.model.part.legs.ModelMermaidLegs2; import noppes.npcs.client.model.part.legs.ModelNagaLegs; import noppes.npcs.client.model.util.ModelScaleRenderer; import noppes.npcs.constants.EnumAnimation; @@ -27,6 +28,7 @@ public class ModelLegs extends ModelScaleRenderer{ private ModelNagaLegs naga; private ModelDigitigradeLegs digitigrade; private ModelMermaidLegs mermaid; + private ModelMermaidLegs2 mermaid2; private ModelRenderer spiderLeg1; private ModelRenderer spiderLeg2; @@ -200,7 +202,9 @@ public class ModelLegs extends ModelScaleRenderer{ this.addChild(naga); mermaid = new ModelMermaidLegs(base); - this.addChild(mermaid); + + mermaid2 = new ModelMermaidLegs2(base); + this.addChild(mermaid2); digitigrade = new ModelDigitigradeLegs(base); this.addChild(digitigrade); @@ -297,8 +301,17 @@ public class ModelLegs extends ModelScaleRenderer{ naga.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); } else if(part.type == 4){ - mermaid.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); - } + mermaid.isRiding = base.isRiding; + mermaid.isSleeping = base.isSleeping(entity); + mermaid.isCrawling = this.entity.currentAnimation == EnumAnimation.CRAWLING; + mermaid.isSneaking = base.isSneak; + mermaid2.isRiding = base.isRiding; + mermaid2.isSleeping = base.isSleeping(entity); + mermaid2.isCrawling = this.entity.currentAnimation == EnumAnimation.CRAWLING; + mermaid2.isSneaking = base.isSneak; + mermaid.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); + mermaid2.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); + } else if(part.type == 5){ digitigrade.setRotationAngles(par1, par2, par3, par4, par5, par6, entity); } @@ -314,7 +327,7 @@ public class ModelLegs extends ModelScaleRenderer{ return; GL11.glPushMatrix(); if(part.type == 4) - part.playerTexture = !entity.isInWater(); + part.playerTexture = false; if(!base.isArmor){ if(!part.playerTexture){ ClientProxy.bindTexture(part.getResource()); @@ -325,18 +338,19 @@ public class ModelLegs extends ModelScaleRenderer{ base.currentlyPlayerTexture = true; } } - if(part.type == 0 || part.type == 4 && !entity.isInWater()){ - leg1.setConfig(config, x, y, z); - leg1.render(par1); - leg2.setConfig(config, -x, y, z); - leg2.render(par1); - } + if(part.type == 0){ + leg1.setConfig(config, x, y, z); + leg1.render(par1); + leg2.setConfig(config, -x, y, z); + leg2.render(par1); + } if(!base.isArmor){ naga.isHidden = part.type != 1; spider.isHidden = part.type != 2; horse.isHidden = part.type != 3; - mermaid.isHidden = part.type != 4 || !entity.isInWater(); + mermaid.isHidden = part.type != 4; + mermaid2.isHidden = part.type != 4; digitigrade.isHidden = part.type != 5; if(!horse.isHidden){ diff --git a/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java b/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java new file mode 100644 index 000000000..29bd9d435 --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/ModelSkirt.java @@ -0,0 +1,72 @@ +package noppes.npcs.client.model.part; + +import java.util.List; + +import org.lwjgl.opengl.GL11; + +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; +import net.minecraft.util.ResourceLocation; +import noppes.npcs.ModelData; +import noppes.npcs.ModelPartData; +import noppes.npcs.client.model.ModelMPM; +import noppes.npcs.client.model.util.ModelPartInterface; +import noppes.npcs.client.model.util.ModelPlane; +import noppes.npcs.client.model.util.ModelPlaneRenderer; + +public class ModelSkirt extends ModelPartInterface { + private ModelPlaneRenderer Shape1; + public ModelSkirt(ModelMPM base) { + super(base); + float pi = (float) (Math.PI / 5); + + Shape1 = new ModelPlaneRenderer(base, 58, 18); + Shape1.addSidePlane(0, 0, 0, 9, 2); + + ModelPlaneRenderer part1 = new ModelPlaneRenderer(base, 58, 18); + part1.addSidePlane(2, 0, 0, 9, 2); + part1.rotateAngleY = -(float) (Math.PI/2); + Shape1.addChild(part1); + + Shape1.setRotationPoint(2.4F, 8.8F, 0F); + setRotation(Shape1, 0.3F, -0.2f, -0.2F); + } + public void render(float par1) + { + if (this.isHidden || !this.showModel) + return; + GL11.glPushMatrix(); + GL11.glScalef(1.7f, 1.04f, 1.6f); + super.render(par1); + GL11.glPopMatrix(); + } + public void renderParts(float par1) { + for(int i = 0; i < 10; i++){ + GL11.glRotatef(36, 0, 1, 0); + Shape1.render(par1); + } + } + + public void setRotationAngles(float par1, float par2, float par3, + float par4, float par5, float par6, Entity entity) { + setRotation(Shape1, 0.3F, -0.2f, -0.2F); + Shape1.rotateAngleX += base.bipedLeftArm.rotateAngleX * 0.04f; + Shape1.rotateAngleZ += base.bipedLeftArm.rotateAngleX * 0.06f; + //this.Shape1.rotateAngleX -= MathHelper.sin(par3 * 0.067F) * 0.05F; + this.Shape1.rotateAngleZ -= MathHelper.cos(par3 * 0.09F) * 0.04F - 0.05F; + } + + @Override + public void initData(ModelData data) { + ModelPartData config = data.getPartData("skirt"); + if(config == null) + { + isHidden = true; + return; + } + color = config.color; + isHidden = false; + location = (ResourceLocation) config.getResource(); + } +} diff --git a/src/main/java/noppes/npcs/client/model/part/ModelSnout.java b/src/main/java/noppes/npcs/client/model/part/ModelSnout.java index 7fbee6551..d44c2c2ec 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelSnout.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelSnout.java @@ -13,6 +13,7 @@ public class ModelSnout extends ModelPartInterface { private ModelRenderer medium; private ModelRenderer large; private ModelRenderer bunny; + private ModelRenderer beak; public ModelSnout(ModelMPM base) { super(base); @@ -41,6 +42,10 @@ public class ModelSnout extends ModelPartInterface { tooth.addBox(2F, 3f, 0F, 2, 1, 1); tooth.setRotationPoint(0F, 0F, 0F); bunny.addChild(tooth); + + beak = new ModelDuckBeak(base); + beak.setRotationPoint(0, 0, -4F); + this.addChild(beak); } @Override @@ -64,6 +69,7 @@ public class ModelSnout extends ModelPartInterface { medium.isHidden = config.type != 1; large.isHidden = config.type != 2; bunny.isHidden = config.type != 3; + beak.isHidden = config.type != 4; if(!config.playerTexture){ location = config.getResource(); diff --git a/src/main/java/noppes/npcs/client/model/part/ModelTail.java b/src/main/java/noppes/npcs/client/model/part/ModelTail.java index 8456637cd..f2e8f4b2a 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelTail.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelTail.java @@ -15,6 +15,8 @@ import noppes.npcs.client.model.part.tails.ModelSquirrelTail; import noppes.npcs.client.model.util.ModelScaleRenderer; import noppes.npcs.constants.EnumAnimation; import noppes.npcs.entity.EntityCustomNpc; +import noppes.npcs.client.model.part.tails.ModelRodentTail; +import noppes.npcs.client.model.part.tails.ModelTailFin; import org.lwjgl.opengl.GL11; @@ -26,6 +28,8 @@ public class ModelTail extends ModelScaleRenderer { private ModelRenderer dragon; private ModelRenderer squirrel; private ModelRenderer horse; + private ModelRenderer fin; + private ModelRenderer rodent; private int color = 0xFFFFFF; @@ -68,6 +72,9 @@ public class ModelTail extends ModelScaleRenderer { this.addChild(dragon = new ModelDragonTail(base)); this.addChild(squirrel = new ModelSquirrelTail(base)); + + this.addChild(fin = new ModelTailFin(base)); + this.addChild(rodent = new ModelRodentTail(base)); } public void setData(EntityCustomNpc entity) { @@ -118,6 +125,8 @@ public class ModelTail extends ModelScaleRenderer { dragon.isHidden = config.type != 1; horse.isHidden = config.type != 2; squirrel.isHidden = config.type != 3; + fin.isHidden = config.type != 4; + rodent.isHidden = config.type != 5; if(!config.playerTexture){ location = config.getResource(); } diff --git a/src/main/java/noppes/npcs/client/model/part/ModelWings.java b/src/main/java/noppes/npcs/client/model/part/ModelWings.java index 511038fba..f9550baa3 100644 --- a/src/main/java/noppes/npcs/client/model/part/ModelWings.java +++ b/src/main/java/noppes/npcs/client/model/part/ModelWings.java @@ -17,14 +17,14 @@ public class ModelWings extends ModelPartInterface { public ModelWings(ModelMPM base) { super(base); - lWing = new Model2DRenderer(base, 56, 16, 8, 16, 64, 32); + lWing = new Model2DRenderer(base, 48, 32, 16, 32, 64, 32); lWing.mirror = true; lWing.setRotationPoint(2F, 4, 2F); lWing.setRotationOffset(-16, -12); setRotation(lWing, 0.7141593F, -0.5235988F, -0.5090659F); this.addChild(lWing); - rWing = new Model2DRenderer(base, 56, 16, 8, 16, 64, 32); + rWing = new Model2DRenderer(base, 48, 32, 16, 32, 64, 32); rWing.setRotationPoint(-2F, 4F, 2F); rWing.setRotationOffset(-16, -12); setRotation(rWing, 0.7141593F, 0.5235988F, 0.5090659F); diff --git a/src/main/java/noppes/npcs/client/model/part/horns/ModelAntennasBack.java b/src/main/java/noppes/npcs/client/model/part/horns/ModelAntennasBack.java new file mode 100644 index 000000000..3d5ecb310 --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/horns/ModelAntennasBack.java @@ -0,0 +1,44 @@ +package noppes.npcs.client.model.part.horns; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import noppes.npcs.client.model.ModelMPM; + +public class ModelAntennasBack extends ModelRenderer { + + public ModelAntennasBack(ModelMPM base) { + super(base); + ModelRenderer rightantenna1 = new ModelRenderer(base, 36, 0); + rightantenna1.addBox(-1F, 0F, 0F, 1, 4, 1); + rightantenna1.setRotationPoint(3F, -10.9F, 0F); + setRotation(rightantenna1, -0.7504916F, 0.0698132F, 0.0698132F); + addChild(rightantenna1); + + ModelRenderer leftantenna1 = new ModelRenderer(base, 32, 0); + leftantenna1.mirror = true; + leftantenna1.addBox(0F, 0F, 0F, 1, 4, 1); + leftantenna1.setRotationPoint(-3F, -10.9F, 0F); + setRotation(leftantenna1, -0.7504916F, -0.0698132F, -0.0698132F); + addChild(leftantenna1); + + ModelRenderer rightantenna2 = new ModelRenderer(base, 36, 0); + rightantenna2.addBox(-1F, 0F, 0F, 1, 4, 1); + rightantenna2.setRotationPoint(4.6F, -12.2F, 3.4F); + setRotation(rightantenna2, -1.22173F, 0.4363323F, 0.0698132F); + addChild(rightantenna2); + + ModelRenderer leftantenna2 = new ModelRenderer(base, 32, 0); + leftantenna2.mirror = true; + leftantenna2.addBox(0F, 0F, 0F, 1, 4, 1); + leftantenna2.setRotationPoint(-4.6F, -12.2F, 3.4F); + setRotation(leftantenna2, -1.22173F, -0.4363323F, -0.0698132F); + addChild(leftantenna2); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } +} diff --git a/src/main/java/noppes/npcs/client/model/part/horns/ModelAntennasFront.java b/src/main/java/noppes/npcs/client/model/part/horns/ModelAntennasFront.java new file mode 100644 index 000000000..4200a1e6f --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/horns/ModelAntennasFront.java @@ -0,0 +1,44 @@ +package noppes.npcs.client.model.part.horns; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import noppes.npcs.client.model.ModelMPM; + +public class ModelAntennasFront extends ModelRenderer { + + public ModelAntennasFront(ModelMPM base) { + super(base); + ModelRenderer rightantenna1 = new ModelRenderer(base, 36, 0); + rightantenna1.addBox(0F, 0F, 0F, 1, 4, 1); + rightantenna1.setRotationPoint(2F, -9.4F, -2F); + setRotation(rightantenna1, 0.4014257F, 0.0698132F, 0.0698132F); + addChild(rightantenna1); + + ModelRenderer leftantenna1 = new ModelRenderer(base, 32, 0); + leftantenna1.mirror = true; + leftantenna1.addBox(-1F, 0F, 0F, 1, 4, 1); + leftantenna1.setRotationPoint(-2F, -9.4F, -2F); + setRotation(leftantenna1, 0.4014257F, -0.0698132F, -0.0698132F); + addChild(leftantenna1); + + ModelRenderer rightantenna2 = new ModelRenderer(base, 36, 0); + rightantenna2.addBox(0F, 0F, 0F, 1, 4, 1); + rightantenna2.setRotationPoint(3F, -10.2F, -5.3F); + setRotation(rightantenna2, 1.22173F, -0.2094395F, 0.0698132F); + addChild(rightantenna2); + + ModelRenderer leftantenna2 = new ModelRenderer(base, 32, 0); + leftantenna2.mirror = true; + leftantenna2.addBox(-1F, 0F, 0F, 1, 4, 1); + leftantenna2.setRotationPoint(-3F, -10.2F, -5.3F); + setRotation(leftantenna2, 1.22173F, 0.2094395F, -0.0698132F); + addChild(leftantenna2); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } +} diff --git a/src/main/java/noppes/npcs/client/model/part/horns/ModelAntlerHorns.java b/src/main/java/noppes/npcs/client/model/part/horns/ModelAntlerHorns.java new file mode 100644 index 000000000..83cc12118 --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/horns/ModelAntlerHorns.java @@ -0,0 +1,70 @@ +package noppes.npcs.client.model.part.horns; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import noppes.npcs.client.model.ModelMPM; + +public class ModelAntlerHorns extends ModelRenderer { + + public ModelAntlerHorns(ModelMPM base) { + super(base); + ModelRenderer right_base_horn = new ModelRenderer(base, 58, 20); + right_base_horn.addBox(0F, -5F, 0F, 1, 6, 1); + right_base_horn.setRotationPoint(-2.5F, -6F, -1F); + setRotation(right_base_horn, 0F, 0F, -0.2F); + addChild(right_base_horn); + ModelRenderer right_horn1 = new ModelRenderer(base, 58, 20); + right_horn1.addBox(0F, -5F, 0F, 1, 5, 1); + right_horn1.setRotationPoint(0F, -4F, 0F); + setRotation(right_horn1, 1F, 0F, -1F); + right_base_horn.addChild(right_horn1); + ModelRenderer right_horn2 = new ModelRenderer(base, 58, 20); + right_horn2.addBox(0F, -4F, 0F, 1, 5, 1); + right_horn2.setRotationPoint(-0F, -6F, -0F); + setRotation(right_horn2, -0.5F, -0.5F, 0F); + right_base_horn.addChild(right_horn2); + ModelRenderer things1 = new ModelRenderer(base, 58, 20); + things1.addBox(0F, -5F, 0F, 1, 5, 1); + things1.setRotationPoint(0F, -3F, 1F); + setRotation(things1, 2F, 0.5f, 0.5f); + right_horn2.addChild(things1); + ModelRenderer things2 = new ModelRenderer(base, 58, 20); + things2.addBox(0F, -5F, 0F, 1, 5, 1); + things2.setRotationPoint(0F, -3F, 1F); + setRotation(things2, 2F, -0.5f, -0.5f); + right_horn2.addChild(things2); + + ModelRenderer left_base_horn = new ModelRenderer(base, 58, 20); + left_base_horn.addBox(0F, -5F, 0F, 1, 6, 1); + left_base_horn.setRotationPoint(1.5F, -6F, -1F); + setRotation(left_base_horn, 0F, 0F, 0.2F); + addChild(left_base_horn); + ModelRenderer left_horn1 = new ModelRenderer(base, 58, 20); + left_horn1.addBox(0F, -5F, 0F, 1, 5, 1); + left_horn1.setRotationPoint(0F, -5F, 0F); + setRotation(left_horn1, 1F, 0F, 1F); + left_base_horn.addChild(left_horn1); + ModelRenderer left_horn2 = new ModelRenderer(base, 58, 20); + left_horn2.addBox(0F, -4F, 0F, 1, 5, 1); + left_horn2.setRotationPoint(0F, -6F, 1F); + setRotation(left_horn2, -0.5F, 0.5F, 0F); + left_base_horn.addChild(left_horn2); + ModelRenderer things8 = new ModelRenderer(base, 58, 20); + things8.addBox(0F, -5F, 0F, 1, 5, 1); + things8.setRotationPoint(0F, -3F, 1F); + setRotation(things8, 2F, -0.5f, -0.5f); + left_horn2.addChild(things8); + ModelRenderer things4 = new ModelRenderer(base, 58, 20); + things4.addBox(0F, -5F, 0F, 1, 5, 1); + things4.setRotationPoint(0F, -3F, 1F); + setRotation(things4, 2F, 0.5f, 0.5f); + left_horn2.addChild(things4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } +} diff --git a/src/main/java/noppes/npcs/client/model/part/horns/ModelBullHorns.java b/src/main/java/noppes/npcs/client/model/part/horns/ModelBullHorns.java new file mode 100644 index 000000000..a28b5ce11 --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/horns/ModelBullHorns.java @@ -0,0 +1,55 @@ +package noppes.npcs.client.model.part.horns; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import noppes.npcs.client.model.ModelMPM; + +public class ModelBullHorns extends ModelRenderer { + + public ModelBullHorns(ModelMPM base) { + super(base); + ModelRenderer Left1 = new ModelRenderer(base, 36, 16); + Left1.mirror = true; + Left1.addBox(0F, 0F, 0F, 2, 2, 2); + Left1.setRotationPoint(4F, -8F, -2F); + addChild(Left1); + + ModelRenderer Right1 = new ModelRenderer(base, 36, 16); + Right1.addBox(-3F, 0F, 0F, 2, 2, 2); + Right1.setRotationPoint(-3F, -8F, -2F); + addChild(Right1); + + ModelRenderer Left2 = new ModelRenderer(base, 12, 16); + Left2.mirror = true; + Left2.addBox(0F, 0F, 0F, 2, 2, 2); + Left2.setRotationPoint(5F, -8F, -2F); + setRotation(Left2, 0.0371786F, 0.3346075F, -0.2602503F); + addChild(Left2); + + ModelRenderer Right2 = new ModelRenderer(base, 12, 16); + Right2.addBox(-2F, 0F, 0F, 2, 2, 2); + Right2.setRotationPoint(-5F, -8F, -2F); + setRotation(Right2, 0.0371786F, -0.3346075F, 0.2602503F); + addChild(Right2); + + ModelRenderer Left3 = new ModelRenderer(base, 13, 17); + Left3.mirror = true; + Left3.addBox(-1F, 0F, 0F, 2, 1, 1); + Left3.setRotationPoint(7F, -8F, -2F); + setRotation(Left3, 0.2602503F, 0.8551081F, -0.4089647F); + addChild(Left3); + + ModelRenderer Right3 = new ModelRenderer(base, 13, 17); + Right3.addBox(-1F, 0F, 0F, 2, 1, 1); + Right3.setRotationPoint(-7F, -8F, -2F); + setRotation(Right3, -0.2602503F, -0.8551081F, 0.4089647F); + addChild(Right3); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } +} diff --git a/src/main/java/noppes/npcs/client/model/part/legs/ModelMermaidLegs.java b/src/main/java/noppes/npcs/client/model/part/legs/ModelMermaidLegs.java index 817709eec..75dd2e915 100644 --- a/src/main/java/noppes/npcs/client/model/part/legs/ModelMermaidLegs.java +++ b/src/main/java/noppes/npcs/client/model/part/legs/ModelMermaidLegs.java @@ -4,6 +4,11 @@ import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; import net.minecraft.entity.Entity; import net.minecraft.util.MathHelper; +import noppes.npcs.CustomNpcs; +import noppes.npcs.ModelData; +import noppes.npcs.constants.EnumAnimation; +import noppes.npcs.entity.EntityNPCInterface; +import noppes.npcs.entity.EntityCustomNpc; public class ModelMermaidLegs extends ModelRenderer { @@ -13,42 +18,47 @@ public class ModelMermaidLegs extends ModelRenderer { ModelRenderer fin1; ModelRenderer fin2; + public boolean isRiding = false; + public boolean isSneaking = false; + public boolean isSleeping = false; + public boolean isCrawling = false; + public ModelMermaidLegs(ModelBase base) { - super(base); - textureWidth = 64; - textureHeight = 32; + super(base); + textureWidth = 64; + textureHeight = 32; - top = new ModelRenderer(base, 0, 16); - top.addBox(-2F, -2.5F, -2F, 8, 9, 4); - top.setRotationPoint(-2F, 14F, 1F); - setRotation(top, 0.26F, 0F, 0F); + top = new ModelRenderer(base, 0, 16); + top.addBox(-2F, -2.5F, -2F, 8, 9, 4); + top.setRotationPoint(-2F, 14F, 1F); + setRotation(top, 0.26F, 0F, 0F); - middle = new ModelRenderer(base, 28, 0); - middle.addBox(0F, 0F, 0F, 7, 6, 4); - middle.setRotationPoint(-1.5F, 6.5F, -1F); - setRotation(middle, 0.86f, 0F, 0F); - top.addChild(middle); + middle = new ModelRenderer(base, 28, 0); + middle.addBox(0F, 0F, 0F, 7, 6, 4); + middle.setRotationPoint(-1.5F, 6.5F, -1F); + setRotation(middle, 0.86f, 0F, 0F); + top.addChild(middle); - bottom = new ModelRenderer(base, 24, 16); - bottom.addBox(0F, 0F, 0F, 6, 7, 3); - bottom.setRotationPoint(0.5F, 6F, 0.5f); - setRotation(bottom, 0.15f, 0F, 0F); - middle.addChild(bottom); + bottom = new ModelRenderer(base, 24, 16); + bottom.addBox(0F, 0F, 0F, 6, 7, 3); + bottom.setRotationPoint(0.5F, 6F, 0.5f); + setRotation(bottom, 0.15f, 0F, 0F); + middle.addChild(bottom); - fin1 = new ModelRenderer(base, 0, 0); - fin1.addBox(0F, 0F, 0F, 5, 9, 1); - fin1.setRotationPoint(0F, 4.5F, 1F); - setRotation(fin1, 0.05f, 0, 0.5911399F); - bottom.addChild(fin1); - - fin2 = new ModelRenderer(base, 0, 0); - fin2.mirror = true; - fin2.addBox(-5F, 0F, 0F, 5, 9, 1); - fin2.setRotationPoint(6F, 4.5F, 1F); - setRotation(fin2, 0.05f, 0, -0.591143F); - bottom.addChild(fin2); + fin1 = new ModelRenderer(base, 0, 0); + fin1.addBox(0F, 0F, 0F, 5, 9, 1); + fin1.setRotationPoint(0F, 4.5F, 1F); + setRotation(fin1, 0.05f, 0, 0.5911399F); + bottom.addChild(fin1); - } + fin2 = new ModelRenderer(base, 0, 0); + fin2.mirror = true; + fin2.addBox(-5F, 0F, 0F, 5, 9, 1); + fin2.setRotationPoint(6F, 4.5F, 1F); + setRotation(fin2, 0.05f, 0, -0.591143F); + bottom.addChild(fin2); + + } @Override public void render(float f5) { @@ -66,12 +76,21 @@ public class ModelMermaidLegs extends ModelRenderer { public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6, Entity entity) { float ani = MathHelper.sin(par1 * 0.6662F); + top.setRotationPoint(-2F, 14F, 1F); if(ani > 0.2) ani /= 3f; - top.rotateAngleX = 0.26F - ani * 0.2F * par2; - middle.rotateAngleX = 0.86f - ani * 0.24F * par2; - bottom.rotateAngleX = 0.15f - ani * 0.28F * par2; - fin2.rotateAngleX = fin1.rotateAngleX = 0.05f - ani * 0.35F * par2; - + if(this.isSleeping || this.isCrawling){ + top.rotateAngleX = middle.rotateAngleX = bottom.rotateAngleX = fin2.rotateAngleX = 0; + } + else{ + top.rotateAngleX = 0.26F - ani * 0.2F * par2; + middle.rotateAngleX = 0.86f - ani * 0.24F * par2; + bottom.rotateAngleX = 0.15f - ani * 0.28F * par2; + fin2.rotateAngleX = fin1.rotateAngleX = 0.05f - ani * 0.35F * par2; + + if(entity.isSneaking()){ + top.setRotationPoint(-2F, 12F, 6F); + } + } } } diff --git a/src/main/java/noppes/npcs/client/model/part/legs/ModelMermaidLegs2.java b/src/main/java/noppes/npcs/client/model/part/legs/ModelMermaidLegs2.java new file mode 100644 index 000000000..6af4e1fee --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/legs/ModelMermaidLegs2.java @@ -0,0 +1,114 @@ +package noppes.npcs.client.model.part.legs; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import net.minecraft.util.MathHelper; +import noppes.npcs.ModelData; +import noppes.npcs.constants.EnumAnimation; + +public class ModelMermaidLegs2 extends ModelRenderer { + + ModelRenderer Tail1; + ModelRenderer Tail2; + ModelRenderer Tail3; + ModelRenderer Tail4; + ModelRenderer Tail5; + ModelRenderer Tail6; + ModelRenderer Tail7; + ModelRenderer Tail8; + + public boolean isRiding = false; + public boolean isSneaking = false; + public boolean isSleeping = false; + public boolean isCrawling = false; + + public ModelMermaidLegs2(ModelBase base) { + super(base); + textureWidth = 64; + textureHeight = 32; + + Tail1 = new ModelRenderer(base, 0, 18); + Tail1.addBox(0F, 0F, 0F, 8, 6, 4); + Tail1.setRotationPoint(-4F, 12F, -2F); + setRotation(Tail1, 0.075F, 0F, 0F); + + Tail2 = new ModelRenderer(base, 0, 18); + Tail2.addBox(0F, 0F, 0F, 6, 5, 3); + Tail2.setRotationPoint(1F, 5.5F, 0.3F); + setRotation(Tail2, 0.56F, 0F, 0F); + Tail1.addChild(Tail2); + + Tail3 = new ModelRenderer(base, 0, 18); + Tail3.addBox(0F, 0F, 0F, 5, 5, 2); + Tail3.setRotationPoint(5.5F, 4F, 2.5F); + setRotation(Tail3, -0.37818F, 3.141593F, 0F); + Tail2.addChild(Tail3); + + Tail4 = new ModelRenderer(base, 0, 20); + Tail4.addBox(0F, 0F, 0F, 4, 3, 1); + Tail4.setRotationPoint(0.5F, 4.5F, 0.5F); + setRotation(Tail4, -0.1f, 0, 0F); + Tail3.addChild(Tail4); + + Tail5 = new ModelRenderer(base, 0, 20); + Tail5.addBox(0F, 0F, 0F, 1, 3, 1); + Tail5.setRotationPoint(-1F, 1.5F, 0F); + setRotation(Tail5, 0, 0, 0F); + Tail4.addChild(Tail5); + + Tail6 = new ModelRenderer(base, 0, 20); + Tail6.addBox(0F, 0F, 0F, 1, 3, 1); + Tail6.setRotationPoint(-2F, 3F, 0F); + setRotation(Tail6, 0, 0, 0F); + Tail4.addChild(Tail6); + + Tail7 = new ModelRenderer(base, 0, 20); + Tail7.addBox(0F, 0F, 0F, 1, 3, 1); + Tail7.setRotationPoint(4F, 1.5F, 0F); + setRotation(Tail7, 0, 0, 0F); + Tail4.addChild(Tail7); + + Tail8 = new ModelRenderer(base, 0, 20); + Tail8.addBox(0F, 0F, 0F, 1, 3, 1); + Tail8.setRotationPoint(5F, 3F, 0F); + setRotation(Tail8, 0, 0, 0F); + Tail4.addChild(Tail8); + + } + + @Override + public void render(float f5) { + if (isHidden || !showModel) + return; + Tail1.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float par1, float par2, float par3, float par4, float par5, float par6, + Entity entity) { + Tail1.setRotationPoint(-4F, 12F, -2F); + float ani = MathHelper.sin(par1 * 0.6662F); + if (ani > 0.2) + ani /= 3f; + if(this.isSleeping || this.isCrawling){ + Tail1.rotateAngleX = Tail2.rotateAngleX = Tail3.rotateAngleX = Tail4.rotateAngleX = 0; + } + else{ + Tail1.rotateAngleX = 0.2F - ani * 0.2F * par2; + Tail2.rotateAngleX = 0.56F - ani * 0.24F * par2; + Tail3.rotateAngleX = -0.4F + ani * 0.24F * par2; + Tail4.rotateAngleX = -0.1f + ani * 0.10F * par2; + + if(entity.isSneaking()){ + Tail1.setRotationPoint(-4F, 10F, 3F); + } + } + + } +} \ No newline at end of file diff --git a/src/main/java/noppes/npcs/client/model/part/tails/ModelRodentTail.java b/src/main/java/noppes/npcs/client/model/part/tails/ModelRodentTail.java new file mode 100644 index 000000000..98c3a1e3c --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/tails/ModelRodentTail.java @@ -0,0 +1,32 @@ +package noppes.npcs.client.model.part.tails; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import noppes.npcs.client.model.ModelMPM; + +public class ModelRodentTail extends ModelRenderer { + ModelRenderer Shape1; + ModelRenderer Shape2; + + public ModelRodentTail(ModelMPM base) { + super(base); + Shape1 = new ModelRenderer(base, 0, 0); + Shape1.addBox(-0.5333334F, -0.4666667F, -1F, 1, 1, 6); + Shape1.setRotationPoint(0F, 0F, 2F); + setRotation(Shape1, -0.9294653F, 0F, 0F); + addChild(Shape1); + + Shape2 = new ModelRenderer(base, 1, 1); + Shape2.addBox(-0.5F, -0.1666667F, 1F, 1, 1, 5); + Shape2.setRotationPoint(0F, 3F, 4F); + setRotation(Shape2, -0.4833219F, 0F, 0F); + addChild(Shape2); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } +} diff --git a/src/main/java/noppes/npcs/client/model/part/tails/ModelTailFin.java b/src/main/java/noppes/npcs/client/model/part/tails/ModelTailFin.java new file mode 100644 index 000000000..b6d5f7def --- /dev/null +++ b/src/main/java/noppes/npcs/client/model/part/tails/ModelTailFin.java @@ -0,0 +1,44 @@ +package noppes.npcs.client.model.part.tails; + +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; +import noppes.npcs.client.model.ModelMPM; + +public class ModelTailFin extends ModelRenderer { + + public ModelTailFin(ModelMPM base) { + super(base); + ModelRenderer Shape1 = new ModelRenderer(base, 0, 0); + Shape1.addBox(-2F, -2F, -2F, 3, 3, 8); + Shape1.setRotationPoint(0.5F, 0F, 1F); + setRotation(Shape1, -0.669215F, 0F, 0F); + addChild(Shape1); + + ModelRenderer Shape2 = new ModelRenderer(base, 2, 2); + Shape2.addBox(-1F, -1F, 1F, 3, 2, 6); + Shape2.setRotationPoint(-0.5F, 3F, 4.5F); + setRotation(Shape2, -0.2602503F, 0F, 0F); + addChild(Shape2); + + ModelRenderer Shape3 = new ModelRenderer(base, 0, 11); + Shape3.addBox(-1F, -1F, -1F, 3, 1, 6); + Shape3.setRotationPoint(0.5F, 5F, 12F); + setRotation(Shape3, 0F, 1.07818F, 0F); + addChild(Shape3); + + ModelRenderer Shape4 = new ModelRenderer(base, 0, 11); + Shape4.mirror = true; + Shape4.addBox(-2F, 0F, -1F, 3, 1, 6); + Shape4.setRotationPoint(-0.5F, 4F, 12F); + setRotation(Shape4, 0F, -1.003822F, 0F); + addChild(Shape4); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + +} diff --git a/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java b/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java index 3d390b075..87a322c92 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderCustomNpc.java @@ -10,6 +10,7 @@ import net.minecraft.entity.EntityList; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import noppes.npcs.client.model.ModelMPM; +import noppes.npcs.client.model.ModelMPM64; import noppes.npcs.client.model.util.ModelRenderPassHelper; import noppes.npcs.controllers.PixelmonHelper; import noppes.npcs.entity.EntityCustomNpc; @@ -23,11 +24,15 @@ public class RenderCustomNpc extends RenderNPCHumanMale{ private EntityLivingBase entity; private ModelRenderPassHelper renderpass = new ModelRenderPassHelper(); - + public RenderCustomNpc() { super(new ModelMPM(0), new ModelMPM(1), new ModelMPM(0.5f)); } - + + public RenderCustomNpc(int i) { + super(new ModelMPM64(0), new ModelMPM64(1), new ModelMPM64(0.5f)); + } + @Override public void renderPlayer(EntityNPCInterface npcInterface, double d, double d1, double d2, float f, float f1){ EntityCustomNpc npc = (EntityCustomNpc) npcInterface; diff --git a/src/main/java/noppes/npcs/entity/EntityNPC64x64.java b/src/main/java/noppes/npcs/entity/EntityNPC64x64.java new file mode 100644 index 000000000..894871b03 --- /dev/null +++ b/src/main/java/noppes/npcs/entity/EntityNPC64x64.java @@ -0,0 +1,18 @@ +package noppes.npcs.entity; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; +import noppes.npcs.CustomNpcs; +import noppes.npcs.ModelData; +import noppes.npcs.ModelPartData; +import noppes.npcs.client.EntityUtil; + +public class EntityNPC64x64 extends EntityCustomNpc{ + + public EntityNPC64x64(World world) { + super(world); + display.setSkinTexture("customnpcs:textures/entity/humanmale/Steve64x32.png"); + } +} diff --git a/src/main/java/noppes/npcs/items/ItemNpcWeaponInterface.java b/src/main/java/noppes/npcs/items/ItemNpcWeaponInterface.java index 06317e83f..07744e9c3 100644 --- a/src/main/java/noppes/npcs/items/ItemNpcWeaponInterface.java +++ b/src/main/java/noppes/npcs/items/ItemNpcWeaponInterface.java @@ -21,6 +21,7 @@ public class ItemNpcWeaponInterface extends ItemSword implements ItemRenderInter CustomNpcs.proxy.registerItem(this); setCreativeTab(CustomItems.tabWeapon); } + public void renderSpecial(){ GL11.glScalef(0.66f, 0.66f,0.66f); GL11.glTranslatef(0.16f, 0.26f, 0.06f); diff --git a/src/main/resources/assets/customnpcs/lang/en_US.lang b/src/main/resources/assets/customnpcs/lang/en_US.lang index bed7f8ecc..56d3a0c7d 100644 --- a/src/main/resources/assets/customnpcs/lang/en_US.lang +++ b/src/main/resources/assets/customnpcs/lang/en_US.lang @@ -126,6 +126,9 @@ remote.freeze=Freeze NPCs spawner.entities=Entities spawner.clones=Clones +spawner.clones2=Clones 2 +spawner.clones3=Clones 3 +spawner.clones4=Clones 4 spawner.mobspawner=MobSpawner spawner.mount=Mount by spawner.mountplayer=Player mounts diff --git a/src/main/resources/assets/customnpcs/textures/cloak/BugTracker.png b/src/main/resources/assets/customnpcs/textures/cloak/BugTracker.png new file mode 100644 index 000000000..ccfaceac9 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/BugTracker.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Cobalt.png b/src/main/resources/assets/customnpcs/textures/cloak/Cobalt.png new file mode 100644 index 000000000..639e6b151 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Cobalt.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Black cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Black cape.png new file mode 100644 index 000000000..7435f5630 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Black cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Blue cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Blue cape.png new file mode 100644 index 000000000..36835f010 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Blue cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Brown cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Brown cape.png new file mode 100644 index 000000000..d645c37c9 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Brown cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Dark Grey cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Dark Grey cape.png new file mode 100644 index 000000000..473b71e5d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Dark Grey cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Dark Red cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Dark Red cape.png new file mode 100644 index 000000000..6fa909df5 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Dark Red cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Gold cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Gold cape.png new file mode 100644 index 000000000..9925678ef Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Gold cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Grey cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Grey cape.png new file mode 100644 index 000000000..964736009 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Grey cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Lavender cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Lavender cape.png new file mode 100644 index 000000000..26140e6b9 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Lavender cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Light Brown cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Light Brown cape.png new file mode 100644 index 000000000..b471a1106 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Light Brown cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Light Yellow cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Light Yellow cape.png new file mode 100644 index 000000000..850aadc42 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Light Yellow cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Light green cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Light green cape.png new file mode 100644 index 000000000..c7affa5a8 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Light green cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Orange cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Orange cape.png new file mode 100644 index 000000000..ad415c3e4 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Orange cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Pink cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Pink cape.png new file mode 100644 index 000000000..b05d7d6be Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Pink cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Red cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Red cape.png new file mode 100644 index 000000000..40cd6204a Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Red cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/White cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/White cape.png new file mode 100644 index 000000000..579d732bc Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/White cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Yellow cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Yellow cape.png new file mode 100644 index 000000000..837643841 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Color Capes/Yellow cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/CowCape.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/CowCape.png new file mode 100644 index 000000000..1b2399996 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/CowCape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/SheepCape.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/SheepCape.png new file mode 100644 index 000000000..c8e811970 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/SheepCape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/ShroomCape.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/ShroomCape.png new file mode 100644 index 000000000..881572963 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/ShroomCape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/SlimeCape.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/SlimeCape.png new file mode 100644 index 000000000..7ac832cd5 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/SlimeCape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/aura.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/aura.png new file mode 100644 index 000000000..94f6c840c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/aura.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/dragoncape.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/dragoncape.png new file mode 100644 index 000000000..1c8c00ba1 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/dragoncape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/eagle.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/eagle.png new file mode 100644 index 000000000..9583d1d9c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/eagle.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/enchant.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/enchant.png new file mode 100644 index 000000000..ab0336a01 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/enchant.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/heat.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/heat.png new file mode 100644 index 000000000..4ab2b0799 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/heat.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/magma_cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/magma_cape.png new file mode 100644 index 000000000..f6888a153 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/magma_cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/neon.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/neon.png new file mode 100644 index 000000000..b40a35ba9 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/neon.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/ripper.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/ripper.png new file mode 100644 index 000000000..e56a8a460 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/ripper.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Created/skeleton.png b/src/main/resources/assets/customnpcs/textures/cloak/Created/skeleton.png new file mode 100644 index 000000000..181aa95aa Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Created/skeleton.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierI.png b/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierI.png new file mode 100644 index 000000000..72b38e01b Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierI.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierII.png b/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierII.png new file mode 100644 index 000000000..95a5d0943 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierII.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierIII.png b/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierIII.png new file mode 100644 index 000000000..48c892d92 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierIII.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierIV.png b/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierIV.png new file mode 100644 index 000000000..db67bdab6 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Daybreak/TierIV.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Ender Cloak.png b/src/main/resources/assets/customnpcs/textures/cloak/Ender Cloak.png new file mode 100644 index 000000000..f78ef5754 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Ender Cloak.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Angel.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Angel.png new file mode 100644 index 000000000..0bd73c2ec Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Angel.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Black.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Black.png new file mode 100644 index 000000000..0cd22c2e3 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Black.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Blood.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Blood.png new file mode 100644 index 000000000..ad579cdc0 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Blood.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Flame.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Flame.png new file mode 100644 index 000000000..9370eb3d5 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Flame.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/GoldSwirl.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/GoldSwirl.png new file mode 100644 index 000000000..133143b4f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/GoldSwirl.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Key.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Key.png new file mode 100644 index 000000000..7df45845c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Key.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Moon.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Moon.png new file mode 100644 index 000000000..d1498700f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Moon.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Nightmare.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Nightmare.png new file mode 100644 index 000000000..92872b242 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Nightmare.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Pain.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Pain.png new file mode 100644 index 000000000..32b5bbad1 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Pain.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/PinkSwirl.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/PinkSwirl.png new file mode 100644 index 000000000..5bc9a9f2d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/PinkSwirl.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Pool.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Pool.png new file mode 100644 index 000000000..718f9a83f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Pool.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Pumpkin.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Pumpkin.png new file mode 100644 index 000000000..a16c346f5 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Pumpkin.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Purple.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Purple.png new file mode 100644 index 000000000..77c2cb44f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Purple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Rainbow.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Rainbow.png new file mode 100644 index 000000000..e1a9f63a3 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Rainbow.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Red.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Red.png new file mode 100644 index 000000000..c88505278 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Red.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/RedSwirl.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/RedSwirl.png new file mode 100644 index 000000000..9ef6315fc Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/RedSwirl.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Redstone.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Redstone.png new file mode 100644 index 000000000..b03cec6cc Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Redstone.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Skull.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Skull.png new file mode 100644 index 000000000..fed7f0030 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Skull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Slaxer.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Slaxer.png new file mode 100644 index 000000000..321340571 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Slaxer.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Sunsent.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Sunsent.png new file mode 100644 index 000000000..5c4a21901 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Sunsent.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Vines.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Vines.png new file mode 100644 index 000000000..ddc983841 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Vines.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Waves.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Waves.png new file mode 100644 index 000000000..99972d2c0 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Waves.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Whisperer.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Whisperer.png new file mode 100644 index 000000000..99dd4d078 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Whisperer.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/WhispererBlack.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/WhispererBlack.png new file mode 100644 index 000000000..2a666d61a Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/WhispererBlack.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/WhispererRed.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/WhispererRed.png new file mode 100644 index 000000000..58d2e994a Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/WhispererRed.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Extras/Wolf.png b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Wolf.png new file mode 100644 index 000000000..1241688fc Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Extras/Wolf.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/ColiMaster.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/ColiMaster.png new file mode 100644 index 000000000..03167a852 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/ColiMaster.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/ColiTrain.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/ColiTrain.png new file mode 100644 index 000000000..60b419258 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/ColiTrain.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Daybreak.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Daybreak.png new file mode 100644 index 000000000..72b38e01b Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Daybreak.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Markus.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Markus.png new file mode 100644 index 000000000..a1d7a3f6e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Markus.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/PotelMaster.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/PotelMaster.png new file mode 100644 index 000000000..b861222e9 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/PotelMaster.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/PotelTrain.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/PotelTrain.png new file mode 100644 index 000000000..fc9c8aa2d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/PotelTrain.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Radiance.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Radiance.png new file mode 100644 index 000000000..d431209cd Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Radiance.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/RevDaybreak.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/RevDaybreak.png new file mode 100644 index 000000000..d32009d5d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/RevDaybreak.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/RevDaybreak2.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/RevDaybreak2.png new file mode 100644 index 000000000..d0a5f6356 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/RevDaybreak2.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/RevDaybreak2Star.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/RevDaybreak2Star.png new file mode 100644 index 000000000..9a1b9cdfa Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/RevDaybreak2Star.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/SavMaster.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/SavMaster.png new file mode 100644 index 000000000..8e77436d0 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/SavMaster.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/SavTrain.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/SavTrain.png new file mode 100644 index 000000000..5ba731d22 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/SavTrain.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/TheTierV.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/TheTierV.png new file mode 100644 index 000000000..00a832a08 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/TheTierV.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Theives.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Theives.png new file mode 100644 index 000000000..25edf3af5 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Theives.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Ultramarine.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Ultramarine.png new file mode 100644 index 000000000..5f9d8182a Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/Ultramarine.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererBlack.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererBlack.png new file mode 100644 index 000000000..7032a67d9 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererBlack.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererGrey.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererGrey.png new file mode 100644 index 000000000..869dbf813 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererGrey.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererRed.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererRed.png new file mode 100644 index 000000000..dcd3c2a5d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererRed.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererRedWhite.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererRedWhite.png new file mode 100644 index 000000000..edd2fcb4e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererRedWhite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererV.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererV.png new file mode 100644 index 000000000..7a67bbf93 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererV.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererWhite.png b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererWhite.png new file mode 100644 index 000000000..190e0016b Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Guilds/WhispererWhite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Imperial Legion Cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Imperial Legion Cape.png new file mode 100644 index 000000000..69ab98d6e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Imperial Legion Cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/JulianClark.png b/src/main/resources/assets/customnpcs/textures/cloak/JulianClark.png new file mode 100644 index 000000000..949a966d5 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/JulianClark.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/NewYears.png b/src/main/resources/assets/customnpcs/textures/cloak/NewYears.png new file mode 100644 index 000000000..e4e42317b Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/NewYears.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/RaggedBlue.png b/src/main/resources/assets/customnpcs/textures/cloak/RaggedBlue.png new file mode 100644 index 000000000..fda282903 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/RaggedBlue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/RaggedDarkBlue.png b/src/main/resources/assets/customnpcs/textures/cloak/RaggedDarkBlue.png new file mode 100644 index 000000000..8d674d335 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/RaggedDarkBlue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/RaggedDarkPurple.png b/src/main/resources/assets/customnpcs/textures/cloak/RaggedDarkPurple.png new file mode 100644 index 000000000..128740951 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/RaggedDarkPurple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/RaggedDarkRed.png b/src/main/resources/assets/customnpcs/textures/cloak/RaggedDarkRed.png new file mode 100644 index 000000000..7327cfe57 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/RaggedDarkRed.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/RaggedGreen.png b/src/main/resources/assets/customnpcs/textures/cloak/RaggedGreen.png new file mode 100644 index 000000000..f4cc949e1 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/RaggedGreen.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/RaggedRed.png b/src/main/resources/assets/customnpcs/textures/cloak/RaggedRed.png new file mode 100644 index 000000000..5675e0046 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/RaggedRed.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Realms.png b/src/main/resources/assets/customnpcs/textures/cloak/Realms.png new file mode 100644 index 000000000..0dae4b22d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Realms.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Royal Guard Cape.png b/src/main/resources/assets/customnpcs/textures/cloak/Royal Guard Cape.png new file mode 100644 index 000000000..d54c9d0ef Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Royal Guard Cape.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Scrolls.png b/src/main/resources/assets/customnpcs/textures/cloak/Scrolls.png new file mode 100644 index 000000000..775425e76 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Scrolls.png differ diff --git a/src/main/resources/assets/customnpcs/textures/cloak/Witches Cloak.png b/src/main/resources/assets/customnpcs/textures/cloak/Witches Cloak.png new file mode 100644 index 000000000..819646518 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/cloak/Witches Cloak.png differ diff --git a/src/main/resources/assets/customnpcs/textures/gui/menubgold.png b/src/main/resources/assets/customnpcs/textures/gui/menubgold.png new file mode 100644 index 000000000..84a2dd38d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/gui/menubgold.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_Orange.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_Orange.png new file mode 100644 index 000000000..d7db59eed Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_Orange.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_eyes.png new file mode 100644 index 000000000..e99e79eb1 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_pink.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_pink.png new file mode 100644 index 000000000..8d1720631 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_pink.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_teal.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_teal.png new file mode 100644 index 000000000..adf184357 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/TecZombie_teal.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/bluecontrol.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/bluecontrol.png new file mode 100644 index 000000000..e48e9e99f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/bluecontrol.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/orangecontrol.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/orangecontrol.png new file mode 100644 index 000000000..90805ccc8 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/orangecontrol.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/pinkcontrol.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/pinkcontrol.png new file mode 100644 index 000000000..536b3f3b7 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/pinkcontrol.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/redcontrol.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/redcontrol.png new file mode 100644 index 000000000..7b83108ab Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/redcontrol.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/tealcontrol.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/tealcontrol.png new file mode 100644 index 000000000..048d6cd87 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/tealcontrol.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/turquiosecontrol.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/turquiosecontrol.png new file mode 100644 index 000000000..ded3ba0d4 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/turquiosecontrol.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Control/yellowcontrol.png b/src/main/resources/assets/customnpcs/textures/overlays/Control/yellowcontrol.png new file mode 100644 index 000000000..e5be40cde Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Control/yellowcontrol.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/blue.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/blue.png new file mode 100644 index 000000000..b478e8f3c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/blue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/darkblue.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/darkblue.png new file mode 100644 index 000000000..1b8609d47 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/darkblue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/ender_eyes.png new file mode 100644 index 000000000..080440287 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/green.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/green.png new file mode 100644 index 000000000..cc1f5cfbe Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/green.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/lightpurple.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/lightpurple.png new file mode 100644 index 000000000..38a056796 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/lightpurple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/old_ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/old_ender_eyes.png new file mode 100644 index 000000000..6f478110f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/old_ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/orange.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/orange.png new file mode 100644 index 000000000..7a216d3a3 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/orange.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/pink.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/pink.png new file mode 100644 index 000000000..8a6884a08 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/pink.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/purp.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/purp.png new file mode 100644 index 000000000..4d014d80c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/purp.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/purple.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/purple.png new file mode 100644 index 000000000..405498898 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/purple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/red.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/red.png new file mode 100644 index 000000000..7f1ef04f3 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/red.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/teal.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/teal.png new file mode 100644 index 000000000..cf868b416 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/teal.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/turqoise.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/turqoise.png new file mode 100644 index 000000000..0cfdcc1e7 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/turqoise.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/white.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/white.png new file mode 100644 index 000000000..bb68a1ed3 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/white.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/white_cry.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/white_cry.png new file mode 100644 index 000000000..6ad8dac17 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/white_cry.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Eyes/yellow.png b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/yellow.png new file mode 100644 index 000000000..0fc8fc0a0 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Eyes/yellow.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/blueFull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/blueFull.png new file mode 100644 index 000000000..867606a97 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/blueFull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/darkblueFull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/darkblueFull.png new file mode 100644 index 000000000..bfaf2363d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/darkblueFull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/greenFull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/greenFull.png new file mode 100644 index 000000000..d5e8e9a19 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/greenFull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/orangeFull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/orangeFull.png new file mode 100644 index 000000000..d7ae0532f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/orangeFull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/pinkfull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/pinkfull.png new file mode 100644 index 000000000..582eb51a2 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/pinkfull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/purpleFull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/purpleFull.png new file mode 100644 index 000000000..e9320e94d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/purpleFull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/redFull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/redFull.png new file mode 100644 index 000000000..d04ea57a2 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/redFull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/tealFull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/tealFull.png new file mode 100644 index 000000000..aab8ca3b5 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/tealFull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/turquiseFull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/turquiseFull.png new file mode 100644 index 000000000..822090aeb Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/turquiseFull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullControl/yellowFull.png b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/yellowFull.png new file mode 100644 index 000000000..e0efca221 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullControl/yellowFull.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/blue.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/blue.png new file mode 100644 index 000000000..ea03dd29f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/blue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/darkblue.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/darkblue.png new file mode 100644 index 000000000..cf982a304 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/darkblue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/ender_eyes.png new file mode 100644 index 000000000..7229b934f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/green.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/green.png new file mode 100644 index 000000000..cc75c11ab Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/green.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/lightpurple.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/lightpurple.png new file mode 100644 index 000000000..31d4a3c03 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/lightpurple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/lime.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/lime.png new file mode 100644 index 000000000..1a9d5532b Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/lime.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/old_ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/old_ender_eyes.png new file mode 100644 index 000000000..05d9386be Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/old_ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/orange.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/orange.png new file mode 100644 index 000000000..ea69afbdd Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/orange.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/pink.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/pink.png new file mode 100644 index 000000000..8afdba4f7 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/pink.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/purp.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/purp.png new file mode 100644 index 000000000..f4aaf9e68 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/purp.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/purple.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/purple.png new file mode 100644 index 000000000..71a8f15c1 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/purple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/red.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/red.png new file mode 100644 index 000000000..4a4444c18 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/red.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/teal.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/teal.png new file mode 100644 index 000000000..3dc1be55e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/teal.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/turqoise.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/turqoise.png new file mode 100644 index 000000000..5c702d6f5 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/turqoise.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/turquiose.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/turquiose.png new file mode 100644 index 000000000..858ed9b0e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/turquiose.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/white.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/white.png new file mode 100644 index 000000000..2a4e76bfd Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/white.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/white_cry.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/white_cry.png new file mode 100644 index 000000000..51ad79443 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/white_cry.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/yellow.png b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/yellow.png new file mode 100644 index 000000000..11639d80d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullEyes/yellow.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/blue.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/blue.png new file mode 100644 index 000000000..41d9d2835 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/blue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/darkblue.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/darkblue.png new file mode 100644 index 000000000..89b360e62 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/darkblue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/ender_eyes.png new file mode 100644 index 000000000..55a131bd1 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/green.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/green.png new file mode 100644 index 000000000..9d4dd62ae Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/green.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/lightpurple.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/lightpurple.png new file mode 100644 index 000000000..377404a2a Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/lightpurple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/old_ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/old_ender_eyes.png new file mode 100644 index 000000000..f80f3ccdb Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/old_ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/orange.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/orange.png new file mode 100644 index 000000000..e87e12757 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/orange.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/pink.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/pink.png new file mode 100644 index 000000000..501c43d8c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/pink.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/purp.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/purp.png new file mode 100644 index 000000000..8bd888567 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/purp.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/purple.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/purple.png new file mode 100644 index 000000000..14366c826 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/purple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/red.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/red.png new file mode 100644 index 000000000..04740b74f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/red.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/teal.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/teal.png new file mode 100644 index 000000000..01ffd6a95 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/teal.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/turqoise.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/turqoise.png new file mode 100644 index 000000000..bc51646e5 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/turqoise.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/white.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/white.png new file mode 100644 index 000000000..70a53b808 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/white.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/white_cry.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/white_cry.png new file mode 100644 index 000000000..4eedc1a73 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/white_cry.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/yellow.png b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/yellow.png new file mode 100644 index 000000000..3281349d9 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullHigh/yellow.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/blue.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/blue.png new file mode 100644 index 000000000..fed5caf56 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/blue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/darkblue.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/darkblue.png new file mode 100644 index 000000000..81956cc26 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/darkblue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/ender_eyes.png new file mode 100644 index 000000000..bbc018a12 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/gone.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/gone.png new file mode 100644 index 000000000..35bf35702 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/gone.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/green.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/green.png new file mode 100644 index 000000000..c72360429 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/green.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/lightpurple.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/lightpurple.png new file mode 100644 index 000000000..3823e1900 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/lightpurple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/lime.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/lime.png new file mode 100644 index 000000000..8d0d2ae91 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/lime.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/old_ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/old_ender_eyes.png new file mode 100644 index 000000000..ca2c0a521 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/old_ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/orange.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/orange.png new file mode 100644 index 000000000..0b83c2792 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/orange.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/pink.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/pink.png new file mode 100644 index 000000000..1aa00d627 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/pink.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/purp.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/purp.png new file mode 100644 index 000000000..a8fea5ec2 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/purp.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/purple.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/purple.png new file mode 100644 index 000000000..bf2ce8588 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/purple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/red.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/red.png new file mode 100644 index 000000000..681b3255d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/red.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/redorange.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/redorange.png new file mode 100644 index 000000000..ad634dda7 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/redorange.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/teal.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/teal.png new file mode 100644 index 000000000..7e7c4d934 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/teal.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/turqoise.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/turqoise.png new file mode 100644 index 000000000..0bdf1972d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/turqoise.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/turquiose.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/turquiose.png new file mode 100644 index 000000000..1dd1f601d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/turquiose.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/white.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/white.png new file mode 100644 index 000000000..c716b6b4a Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/white.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/white_cry.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/white_cry.png new file mode 100644 index 000000000..7a86f0619 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/white_cry.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/FullLow/yellow.png b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/yellow.png new file mode 100644 index 000000000..fc7f0e63d Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/FullLow/yellow.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/blue.png b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/blue.png new file mode 100644 index 000000000..dee4768a2 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/blue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/fire.png b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/fire.png new file mode 100644 index 000000000..27d42f182 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/fire.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/green.png b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/green.png new file mode 100644 index 000000000..a46f3333e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/green.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/pink.png b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/pink.png new file mode 100644 index 000000000..e593a531e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/pink.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/purple.png b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/purple.png new file mode 100644 index 000000000..eec419ba1 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/purple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/red.png b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/red.png new file mode 100644 index 000000000..fc4ed784c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/red.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/white.png b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/white.png new file mode 100644 index 000000000..3be647529 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/white.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/yellow.png b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/yellow.png new file mode 100644 index 000000000..495db9f2a Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HandOverlay/yellow.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/blue.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/blue.png new file mode 100644 index 000000000..bc9a16569 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/blue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/darkblue.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/darkblue.png new file mode 100644 index 000000000..698805475 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/darkblue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/ender_eyes.png new file mode 100644 index 000000000..831e1d23b Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/green.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/green.png new file mode 100644 index 000000000..a7055f831 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/green.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/lightpurple.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/lightpurple.png new file mode 100644 index 000000000..6f18d283c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/lightpurple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/old_ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/old_ender_eyes.png new file mode 100644 index 000000000..f36edc020 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/old_ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/orange.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/orange.png new file mode 100644 index 000000000..b5ce0f707 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/orange.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/pink.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/pink.png new file mode 100644 index 000000000..a0b5f532e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/pink.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/purp.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/purp.png new file mode 100644 index 000000000..6a081c9a6 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/purp.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/purple.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/purple.png new file mode 100644 index 000000000..168f31ca8 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/purple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/red.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/red.png new file mode 100644 index 000000000..cf3c7f049 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/red.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/teal.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/teal.png new file mode 100644 index 000000000..f80b16e45 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/teal.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/turqoise.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/turqoise.png new file mode 100644 index 000000000..78502ef80 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/turqoise.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/white.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/white.png new file mode 100644 index 000000000..61966cd6b Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/white.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/white_cry.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/white_cry.png new file mode 100644 index 000000000..d79cde1fb Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/white_cry.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/yellow.png b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/yellow.png new file mode 100644 index 000000000..c2d88316e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/HighEyes/yellow.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Ignite/BlueIgnite.png b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/BlueIgnite.png new file mode 100644 index 000000000..e61a88fbc Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/BlueIgnite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Ignite/OrangeIgnite.png b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/OrangeIgnite.png new file mode 100644 index 000000000..0bc740524 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/OrangeIgnite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Ignite/PinkIgnite.png b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/PinkIgnite.png new file mode 100644 index 000000000..22fc46f37 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/PinkIgnite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Ignite/PurpleIgnite.png b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/PurpleIgnite.png new file mode 100644 index 000000000..eda8059d4 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/PurpleIgnite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Ignite/RedIgnite.png b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/RedIgnite.png new file mode 100644 index 000000000..67652f8f7 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/RedIgnite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Ignite/TealIgnite.png b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/TealIgnite.png new file mode 100644 index 000000000..4f1698ef9 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/TealIgnite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Ignite/TurquioseIgnite.png b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/TurquioseIgnite.png new file mode 100644 index 000000000..b555a70e2 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/TurquioseIgnite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Ignite/WhiteIgnite.png b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/WhiteIgnite.png new file mode 100644 index 000000000..2290d469a Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/WhiteIgnite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Ignite/YellowIgnite.png b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/YellowIgnite.png new file mode 100644 index 000000000..7361fb132 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Ignite/YellowIgnite.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/blue.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/blue.png new file mode 100644 index 000000000..8b5252269 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/blue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/darkblue.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/darkblue.png new file mode 100644 index 000000000..956ca174e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/darkblue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/ender_eyes.png new file mode 100644 index 000000000..da3831673 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/green.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/green.png new file mode 100644 index 000000000..9709dcb10 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/green.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/lightpurple.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/lightpurple.png new file mode 100644 index 000000000..6e21506fa Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/lightpurple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/old_ender_eyes.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/old_ender_eyes.png new file mode 100644 index 000000000..94a415504 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/old_ender_eyes.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/orange.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/orange.png new file mode 100644 index 000000000..0b1c79801 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/orange.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/pink.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/pink.png new file mode 100644 index 000000000..00133aa24 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/pink.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/purp.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/purp.png new file mode 100644 index 000000000..56116344f Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/purp.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/purple.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/purple.png new file mode 100644 index 000000000..2ccf87d18 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/purple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/red.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/red.png new file mode 100644 index 000000000..f80c6f67e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/red.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/teal.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/teal.png new file mode 100644 index 000000000..43aec1f29 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/teal.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/tuquiose.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/tuquiose.png new file mode 100644 index 000000000..f706aeb46 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/tuquiose.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/turqoise.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/turqoise.png new file mode 100644 index 000000000..bcdbbb5a2 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/turqoise.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/white.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/white.png new file mode 100644 index 000000000..3c846eb2c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/white.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/white_cry.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/white_cry.png new file mode 100644 index 000000000..509d17a6e Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/white_cry.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/whitecry.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/whitecry.png new file mode 100644 index 000000000..a9cd4ad2c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/whitecry.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/yellow.png b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/yellow.png new file mode 100644 index 000000000..85ff19dbb Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/LowEyes/yellow.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/Blue.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Blue.png new file mode 100644 index 000000000..e70ad69c2 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Blue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/Green.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Green.png new file mode 100644 index 000000000..25c42bd31 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Green.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/Lime.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Lime.png new file mode 100644 index 000000000..ed0e185ea Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Lime.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/Orange.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Orange.png new file mode 100644 index 000000000..22a9ac883 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Orange.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/Pink.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Pink.png new file mode 100644 index 000000000..5b57a1247 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Pink.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/Purple.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Purple.png new file mode 100644 index 000000000..99e4cf2bc Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Purple.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/Red.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Red.png new file mode 100644 index 000000000..fea5a0ffe Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Red.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/Teal.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Teal.png new file mode 100644 index 000000000..821157f54 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Teal.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/Yellow.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Yellow.png new file mode 100644 index 000000000..763a47696 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/Yellow.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/transform.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/transform.png new file mode 100644 index 000000000..c1c2ea91a Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/transform.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/Magic/white.png b/src/main/resources/assets/customnpcs/textures/overlays/Magic/white.png new file mode 100644 index 000000000..cd3743f46 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/Magic/white.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/blue.png b/src/main/resources/assets/customnpcs/textures/overlays/blue.png new file mode 100644 index 000000000..512dd4c0c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/blue.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/gone.png b/src/main/resources/assets/customnpcs/textures/overlays/gone.png new file mode 100644 index 000000000..35bf35702 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/gone.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/green.png b/src/main/resources/assets/customnpcs/textures/overlays/green.png new file mode 100644 index 000000000..6725e50c1 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/green.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/purp.png b/src/main/resources/assets/customnpcs/textures/overlays/purp.png new file mode 100644 index 000000000..4d014d80c Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/purp.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/taken.png b/src/main/resources/assets/customnpcs/textures/overlays/taken.png new file mode 100644 index 000000000..508a51534 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/taken.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/transform.png b/src/main/resources/assets/customnpcs/textures/overlays/transform.png new file mode 100644 index 000000000..0bbd0cee2 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/transform.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/white.png b/src/main/resources/assets/customnpcs/textures/overlays/white.png new file mode 100644 index 000000000..4451d49c4 Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/white.png differ diff --git a/src/main/resources/assets/customnpcs/textures/overlays/yellowcontrol.png b/src/main/resources/assets/customnpcs/textures/overlays/yellowcontrol.png new file mode 100644 index 000000000..e5be40cde Binary files /dev/null and b/src/main/resources/assets/customnpcs/textures/overlays/yellowcontrol.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/fin/fin1.png b/src/main/resources/assets/moreplayermodels/textures/fin/fin1.png index cc5c92c54..580504f45 100644 Binary files a/src/main/resources/assets/moreplayermodels/textures/fin/fin1.png and b/src/main/resources/assets/moreplayermodels/textures/fin/fin1.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/fin/fin2.png b/src/main/resources/assets/moreplayermodels/textures/fin/fin2.png new file mode 100644 index 000000000..2173a0886 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/fin/fin2.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/fin/fin3.png b/src/main/resources/assets/moreplayermodels/textures/fin/fin3.png new file mode 100644 index 000000000..045242495 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/fin/fin3.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/fin/fin4.png b/src/main/resources/assets/moreplayermodels/textures/fin/fin4.png new file mode 100644 index 000000000..41ed97bb5 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/fin/fin4.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/fin/fin5.png b/src/main/resources/assets/moreplayermodels/textures/fin/fin5.png new file mode 100644 index 000000000..8947cad17 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/fin/fin5.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/fin/fin6.png b/src/main/resources/assets/moreplayermodels/textures/fin/fin6.png new file mode 100644 index 000000000..288b22a1a Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/fin/fin6.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/hair/mohawk2.png b/src/main/resources/assets/moreplayermodels/textures/hair/mohawk2.png new file mode 100644 index 000000000..6467016c1 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/hair/mohawk2.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/hair/mohawk3.png b/src/main/resources/assets/moreplayermodels/textures/hair/mohawk3.png new file mode 100644 index 000000000..19f3c59ba Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/hair/mohawk3.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/horns/antennas.png b/src/main/resources/assets/moreplayermodels/textures/horns/antennas.png new file mode 100644 index 000000000..87fe86248 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/horns/antennas.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/horns/antlers.png b/src/main/resources/assets/moreplayermodels/textures/horns/antlers.png new file mode 100644 index 000000000..9f1dc0406 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/horns/antlers.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/horns/bull.png b/src/main/resources/assets/moreplayermodels/textures/horns/bull.png new file mode 100644 index 000000000..b2bf127de Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/horns/bull.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/skirt/skirt1.png b/src/main/resources/assets/moreplayermodels/textures/skirt/skirt1.png new file mode 100644 index 000000000..021c6653d Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/skirt/skirt1.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/snout/beak1.png b/src/main/resources/assets/moreplayermodels/textures/snout/beak1.png new file mode 100644 index 000000000..5817706a3 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/snout/beak1.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/tail/fin1.png b/src/main/resources/assets/moreplayermodels/textures/tail/fin1.png new file mode 100644 index 000000000..39eaf3b60 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/tail/fin1.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/tail/rodent1.png b/src/main/resources/assets/moreplayermodels/textures/tail/rodent1.png new file mode 100644 index 000000000..de3b6a289 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/tail/rodent1.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing1.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing1.png index e9bce91ac..2dc8e3cca 100644 Binary files a/src/main/resources/assets/moreplayermodels/textures/wings/wing1.png and b/src/main/resources/assets/moreplayermodels/textures/wings/wing1.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing10.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing10.png new file mode 100644 index 000000000..561bb7ec9 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing10.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing11.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing11.png new file mode 100644 index 000000000..eb19442a6 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing11.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing12.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing12.png new file mode 100644 index 000000000..1278af655 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing12.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing13.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing13.png new file mode 100644 index 000000000..f95856911 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing13.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing2.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing2.png index 14f93cb99..3b745b8b7 100644 Binary files a/src/main/resources/assets/moreplayermodels/textures/wings/wing2.png and b/src/main/resources/assets/moreplayermodels/textures/wings/wing2.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing3.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing3.png index acfc37ffa..4328fc4b9 100644 Binary files a/src/main/resources/assets/moreplayermodels/textures/wings/wing3.png and b/src/main/resources/assets/moreplayermodels/textures/wings/wing3.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing4.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing4.png new file mode 100644 index 000000000..0df14321e Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing4.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing5.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing5.png new file mode 100644 index 000000000..0a446584c Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing5.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing6.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing6.png new file mode 100644 index 000000000..9bbdb6bc7 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing6.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing7.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing7.png new file mode 100644 index 000000000..ad147a0cf Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing7.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing8.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing8.png new file mode 100644 index 000000000..b0f39a303 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing8.png differ diff --git a/src/main/resources/assets/moreplayermodels/textures/wings/wing9.png b/src/main/resources/assets/moreplayermodels/textures/wings/wing9.png new file mode 100644 index 000000000..64c3193a8 Binary files /dev/null and b/src/main/resources/assets/moreplayermodels/textures/wings/wing9.png differ