From 78f524ced0ca4f359c4debf39bd8213c5ef32d60 Mon Sep 17 00:00:00 2001 From: Motschen Date: Sat, 3 Jul 2021 16:59:15 +0200 Subject: [PATCH] Nauticality 0.1.0 - 1.17 Release for ModFest 1.17! --- .gitignore | 25 +++ LICENSE | 21 ++ README.md | 0 build.gradle | 94 +++++++++ gradle.properties | 19 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59203 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 185 ++++++++++++++++++ gradlew.bat | 89 +++++++++ local_maven/midnightlib-0.2.4.jar | Bin 0 -> 99664 bytes settings.gradle | 10 + .../nauticality/NauticalityClient.java | 31 +++ .../nauticality/NauticalityMain.java | 81 ++++++++ .../midnightdust/nauticality/block/Algae.java | 53 +++++ .../nauticality/block/Cattail.java | 57 ++++++ .../nauticality/config/NauticalityConfig.java | 10 + .../nauticality/entity/GlowFishEntity.java | 27 +++ .../nauticality/entity/PirateEntity.java | 65 ++++++ .../nauticality/entity/SubmarineEntity.java | 84 ++++++++ .../entity/client/model/SubmarineModel.java | 93 +++++++++ .../renderer/EmissiveOverlayRenderer.java | 20 ++ .../client/renderer/GlowFishRenderer.java | 26 +++ .../client/renderer/PirateRenderer.java | 27 +++ .../client/renderer/SubmarineRenderer.java | 60 ++++++ .../nauticality/item/SubmarineItem.java | 112 +++++++++++ .../nauticality/mixin/BoatEntityAccessor.java | 13 ++ .../GenerationSettingsAccessorMixin.java | 24 +++ .../nauticality/mixin/MixinLivingEntity.java | 22 +++ .../world/NauticalityConfiguredFeatures.java | 33 ++++ .../world/NauticalityFeatures.java | 16 ++ .../world/NauticalityStructures.java | 28 +++ .../world/feature/FeatureInjector.java | 56 ++++++ .../world/feature/UnderwaterFeature.java | 45 +++++ .../feature/UnderwaterTallPlantFeature.java | 49 +++++ .../world/structure/PirateShipStructure.java | 76 +++++++ .../assets/nauticality/blockstates/algae.json | 10 + .../nauticality/blockstates/cattail.json | 10 + .../resources/assets/nauticality/icon.png | Bin 0 -> 45740 bytes .../assets/nauticality/lang/en_us.json | 17 ++ .../materialmaps/block/cattail.json | 14 ++ .../materialmaps/entity/glow_fish.json | 12 ++ .../materialmaps/entity/submarine.json | 12 ++ .../materialmaps/item/cattail.json | 2 + .../materialmaps/item/glow_fish_bucket.json | 3 + .../item/glow_fish_spawn_egg.json | 3 + .../nauticality/materials/cold_glow.json | 8 + .../nauticality/models/block/algae.json | 18 ++ .../models/block/cattail_bottom.json | 6 + .../nauticality/models/block/cattail_top.json | 6 + .../assets/nauticality/models/item/algae.json | 6 + .../nauticality/models/item/cattail.json | 6 + .../nauticality/models/item/eyepatch.json | 80 ++++++++ .../models/item/eyepatch_right.json | 75 +++++++ .../models/item/glow_fish_bucket.json | 6 + .../models/item/glow_fish_spawn_egg.json | 3 + .../models/item/pirate_spawn_egg.json | 3 + .../nauticality/models/item/submarine.json | 6 + .../shaders/material/cold_glow.frag | 12 ++ .../nauticality/textures/block/algae.png | Bin 0 -> 6064 bytes .../nauticality/textures/block/algae_g.png | Bin 0 -> 5914 bytes .../textures/block/cattail_bottom.png | Bin 0 -> 6289 bytes .../textures/block/cattail_top.png | Bin 0 -> 6351 bytes .../textures/entity/glow_fish/glow_fish.png | Bin 0 -> 6479 bytes .../glow_fish/glow_fish_emissive_layer.png | Bin 0 -> 6354 bytes .../textures/entity/illager/pirate.png | Bin 0 -> 9860 bytes .../textures/entity/submarine/submarine.png | Bin 0 -> 12247 bytes .../submarine/submarine_emissive_layer.png | Bin 0 -> 11605 bytes .../textures/item/glow_fish_bucket.png | Bin 0 -> 5568 bytes .../nauticality/textures/item/submarine.png | Bin 0 -> 5439 bytes .../nauticality/loot_tables/blocks/algae.json | 20 ++ .../loot_tables/blocks/cattail.json | 29 +++ .../loot_tables/entities/pirate.json | 39 ++++ .../data/nauticality/recipes/submarine.json | 26 +++ .../nauticality/structures/pirate_ship.nbt | Bin 0 -> 19456 bytes src/main/resources/fabric.mod.json | 46 +++++ src/main/resources/nauticality.mixins.json | 13 ++ 76 files changed, 2047 insertions(+) create mode 100755 .gitignore create mode 100755 LICENSE mode change 100644 => 100755 README.md create mode 100755 build.gradle create mode 100755 gradle.properties create mode 100755 gradle/wrapper/gradle-wrapper.jar create mode 100755 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100755 gradlew.bat create mode 100755 local_maven/midnightlib-0.2.4.jar create mode 100755 settings.gradle create mode 100755 src/main/java/eu/midnightdust/nauticality/NauticalityClient.java create mode 100755 src/main/java/eu/midnightdust/nauticality/NauticalityMain.java create mode 100755 src/main/java/eu/midnightdust/nauticality/block/Algae.java create mode 100755 src/main/java/eu/midnightdust/nauticality/block/Cattail.java create mode 100755 src/main/java/eu/midnightdust/nauticality/config/NauticalityConfig.java create mode 100755 src/main/java/eu/midnightdust/nauticality/entity/GlowFishEntity.java create mode 100755 src/main/java/eu/midnightdust/nauticality/entity/PirateEntity.java create mode 100755 src/main/java/eu/midnightdust/nauticality/entity/SubmarineEntity.java create mode 100755 src/main/java/eu/midnightdust/nauticality/entity/client/model/SubmarineModel.java create mode 100755 src/main/java/eu/midnightdust/nauticality/entity/client/renderer/EmissiveOverlayRenderer.java create mode 100755 src/main/java/eu/midnightdust/nauticality/entity/client/renderer/GlowFishRenderer.java create mode 100755 src/main/java/eu/midnightdust/nauticality/entity/client/renderer/PirateRenderer.java create mode 100755 src/main/java/eu/midnightdust/nauticality/entity/client/renderer/SubmarineRenderer.java create mode 100755 src/main/java/eu/midnightdust/nauticality/item/SubmarineItem.java create mode 100755 src/main/java/eu/midnightdust/nauticality/mixin/BoatEntityAccessor.java create mode 100755 src/main/java/eu/midnightdust/nauticality/mixin/GenerationSettingsAccessorMixin.java create mode 100755 src/main/java/eu/midnightdust/nauticality/mixin/MixinLivingEntity.java create mode 100755 src/main/java/eu/midnightdust/nauticality/world/NauticalityConfiguredFeatures.java create mode 100755 src/main/java/eu/midnightdust/nauticality/world/NauticalityFeatures.java create mode 100755 src/main/java/eu/midnightdust/nauticality/world/NauticalityStructures.java create mode 100755 src/main/java/eu/midnightdust/nauticality/world/feature/FeatureInjector.java create mode 100755 src/main/java/eu/midnightdust/nauticality/world/feature/UnderwaterFeature.java create mode 100755 src/main/java/eu/midnightdust/nauticality/world/feature/UnderwaterTallPlantFeature.java create mode 100755 src/main/java/eu/midnightdust/nauticality/world/structure/PirateShipStructure.java create mode 100755 src/main/resources/assets/nauticality/blockstates/algae.json create mode 100755 src/main/resources/assets/nauticality/blockstates/cattail.json create mode 100755 src/main/resources/assets/nauticality/icon.png create mode 100755 src/main/resources/assets/nauticality/lang/en_us.json create mode 100755 src/main/resources/assets/nauticality/materialmaps/block/cattail.json create mode 100755 src/main/resources/assets/nauticality/materialmaps/entity/glow_fish.json create mode 100755 src/main/resources/assets/nauticality/materialmaps/entity/submarine.json create mode 100755 src/main/resources/assets/nauticality/materialmaps/item/cattail.json create mode 100755 src/main/resources/assets/nauticality/materialmaps/item/glow_fish_bucket.json create mode 100755 src/main/resources/assets/nauticality/materialmaps/item/glow_fish_spawn_egg.json create mode 100755 src/main/resources/assets/nauticality/materials/cold_glow.json create mode 100755 src/main/resources/assets/nauticality/models/block/algae.json create mode 100755 src/main/resources/assets/nauticality/models/block/cattail_bottom.json create mode 100755 src/main/resources/assets/nauticality/models/block/cattail_top.json create mode 100755 src/main/resources/assets/nauticality/models/item/algae.json create mode 100755 src/main/resources/assets/nauticality/models/item/cattail.json create mode 100755 src/main/resources/assets/nauticality/models/item/eyepatch.json create mode 100755 src/main/resources/assets/nauticality/models/item/eyepatch_right.json create mode 100755 src/main/resources/assets/nauticality/models/item/glow_fish_bucket.json create mode 100755 src/main/resources/assets/nauticality/models/item/glow_fish_spawn_egg.json create mode 100755 src/main/resources/assets/nauticality/models/item/pirate_spawn_egg.json create mode 100755 src/main/resources/assets/nauticality/models/item/submarine.json create mode 100755 src/main/resources/assets/nauticality/shaders/material/cold_glow.frag create mode 100755 src/main/resources/assets/nauticality/textures/block/algae.png create mode 100755 src/main/resources/assets/nauticality/textures/block/algae_g.png create mode 100755 src/main/resources/assets/nauticality/textures/block/cattail_bottom.png create mode 100755 src/main/resources/assets/nauticality/textures/block/cattail_top.png create mode 100755 src/main/resources/assets/nauticality/textures/entity/glow_fish/glow_fish.png create mode 100755 src/main/resources/assets/nauticality/textures/entity/glow_fish/glow_fish_emissive_layer.png create mode 100755 src/main/resources/assets/nauticality/textures/entity/illager/pirate.png create mode 100755 src/main/resources/assets/nauticality/textures/entity/submarine/submarine.png create mode 100755 src/main/resources/assets/nauticality/textures/entity/submarine/submarine_emissive_layer.png create mode 100755 src/main/resources/assets/nauticality/textures/item/glow_fish_bucket.png create mode 100755 src/main/resources/assets/nauticality/textures/item/submarine.png create mode 100755 src/main/resources/data/nauticality/loot_tables/blocks/algae.json create mode 100755 src/main/resources/data/nauticality/loot_tables/blocks/cattail.json create mode 100755 src/main/resources/data/nauticality/loot_tables/entities/pirate.json create mode 100755 src/main/resources/data/nauticality/recipes/submarine.json create mode 100755 src/main/resources/data/nauticality/structures/pirate_ship.nbt create mode 100755 src/main/resources/fabric.mod.json create mode 100755 src/main/resources/nauticality.mixins.json diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..8dfbaea --- /dev/null +++ b/.gitignore @@ -0,0 +1,25 @@ +# gradle + +.gradle/ +build/ +out/ +classes/ + +# idea + +.idea/ +*.iml +*.ipr +*.iws + +# vscode + +.settings/ +.vscode/ +bin/ +.classpath +.project + +# fabric + +run/ diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..ea9ed68 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2020 MidnightDust + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/build.gradle b/build.gradle new file mode 100755 index 0000000..11b5681 --- /dev/null +++ b/build.gradle @@ -0,0 +1,94 @@ +plugins { + id 'fabric-loom' version '0.8-SNAPSHOT' + id 'maven-publish' +} + +sourceCompatibility = JavaVersion.VERSION_16 +targetCompatibility = JavaVersion.VERSION_16 + +archivesBaseName = project.archives_base_name +version = project.mod_version +group = project.maven_group + +minecraft { +} + +repositories { + maven { url "https://maven.blamejared.com" } + maven { url "https://maven.terraformersmc.com/releases" } + flatDir { + dirs 'local_maven' + } +} + +dependencies { + //to change the versions see the gradle.properties file + minecraft "com.mojang:minecraft:${project.minecraft_version}" + mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" + modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + + // Fabric API. This is technically optional, but you probably want it anyway. + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + + modImplementation ("com.terraformersmc:modmenu:${project.mod_menu_version}"){ + exclude module: "fabric-api" + } + + modImplementation "eu.midnightdust:midnightlib:${midnightlib_version}" + include "eu.midnightdust:midnightlib:${midnightlib_version}" +} + +processResources { + inputs.property "version", project.version + + filesMatching("fabric.mod.json") { + expand "version": project.version + } +} + +tasks.withType(JavaCompile).configureEach { + // ensure that the encoding is set to UTF-8, no matter what the system default is + // this fixes some edge cases with special characters not displaying correctly + // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html + // If Javadoc is generated, this must be specified in that task too. + it.options.encoding = "UTF-8" + + // Minecraft 1.17 (21w19a) upwards uses Java 16. + it.options.release = 16 +} + +java { + // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task + // if it is present. + // If you remove this line, sources will not be generated. + withSourcesJar() +} + +jar { + from("LICENSE") { + rename { "${it}_${project.archivesBaseName}"} + } +} + +// configure the maven publication +publishing { + publications { + mavenJava(MavenPublication) { + // add all the jars that should be included when publishing to maven + artifact(remapJar) { + builtBy remapJar + } + artifact(sourcesJar) { + builtBy remapSourcesJar + } + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + // Notice: This block does NOT have the same function as the block in the top level. + // The repositories here will be used for publishing your artifact, not for + // retrieving dependencies. + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100755 index 0000000..73c82e5 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,19 @@ +# Done to increase the memory available to gradle. +org.gradle.jvmargs=-Xmx2G + +# Fabric Properties + # check these on https://fabricmc.net/use + minecraft_version=1.17 + yarn_mappings=1.17+build.13 + loader_version=0.11.6 + +# Mod Properties + mod_version = 0.1.0 + maven_group = eu.midnightdust + archives_base_name = nauticality + +# Dependencies + # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api + fabric_version=0.35.2+1.17 + mod_menu_version = 2.0.0-beta.7 + midnightlib_version=0.2.4 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100755 index 0000000000000000000000000000000000000000..e708b1c023ec8b20f512888fe07c5bd3ff77bb8f GIT binary patch literal 59203 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

K7UpUK$>l@ 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 E2O(~oYXATM literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100755 index 0000000..e5338d3 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..4f906e0 --- /dev/null +++ b/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + 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" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100755 index 0000000..107acd3 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/local_maven/midnightlib-0.2.4.jar b/local_maven/midnightlib-0.2.4.jar new file mode 100755 index 0000000000000000000000000000000000000000..7612c8792d818a0be8e1eb22c392701ccfbfc7fb GIT binary patch literal 99664 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±sCy`KQqY5{ALY`9CO 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 VVE+T_JK!%0ID{*P1FK1#{{dsjrN#gN literal 0 HcmV?d00001 diff --git a/settings.gradle b/settings.gradle new file mode 100755 index 0000000..5b60df3 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,10 @@ +pluginManagement { + repositories { + jcenter() + maven { + name = 'Fabric' + url = 'https://maven.fabricmc.net/' + } + gradlePluginPortal() + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/NauticalityClient.java b/src/main/java/eu/midnightdust/nauticality/NauticalityClient.java new file mode 100755 index 0000000..e137339 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/NauticalityClient.java @@ -0,0 +1,31 @@ +package eu.midnightdust.nauticality; + +import eu.midnightdust.nauticality.entity.client.model.SubmarineModel; +import eu.midnightdust.nauticality.entity.client.renderer.GlowFishRenderer; +import eu.midnightdust.nauticality.entity.client.renderer.PirateRenderer; +import eu.midnightdust.nauticality.entity.client.renderer.SubmarineRenderer; +import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityModelLayerRegistry; +import net.fabricmc.fabric.api.client.rendereregistry.v1.EntityRendererRegistry; +import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry; +import net.fabricmc.fabric.impl.blockrenderlayer.BlockRenderLayerMapImpl; +import net.fabricmc.fabric.impl.client.rendering.ColorProviderRegistryImpl; +import net.minecraft.client.color.world.BiomeColors; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.util.Identifier; + +@SuppressWarnings({"deprecation","UnstableApiUsage"}) +public class NauticalityClient implements ClientModInitializer { + @Override + public void onInitializeClient() { + EntityRendererRegistry.INSTANCE.register(NauticalityMain.GLOW_FISH, GlowFishRenderer::new); + EntityRendererRegistry.INSTANCE.register(NauticalityMain.PIRATE, PirateRenderer::new); + EntityModelLayerRegistry.registerModelLayer(SubmarineRenderer.SUBMARINE_MODEL_LAYER, SubmarineModel::getTexturedModelData); + EntityRendererRegistry.INSTANCE.register(NauticalityMain.SUBMARINE, SubmarineRenderer::new); + BlockRenderLayerMapImpl.INSTANCE.putBlock(NauticalityMain.Algae, RenderLayer.getCutout()); + BlockRenderLayerMapImpl.INSTANCE.putBlock(NauticalityMain.Cattail, RenderLayer.getCutout()); + ColorProviderRegistryImpl.BLOCK.register((state, world, pos, tintIndex) -> world == null ? 0 : world.getColor(pos, BiomeColors.FOLIAGE_COLOR), NauticalityMain.Algae); + ColorProviderRegistryImpl.ITEM.register((stack, tintIndex) -> 6975545, NauticalityMain.Algae); + FabricModelPredicateProviderRegistry.register(NauticalityMain.Eyepatch.asItem(), new Identifier("right"), (stack, world, entity, seed) -> (stack.getTag() != null && stack.getTag().getBoolean("right")) ? 1 : 0); + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/NauticalityMain.java b/src/main/java/eu/midnightdust/nauticality/NauticalityMain.java new file mode 100755 index 0000000..090bf30 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/NauticalityMain.java @@ -0,0 +1,81 @@ +package eu.midnightdust.nauticality; + +import eu.midnightdust.nauticality.block.Algae; +import eu.midnightdust.nauticality.block.Cattail; +import eu.midnightdust.nauticality.config.NauticalityConfig; +import eu.midnightdust.nauticality.entity.GlowFishEntity; +import eu.midnightdust.nauticality.entity.PirateEntity; +import eu.midnightdust.nauticality.entity.SubmarineEntity; +import eu.midnightdust.nauticality.item.SubmarineItem; +import eu.midnightdust.nauticality.world.NauticalityConfiguredFeatures; +import eu.midnightdust.nauticality.world.feature.FeatureInjector; +import eu.midnightdust.nauticality.world.NauticalityStructures; +import eu.midnightdust.nauticality.world.structure.PirateShipStructure; +import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.biome.v1.BiomeModifications; +import net.fabricmc.fabric.api.biome.v1.BiomeSelectors; +import net.fabricmc.fabric.api.client.itemgroup.FabricItemGroupBuilder; +import net.fabricmc.fabric.api.item.v1.FabricItemSettings; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; +import net.fabricmc.fabric.api.object.builder.v1.entity.FabricEntityTypeBuilder; +import net.minecraft.block.Block; +import net.minecraft.block.MapColor; +import net.minecraft.block.Material; +import net.minecraft.entity.EntityDimensions; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.SpawnGroup; +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.mob.MobEntity; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.*; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.biome.Biome; + +public class NauticalityMain implements ModInitializer { + public static final String MOD_ID = "nauticality"; + public static final ItemGroup NauticalityGroup = FabricItemGroupBuilder.build(new Identifier(MOD_ID, "main"), () -> new ItemStack(NauticalityMain.SubmarineItem)); + public static final EntityType GLOW_FISH = Registry.register(Registry.ENTITY_TYPE, + new Identifier(MOD_ID,"glow_fish"), FabricEntityTypeBuilder.create(SpawnGroup.WATER_AMBIENT, GlowFishEntity::new) + .dimensions(EntityDimensions.fixed(0.5F, 0.3F)).trackRangeBlocks(4).build()); + public static final EntityType PIRATE = Registry.register(Registry.ENTITY_TYPE, + new Identifier(MOD_ID,"pirate"), FabricEntityTypeBuilder.create(SpawnGroup.MONSTER, PirateEntity::new).spawnableFarFromPlayer() + .dimensions(EntityDimensions.fixed(0.6F, 1.95F)).trackRangeBlocks(8).build()); + public static final EntityType SUBMARINE = Registry.register(Registry.ENTITY_TYPE, + new Identifier(MOD_ID,"submarine"), FabricEntityTypeBuilder.create(SpawnGroup.MISC, SubmarineEntity::new)//(a,b) -> new SubmarineEntity(a,b)) + .dimensions(EntityDimensions.fixed(1.6F, 1.6F)).trackRangeBlocks(1).build()); + public static Item GLOW_FISH_BUCKET; + public static Item Eyepatch; + public static Item SubmarineItem; + public static Block Algae = new Algae(FabricBlockSettings.of(Material.ORGANIC_PRODUCT, MapColor.DARK_GREEN).noCollision().sounds(BlockSoundGroup.AZALEA_LEAVES)); + public static Block Cattail = new Cattail(FabricBlockSettings.of(Material.ORGANIC_PRODUCT, MapColor.BROWN).sounds(BlockSoundGroup.WET_GRASS).noCollision()); + + + @Override + public void onInitialize() { + NauticalityConfig.init("nauticality", NauticalityConfig.class); + // Items + Eyepatch = Registry.register(Registry.ITEM, new Identifier(MOD_ID,"eyepatch"), new Item(new FabricItemSettings().group(NauticalityGroup))); + // Entities + GLOW_FISH_BUCKET = Registry.register(Registry.ITEM, new Identifier(MOD_ID,"glow_fish_bucket"), new EntityBucketItem(GLOW_FISH, Fluids.WATER, SoundEvents.ITEM_BUCKET_EMPTY_FISH, (new Item.Settings()).maxCount(1).group(NauticalityGroup))); + Registry.register(Registry.ITEM, new Identifier(MOD_ID,"glow_fish_spawn_egg"), new SpawnEggItem(GLOW_FISH,63246,63425, new FabricItemSettings().group(NauticalityGroup))); + FabricDefaultAttributeRegistry.register(GLOW_FISH, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MAX_HEALTH, 8.0D)); + Registry.register(Registry.ITEM, new Identifier(MOD_ID,"pirate_spawn_egg"), new SpawnEggItem(PIRATE,78657,24561, new FabricItemSettings().group(NauticalityGroup))); + FabricDefaultAttributeRegistry.register(PIRATE, MobEntity.createMobAttributes().add(EntityAttributes.GENERIC_MOVEMENT_SPEED, 0.25).add(EntityAttributes.GENERIC_ATTACK_DAMAGE,4).add(EntityAttributes.GENERIC_ATTACK_SPEED,1.5).add(EntityAttributes.GENERIC_ATTACK_KNOCKBACK,2)); + SubmarineItem = Registry.register(Registry.ITEM, new Identifier(MOD_ID,"submarine"), new SubmarineItem(new FabricItemSettings().group(NauticalityGroup))); + // Blocks + Registry.register(Registry.BLOCK, new Identifier(MOD_ID, "algae"), Algae); + Registry.register(Registry.ITEM, new Identifier(MOD_ID,"algae"), new BlockItem(Algae, new FabricItemSettings().group(NauticalityGroup))); + Registry.register(Registry.BLOCK, new Identifier(MOD_ID, "cattail"), Cattail); + Registry.register(Registry.ITEM, new Identifier(MOD_ID,"cattail"), new BlockItem(Cattail, new FabricItemSettings().group(NauticalityGroup))); + + PirateShipStructure.init(); + NauticalityStructures.init(); + NauticalityConfiguredFeatures.init(); + FeatureInjector.init(); + BiomeModifications.addSpawn(BiomeSelectors.categories(Biome.Category.OCEAN).and(BiomeSelectors.spawnsOneOf(EntityType.TROPICAL_FISH)),SpawnGroup.WATER_AMBIENT, GLOW_FISH, 6, 3, 10); + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/block/Algae.java b/src/main/java/eu/midnightdust/nauticality/block/Algae.java new file mode 100755 index 0000000..8997b4e --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/block/Algae.java @@ -0,0 +1,53 @@ +package eu.midnightdust.nauticality.block; + +import net.minecraft.block.*; +import net.minecraft.entity.Entity; +import net.minecraft.entity.vehicle.BoatEntity; +import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.state.StateManager; +import net.minecraft.state.property.BooleanProperty; +import net.minecraft.state.property.Properties; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.world.BlockView; +import net.minecraft.world.World; + +public class Algae extends PlantBlock implements Waterloggable { + protected static final VoxelShape SHAPE = Block.createCuboidShape(0.0D, -0.2D, 0.0D, 16.0D, 0.3D, 16.0D); + public static final BooleanProperty WATERLOGGED = Properties.WATERLOGGED; + + public Algae(Settings settings) { + super(settings); + this.setDefaultState(this.getDefaultState().with(WATERLOGGED,false)); + } + @Override + protected void appendProperties(StateManager.Builder builder) { + builder.add(WATERLOGGED); + } + @Override + public void onEntityCollision(BlockState state, World world, BlockPos pos, Entity entity) { + if (entity.isTouchingWater() && !(entity instanceof BoatEntity) && entity.getY() <= pos.getY() + 0.1f) { + entity.slowMovement(state, new Vec3d(2, 2, 2)); + } + if (world instanceof ServerWorld && entity instanceof BoatEntity) { + world.breakBlock(new BlockPos(pos), false, entity); + } + } + @Override + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return SHAPE; + } + @Override + protected boolean canPlantOnTop(BlockState floor, BlockView world, BlockPos pos) { + FluidState fluidState = world.getFluidState(pos); + FluidState fluidState2 = world.getFluidState(pos.up()); + return fluidState.getFluid() == Fluids.WATER || fluidState2.getFluid() == Fluids.WATER; + } + @Override + public FluidState getFluidState(BlockState state) { + return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : super.getFluidState(state); + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/block/Cattail.java b/src/main/java/eu/midnightdust/nauticality/block/Cattail.java new file mode 100755 index 0000000..502d8f4 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/block/Cattail.java @@ -0,0 +1,57 @@ +package eu.midnightdust.nauticality.block; + +import eu.midnightdust.nauticality.NauticalityMain; +import net.minecraft.block.BlockState; +import net.minecraft.block.TallPlantBlock; +import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.fluid.FluidState; +import net.minecraft.fluid.Fluids; +import net.minecraft.item.ItemPlacementContext; +import net.minecraft.item.ItemStack; +import net.minecraft.tag.FluidTags; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.BlockView; +import net.minecraft.world.WorldView; +import org.jetbrains.annotations.Nullable; + +public class Cattail extends TallPlantBlock { + public Cattail(Settings settings) { + super(settings); + } + + @Override + public ItemStack getPickStack(BlockView world, BlockPos pos, BlockState state) { + return new ItemStack(NauticalityMain.Cattail); + } + @Override + public FluidState getFluidState(BlockState state) { + if (state.get(HALF) == DoubleBlockHalf.LOWER) { + return Fluids.WATER.getStill(false); + } + return Fluids.EMPTY.getDefaultState(); + } + @Override + public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) { + if (state.get(HALF) == DoubleBlockHalf.UPPER) { + BlockState lowerBlockState = world.getBlockState(pos.down()); + return lowerBlockState.isOf(this) && lowerBlockState.get(HALF) == DoubleBlockHalf.LOWER && world.getFluidState(pos).isEmpty(); + } else { + FluidState fluidState = world.getFluidState(pos); + FluidState upperFluidState = world.getFluidState(pos.up()); + return fluidState.isIn(FluidTags.WATER) && fluidState.getLevel() == 8 && upperFluidState.isEmpty(); + } + } + @Override + @Nullable + public BlockState getPlacementState(ItemPlacementContext ctx) { + BlockState blockState = super.getPlacementState(ctx); + if (blockState != null) { + FluidState fluidState = ctx.getWorld().getFluidState(ctx.getBlockPos()); + if (fluidState.isIn(FluidTags.WATER) && fluidState.getLevel() == 8) { + return blockState; + } + } + + return blockState; + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/config/NauticalityConfig.java b/src/main/java/eu/midnightdust/nauticality/config/NauticalityConfig.java new file mode 100755 index 0000000..136b006 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/config/NauticalityConfig.java @@ -0,0 +1,10 @@ +package eu.midnightdust.nauticality.config; + +import eu.midnightdust.lib.config.MidnightConfig; + +public class NauticalityConfig extends MidnightConfig { + @Entry public static int pirateShipRate = 1; + @Entry public static int algaeRate = 4; + @Entry public static int underwaterAlgaeRate = 15; + @Entry public static int cattailRate = 20; +} diff --git a/src/main/java/eu/midnightdust/nauticality/entity/GlowFishEntity.java b/src/main/java/eu/midnightdust/nauticality/entity/GlowFishEntity.java new file mode 100755 index 0000000..f284785 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/entity/GlowFishEntity.java @@ -0,0 +1,27 @@ +package eu.midnightdust.nauticality.entity; + +import eu.midnightdust.nauticality.NauticalityMain; +import net.minecraft.entity.Bucketable; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.passive.FishEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.sound.SoundEvent; +import net.minecraft.sound.SoundEvents; +import net.minecraft.world.World; + +public class GlowFishEntity extends FishEntity implements Bucketable { + + public GlowFishEntity(EntityType entityType, World world) { + super(entityType, world); + } + + @Override + protected SoundEvent getFlopSound() { + return SoundEvents.ENTITY_TROPICAL_FISH_FLOP; + } + + @Override + public ItemStack getBucketItem() { + return new ItemStack(NauticalityMain.GLOW_FISH_BUCKET); + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/entity/PirateEntity.java b/src/main/java/eu/midnightdust/nauticality/entity/PirateEntity.java new file mode 100755 index 0000000..05d83e2 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/entity/PirateEntity.java @@ -0,0 +1,65 @@ +package eu.midnightdust.nauticality.entity; + +import eu.midnightdust.nauticality.NauticalityMain; +import net.minecraft.entity.*; +import net.minecraft.entity.ai.goal.MeleeAttackGoal; +import net.minecraft.entity.attribute.EntityAttributeModifier; +import net.minecraft.entity.attribute.EntityAttributes; +import net.minecraft.entity.mob.PillagerEntity; +import net.minecraft.entity.mob.RavagerEntity; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.nbt.NbtCompound; +import net.minecraft.world.LocalDifficulty; +import net.minecraft.world.ServerWorldAccess; +import net.minecraft.world.World; +import org.jetbrains.annotations.Nullable; + +import java.util.Random; + +public class PirateEntity extends PillagerEntity { + + public PirateEntity(EntityType entityType, World world) { + super(entityType, world); + } + + @Override + protected void initGoals() { + super.initGoals(); + this.goalSelector.add(4, new AttackGoal(this)); + } + + @Override + protected void initEquipment(LocalDifficulty difficulty) { + this.equipStack(EquipmentSlot.MAINHAND, new ItemStack(Items.IRON_SWORD)); + this.equipStack(EquipmentSlot.OFFHAND, new ItemStack(Items.SPYGLASS)); + ItemStack eyepatch = new ItemStack(NauticalityMain.Eyepatch); + if (new Random().nextBoolean()) { + eyepatch.getOrCreateTag().putBoolean("right", true); + } + this.equipStack(EquipmentSlot.HEAD, eyepatch); + } + @Override + @Nullable + public EntityData initialize(ServerWorldAccess world, LocalDifficulty difficulty, SpawnReason spawnReason, @Nullable EntityData entityData, @Nullable NbtCompound entityNbt) { + this.getAttributeInstance(EntityAttributes.GENERIC_FOLLOW_RANGE).addPersistentModifier(new EntityAttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, EntityAttributeModifier.Operation.MULTIPLY_BASE)); + this.setLeftHanded(this.random.nextFloat() < 0.05F); + this.initEquipment(difficulty); + return entityData; + } + + static class AttackGoal extends MeleeAttackGoal { + public AttackGoal(PirateEntity pirate) { + super(pirate, 1.0D, false); + } + + protected double getSquaredMaxAttackDistance(LivingEntity entity) { + if (this.mob.getVehicle() instanceof RavagerEntity) { + float f = this.mob.getVehicle().getWidth() - 0.1F; + return f * 2.0F * f * 2.0F + entity.getWidth(); + } else { + return super.getSquaredMaxAttackDistance(entity); + } + } + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/entity/SubmarineEntity.java b/src/main/java/eu/midnightdust/nauticality/entity/SubmarineEntity.java new file mode 100755 index 0000000..39ec2e7 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/entity/SubmarineEntity.java @@ -0,0 +1,84 @@ +package eu.midnightdust.nauticality.entity; + +import eu.midnightdust.nauticality.NauticalityMain; +import eu.midnightdust.nauticality.mixin.BoatEntityAccessor; +import net.minecraft.block.BlockState; +import net.minecraft.entity.*; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.entity.vehicle.BoatEntity; +import net.minecraft.item.Item; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; + +public class SubmarineEntity extends BoatEntity { + public boolean pressingForward; + public float prevRoll = 0; + public float rotorAngle; + + public SubmarineEntity(EntityType entityType, World world) { + super(entityType, world); + this.stepHeight = 1.0F; + } + @Override + public Item asItem() { + return NauticalityMain.SubmarineItem; + } + + @Override + protected void playStepSound(BlockPos pos, BlockState state) { + this.playSound(SoundEvents.ENTITY_PIG_STEP, 0.15F, 1.0F); + } + @Override + public void tick() { + super.tick(); + ((BoatEntityAccessor)this).setTicksUnderwater(0); + updateVelocity(); + this.move(MovementType.SELF, this.getVelocity()); + if (this.getFirstPassenger() != null && this.pressingForward) { + Entity passenger = this.getFirstPassenger(); + this.setPitch(passenger.getPitch() * 0.5F); + } + } + @Override + public boolean hasNoGravity() { + return true; + } + @Override + public ActionResult interact(PlayerEntity player, Hand hand) { + return player.startRiding(this) ? ActionResult.CONSUME : ActionResult.PASS; + } + @Override + protected boolean canAddPassenger(Entity passenger) { + return this.getPassengerList().size() < 2; + } + @Override + public void updatePassengerPosition(Entity passenger) { + super.updatePassengerPosition(passenger); + if (this.hasPassenger(passenger)) { + if (passenger instanceof LivingEntity livingEntity) { + livingEntity.addStatusEffect(new StatusEffectInstance(StatusEffects.NIGHT_VISION,2,1,true,false,false)); + } + } + } + public void setInputs(boolean pressingLeft, boolean pressingRight, boolean pressingForward, boolean pressingBack) { + super.setInputs(pressingLeft,pressingRight,pressingForward,pressingBack); + this.pressingForward = pressingForward; + } + private void updateVelocity() { + Vec3d vec3d = this.getVelocity(); + if (((BoatEntityAccessor)this).getLocation() == BoatEntity.Location.UNDER_WATER && this.getFirstPassenger() != null && this.pressingForward) + this.setVelocity(vec3d.x * 1.5, vec3d.y - (this.getPitch()) * 0.001, vec3d.z * 1.5); + Vec3d velocity = this.getVelocity(); + if (touchingWater) this.setVelocity(velocity.x, velocity.y, velocity.z); + else this.setVelocity(velocity.x * 0.4, -0.75, velocity.z * 0.4); + } + public boolean isSubmergedInWater() { + return false; + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/entity/client/model/SubmarineModel.java b/src/main/java/eu/midnightdust/nauticality/entity/client/model/SubmarineModel.java new file mode 100755 index 0000000..71f9ce0 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/entity/client/model/SubmarineModel.java @@ -0,0 +1,93 @@ +// Made with Model Converter by Globox_Z +// Generate all required imports +// Made with Blockbench 3.8.4 + // Exported for Minecraft version 1.15 + // Paste this class into your mod and generate all required imports + package eu.midnightdust.nauticality.entity.client.model; + +import eu.midnightdust.nauticality.entity.SubmarineEntity; +import net.minecraft.client.model.*; +import net.minecraft.client.render.VertexConsumer; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.client.util.math.MatrixStack; + +public class SubmarineModel extends EntityModel { + private final ModelPart base; + private final ModelPart cube_r1; + private final ModelPart cube_r2; + private final ModelPart door; + private final ModelPart front; + private final ModelPart cube_r3; + private final ModelPart cube_r4; + private final ModelPart cube_r5; + private final ModelPart cube_r6; + private final ModelPart cube_r7; + private final ModelPart back; + private final ModelPart rotor; + private final ModelPart interior; + private final ModelPart light; + + public SubmarineModel(ModelPart root) { + this.base = root.getChild("base"); + this.door = this.base.getChild("door"); + this.cube_r2 = this.base.getChild("cube_r2"); + this.cube_r1 = this.base.getChild("cube_r1"); + this.front = root.getChild("front"); + this.cube_r7 = this.front.getChild("cube_r7"); + this.cube_r6 = this.front.getChild("cube_r6"); + this.cube_r5 = this.front.getChild("cube_r5"); + this.cube_r4 = this.front.getChild("cube_r4"); + this.cube_r3 = this.front.getChild("cube_r3"); + this.back = root.getChild("back"); + this.rotor = root.getChild("rotor"); + this.interior = root.getChild("interior"); + this.light = root.getChild("light"); + setRotationAngle(cube_r1, 0.0F, -0.6545F, 0.0F); + setRotationAngle(cube_r2, 0.0F, 0.6545F, 0.0F); + setRotationAngle(cube_r3, 0.3491F, 0.6545F, 0.0F); + setRotationAngle(cube_r4, 0.3491F, -0.6545F, 0.0F); + setRotationAngle(cube_r5, 0.3491F, 0.0F, 0.0F); + setRotationAngle(cube_r6, 0.0F, -0.6545F, 0.0F); + setRotationAngle(cube_r7, 0.0F, 0.6545F, 0.0F); + } + public static TexturedModelData getTexturedModelData() { + ModelData modelData = new ModelData(); + ModelPartData modelPartData = modelData.getRoot(); + ModelPartData modelPartData1 = modelPartData.addChild("base", ModelPartBuilder.create().uv(0,0).cuboid(-12.0F, -1.0F, -15.0F, 24.0F, 1.0F, 30.0F).uv(78,81).cuboid(-4.0F, -1.0F, -21.0F, 8.0F, 1.0F, 6.0F).uv(0,59).cuboid(-12.0F, -23.0F, -12.0F, 1.0F, 22.0F, 27.0F).uv(56,91).cuboid(-12.0F, -22.0F, -15.0F, 1.0F, 21.0F, 3.0F).uv(18,0).cuboid(11.0F, -22.0F, -15.0F, 1.0F, 21.0F, 3.0F).uv(0,0).cuboid(11.0F, -23.0F, -12.0F, 1.0F, 22.0F, 8.0F).uv(78,7).cuboid(11.0F, -23.0F, -4.0F, 1.0F, 8.0F, 9.0F).uv(56,59).cuboid(11.0F, -23.0F, 5.0F, 1.0F, 22.0F, 10.0F).uv(0,31).cuboid(-12.0F, -24.0F, -12.0F, 24.0F, 1.0F, 27.0F).uv(78,24).cuboid(-6.0F, -24.0F, -15.0F, 12.0F, 1.0F, 3.0F).uv(29,59).cuboid(6.0F, -24.0F, -14.0F, 2.0F, 1.0F, 2.0F).uv(10,4).cuboid(-8.0F, -24.0F, -14.0F, 2.0F, 1.0F, 2.0F), ModelTransform.pivot(0.0F,24.0F,0.0F)); + modelPartData1.addChild("cube_r1", ModelPartBuilder.create().uv(78,67).cuboid(-9.5F, -0.995F, -19.0F, 9.0F, 1.0F, 6.0F), ModelTransform.pivot(0.0F,0.0F,0.0F)); + modelPartData1.addChild("cube_r2", ModelPartBuilder.create().uv(78,74).cuboid(0.5F, -0.995F, -19.0F, 9.0F, 1.0F, 6.0F), ModelTransform.pivot(0.0F,0.0F,0.0F)); + modelPartData1.addChild("door", ModelPartBuilder.create().uv(29,59).cuboid(11.5F, -15.0F, -4.0F, 1.0F, 14.0F, 9.0F).uv(15,0).cuboid(12.0F, -9.0F, -3.0F, 1.0F, 1.0F, 1.0F), ModelTransform.pivot(0.0F,0.0F,0.0F)); + ModelPartData modelPartData2 = modelPartData.addChild("front", ModelPartBuilder.create().uv(75,34).cuboid(-4.0F, -21.99F, -21.1F, 8.0F, 22.0F, 1.0F).uv(22,31).cuboid(-4.5F, -22.0F, -21.17F, 1.0F, 22.0F, 1.0F).uv(26,0).cuboid(3.5F, -22.0F, -21.17F, 1.0F, 22.0F, 1.0F), ModelTransform.pivot(0.0F,24.0F,0.0F)); + modelPartData2.addChild("cube_r3", ModelPartBuilder.create().uv(18,24).cuboid(3.0F, -1.0F, -3.0F, 1.0F, 1.0F, 1.0F).uv(10,0).cuboid(2.0F, -1.0F, -3.0F, 1.0F, 1.0F, 3.0F).uv(0,0).cuboid(-7.0F, -1.0F, 0.0F, 1.0F, 1.0F, 3.0F).uv(96,99).cuboid(-6.0F, -1.0F, -2.0F, 1.0F, 1.0F, 5.0F).uv(40,59).cuboid(-5.0F, -1.0F, -3.0F, 7.0F, 1.0F, 6.0F), ModelTransform.pivot(-6.0F,-22.0F,-15.0F)); + modelPartData2.addChild("cube_r4", ModelPartBuilder.create().uv(0,4).cuboid(-5.0F, -1.0F, -3.0F, 1.0F, 1.0F, 3.0F).uv(18,24).cuboid(4.0F, -1.0F, -2.0F, 1.0F, 1.0F, 5.0F).uv(87,51).cuboid(-4.0F, -1.0F, -3.0F, 8.0F, 1.0F, 6.0F), ModelTransform.pivot(7.0F,-22.0F,-14.0F)); + modelPartData2.addChild("cube_r5", ModelPartBuilder.create().uv(78,0).cuboid(-5.0F, -1.0F, -3.0F, 10.0F, 1.0F, 6.0F), ModelTransform.pivot(0.0F,-22.0F,-17.0F)); + modelPartData2.addChild("cube_r6", ModelPartBuilder.create().uv(0,31).cuboid(-10.0F, -21.99F, -19.0F, 10.0F, 22.0F, 1.0F), ModelTransform.pivot(0.5F,0.0F,0.0F)); + modelPartData2.addChild("cube_r7", ModelPartBuilder.create().uv(0,59).cuboid(0.0F, -21.99F, -19.0F, 10.0F, 22.0F, 1.0F), ModelTransform.pivot(-0.5F,0.0F,0.0F)); + modelPartData.addChild("back", ModelPartBuilder.create().uv(70,91).cuboid(9.0F, -23.0F, 15.0F, 2.0F, 22.0F, 1.0F).uv(64,91).cuboid(-11.0F, -23.0F, 15.0F, 2.0F, 22.0F, 1.0F).uv(75,31).cuboid(-9.0F, -3.0F, 15.0F, 18.0F, 2.0F, 1.0F).uv(68,64).cuboid(-9.0F, -23.0F, 15.0F, 18.0F, 2.0F, 1.0F).uv(76,96).cuboid(-9.0F, -21.0F, 16.0F, 2.0F, 18.0F, 1.0F).uv(49,66).cuboid(7.0F, -21.0F, 16.0F, 2.0F, 18.0F, 1.0F).uv(89,7).cuboid(-7.0F, -5.0F, 16.0F, 14.0F, 2.0F, 1.0F).uv(78,88).cuboid(-7.0F, -21.0F, 16.0F, 14.0F, 2.0F, 1.0F).uv(92,99).cuboid(6.0F, -19.0F, 17.0F, 1.0F, 14.0F, 1.0F).uv(22,59).cuboid(-7.0F, -19.0F, 17.0F, 1.0F, 14.0F, 1.0F).uv(0,56).cuboid(-6.0F, -6.0F, 17.0F, 12.0F, 1.0F, 1.0F).uv(0,54).cuboid(-6.0F, -19.0F, 17.0F, 12.0F, 1.0F, 1.0F).uv(100,105).cuboid(-6.0F, -18.0F, 18.0F, 1.0F, 12.0F, 1.0F).uv(96,105).cuboid(5.0F, -18.0F, 18.0F, 1.0F, 12.0F, 1.0F).uv(0,82).cuboid(-5.0F, -7.0F, 18.0F, 10.0F, 1.0F, 1.0F).uv(78,28).cuboid(-5.0F, -18.0F, 18.0F, 10.0F, 1.0F, 1.0F).uv(82,107).cuboid(-5.0F, -17.0F, 19.0F, 1.0F, 10.0F, 1.0F).uv(22,74).cuboid(4.0F, -17.0F, 19.0F, 1.0F, 10.0F, 1.0F).uv(0,84).cuboid(-4.0F, -8.0F, 19.0F, 8.0F, 1.0F, 1.0F).uv(29,82).cuboid(-4.0F, -17.0F, 19.0F, 8.0F, 1.0F, 1.0F).uv(104,105).cuboid(-4.0F, -16.0F, 20.0F, 1.0F, 8.0F, 2.0F).uv(93,48).cuboid(-3.0F, -9.0F, 20.0F, 6.0F, 1.0F, 2.0F).uv(93,45).cuboid(-3.0F, -16.0F, 20.0F, 6.0F, 1.0F, 2.0F).uv(103,34).cuboid(3.0F, -16.0F, 20.0F, 1.0F, 8.0F, 2.0F).uv(98,15).cuboid(-3.0F, -15.0F, 22.0F, 6.0F, 6.0F, 1.0F).uv(92,91).cuboid(-1.0F, -13.0F, 23.0F, 2.0F, 2.0F, 6.0F), ModelTransform.pivot(0.0F,24.0F,0.0F)); + modelPartData.addChild("rotor", ModelPartBuilder.create().uv(82,96).cuboid(-1.0F, 1.0F, -2.0F, 1.0F, 7.0F, 4.0F).uv(93,34).cuboid(0.0F, -8.0F, -2.0F, 1.0F, 7.0F, 4.0F).uv(76,91).cuboid(1.0F, 0.0F, -2.0F, 7.0F, 1.0F, 4.0F).uv(89,10).cuboid(-8.0F, -1.0F, -2.0F, 7.0F, 1.0F, 4.0F), ModelTransform.pivot(0.0F,12.0F,26.0F)); + modelPartData.addChild("interior", ModelPartBuilder.create().uv(68,59).cuboid(-11.0F, -5.0F, -16.0F, 22.0F, 4.0F, 1.0F), ModelTransform.pivot(0.0F,24.0F,0.0F)); + modelPartData.addChild("light", ModelPartBuilder.create().uv(0,119).cuboid(-2.0F, -27.01F, -19.0F, 4.0F, 4.0F, 5.0F), ModelTransform.pivot(0.0F,24.0F,0.0F)); + + return TexturedModelData.of(modelData,128,128); + } + + @Override + public void setAngles(SubmarineEntity entity, float limbSwing, float limbSwingAmount, float ageInTicks, float netHeadYaw, float headPitch){ + if (entity.isTouchingWater()) entity.rotorAngle = entity.rotorAngle + 0.1f; + rotor.setAngles(0,0,entity.rotorAngle); + } + @Override + public void render(MatrixStack matrixStack, VertexConsumer buffer, int packedLight, int packedOverlay, float red, float green, float blue, float alpha){ + base.render(matrixStack, buffer, packedLight, packedOverlay); + front.render(matrixStack, buffer, packedLight, packedOverlay); + back.render(matrixStack, buffer, packedLight, packedOverlay); + interior.render(matrixStack, buffer, packedLight, packedOverlay); + rotor.render(matrixStack, buffer, packedLight, packedOverlay); + light.render(matrixStack, buffer, packedLight, packedOverlay); + } + public static void setRotationAngle(ModelPart bone, float x, float y, float z) { + bone.pitch = x; + bone.yaw = y; + bone.roll = z; + } +} \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/EmissiveOverlayRenderer.java b/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/EmissiveOverlayRenderer.java new file mode 100755 index 0000000..1a5251e --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/EmissiveOverlayRenderer.java @@ -0,0 +1,20 @@ +package eu.midnightdust.nauticality.entity.client.renderer; + +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.entity.feature.EyesFeatureRenderer; +import net.minecraft.client.render.entity.feature.FeatureRendererContext; +import net.minecraft.client.render.entity.model.EntityModel; +import net.minecraft.entity.LivingEntity; +import net.minecraft.util.Identifier; + +public class EmissiveOverlayRenderer extends EyesFeatureRenderer> { + private final RenderLayer SKIN; + + public EmissiveOverlayRenderer(FeatureRendererContext> featureRendererContext, Identifier texture) { + super(featureRendererContext); + SKIN = RenderLayer.getEyes(texture); + } + public RenderLayer getEyesTexture() { + return SKIN; + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/GlowFishRenderer.java b/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/GlowFishRenderer.java new file mode 100755 index 0000000..3645bc2 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/GlowFishRenderer.java @@ -0,0 +1,26 @@ +package eu.midnightdust.nauticality.entity.client.renderer; + +import eu.midnightdust.nauticality.entity.GlowFishEntity; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.EntityRendererFactory; +import net.minecraft.client.render.entity.MobEntityRenderer; +import net.minecraft.client.render.entity.model.CodEntityModel; +import net.minecraft.client.render.entity.model.EntityModelLayers; +import net.minecraft.util.Identifier; + +import static eu.midnightdust.nauticality.NauticalityMain.MOD_ID; + +@Environment(EnvType.CLIENT) +public class GlowFishRenderer extends MobEntityRenderer> { + + public GlowFishRenderer(EntityRendererFactory.Context context) { + super(context, new CodEntityModel<>(context.getPart(EntityModelLayers.COD)), 0.5F); + this.addFeature(new EmissiveOverlayRenderer(this, new Identifier(MOD_ID,"textures/entity/glow_fish/glow_fish_emissive_layer.png"))); + } + + @Override + public Identifier getTexture(GlowFishEntity entity) { + return new Identifier("nauticality","textures/entity/glow_fish/glow_fish.png"); + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/PirateRenderer.java b/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/PirateRenderer.java new file mode 100755 index 0000000..08e32f1 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/PirateRenderer.java @@ -0,0 +1,27 @@ +package eu.midnightdust.nauticality.entity.client.renderer; + +import eu.midnightdust.nauticality.entity.PirateEntity; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.entity.*; +import net.minecraft.client.render.entity.feature.HeldItemFeatureRenderer; +import net.minecraft.client.render.entity.model.EntityModelLayers; +import net.minecraft.client.render.entity.model.IllagerEntityModel; +import net.minecraft.util.Identifier; + +import static eu.midnightdust.nauticality.NauticalityMain.MOD_ID; + +@Environment(EnvType.CLIENT) +public class PirateRenderer extends IllagerEntityRenderer { + private static final Identifier TEXTURE = new Identifier(MOD_ID,"textures/entity/illager/pirate.png"); + + public PirateRenderer(EntityRendererFactory.Context context) { + super(context, new IllagerEntityModel<>(context.getPart(EntityModelLayers.PILLAGER)), 0.5F); + this.addFeature(new HeldItemFeatureRenderer<>(this)); + } + + @Override + public Identifier getTexture(PirateEntity pillagerEntity) { + return TEXTURE; + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/SubmarineRenderer.java b/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/SubmarineRenderer.java new file mode 100755 index 0000000..c8f8e0e --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/entity/client/renderer/SubmarineRenderer.java @@ -0,0 +1,60 @@ +package eu.midnightdust.nauticality.entity.client.renderer; + +import eu.midnightdust.nauticality.entity.SubmarineEntity; +import eu.midnightdust.nauticality.entity.client.model.SubmarineModel; +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.client.render.VertexConsumerProvider; +import net.minecraft.client.render.entity.EntityRenderer; +import net.minecraft.client.render.entity.EntityRendererFactory; +import net.minecraft.client.render.entity.feature.FeatureRendererContext; +import net.minecraft.client.render.entity.model.EntityModelLayer; +import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.entity.Entity; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.Vec3f; + +import static eu.midnightdust.nauticality.NauticalityMain.MOD_ID; + +@Environment(EnvType.CLIENT) +public class SubmarineRenderer extends EntityRenderer implements FeatureRendererContext { + public static final EntityModelLayer SUBMARINE_MODEL_LAYER = new EntityModelLayer(new Identifier("nauticality","entity"), "submarine"); + private static EmissiveOverlayRenderer overlay; + private final SubmarineModel model; + + + public SubmarineRenderer(EntityRendererFactory.Context ctx) { + super(ctx); + model = new SubmarineModel(ctx.getPart(SUBMARINE_MODEL_LAYER)); + overlay = new EmissiveOverlayRenderer(this, new Identifier(MOD_ID,"textures/entity/submarine/submarine_emissive_layer.png")); + } + public void render(SubmarineEntity entity, float yaw, float tickDelta, MatrixStack matrixStack, VertexConsumerProvider vertexConsumers, int light) { + super.render(entity, yaw, tickDelta, matrixStack, vertexConsumers, light); + float pitch = entity.getPitch(); + Entity passenger = entity.getFirstPassenger(); + if (passenger != null) pitch = passenger.getPitch() * 0.5F; + matrixStack.push(); + matrixStack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180F - yaw)); + matrixStack.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(180F)); + matrixStack.multiply(Vec3f.POSITIVE_Z.getDegreesQuaternion((yaw - entity.prevRoll)*8)); + entity.prevRoll = yaw; + matrixStack.multiply(Vec3f.POSITIVE_X.getDegreesQuaternion(180.0F + pitch)); + matrixStack.translate(0.0D , -1.75D, -0.5D + (90 + entity.getPitch()) * 0.01f); + matrixStack.scale(1.2f,1.2f,1.2f); + model.setAngles(entity,tickDelta,0,0,yaw,entity.getPitch()); + model.render(matrixStack, vertexConsumers.getBuffer(RenderLayer.getEntityCutout(getTexture(entity))), light, 1,1f,1f,1f,1f); + overlay.render(matrixStack,vertexConsumers,light,entity,yaw,0f,tickDelta,0f,yaw,entity.getPitch()); + matrixStack.pop(); + } + + @Override + public SubmarineModel getModel() { + return model; + } + + @Override + public Identifier getTexture(SubmarineEntity entity) { + return new Identifier(MOD_ID, "textures/entity/submarine/submarine.png"); + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/item/SubmarineItem.java b/src/main/java/eu/midnightdust/nauticality/item/SubmarineItem.java new file mode 100755 index 0000000..19b1706 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/item/SubmarineItem.java @@ -0,0 +1,112 @@ +package eu.midnightdust.nauticality.item; + +import eu.midnightdust.nauticality.NauticalityMain; +import eu.midnightdust.nauticality.entity.SubmarineEntity; +import net.minecraft.block.FluidBlock; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityType; +import net.minecraft.entity.SpawnReason; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.SpawnEggItem; +import net.minecraft.predicate.entity.EntityPredicates; +import net.minecraft.server.world.ServerWorld; +import net.minecraft.stat.Stats; +import net.minecraft.util.Hand; +import net.minecraft.util.TypedActionResult; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.hit.HitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Box; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.RaycastContext; +import net.minecraft.world.World; +import net.minecraft.world.event.GameEvent; + +import java.util.List; +import java.util.function.Predicate; + +public class SubmarineItem extends Item { + private static final Predicate RIDERS; + public SubmarineItem(Settings settings) { + super(settings); + } + public TypedActionResult use(World world, PlayerEntity user, Hand hand) { + ItemStack itemStack = user.getStackInHand(hand); + HitResult hitResult = raycast(world, user, RaycastContext.FluidHandling.SOURCE_ONLY); + if (hitResult.getType() != HitResult.Type.BLOCK) { + return TypedActionResult.pass(itemStack); + } else if (!(world instanceof ServerWorld)) { + return TypedActionResult.success(itemStack); + } else { + BlockHitResult blockHitResult = (BlockHitResult)hitResult; + BlockPos blockPos = blockHitResult.getBlockPos(); + if (!(world.getBlockState(blockPos).getBlock() instanceof FluidBlock)) { + return TypedActionResult.pass(itemStack); + } else if (world.canPlayerModifyAt(user, blockPos) && user.canPlaceOn(blockPos, blockHitResult.getSide(), itemStack)) { + SubmarineEntity boatEntity = new SubmarineEntity(NauticalityMain.SUBMARINE, world); + boatEntity.setPosition(hitResult.getPos().x, hitResult.getPos().y, hitResult.getPos().z); + boatEntity.setYaw(user.getYaw()); + world.spawnEntity(boatEntity); + world.emitGameEvent(user, GameEvent.ENTITY_PLACE, new BlockPos(hitResult.getPos())); + if (!user.getAbilities().creativeMode) { + itemStack.decrement(1); + } + + user.incrementStat(Stats.USED.getOrCreateStat(this)); + world.emitGameEvent(GameEvent.ENTITY_PLACE, user); + return TypedActionResult.consume(itemStack); + } else { + return TypedActionResult.fail(itemStack); + } + } + } + + public TypedActionResult usee(World world, PlayerEntity user, Hand hand) { + ItemStack itemStack = user.getStackInHand(hand); + HitResult hitResult = raycast(world, user, RaycastContext.FluidHandling.SOURCE_ONLY); + if (hitResult.getType() == net.minecraft.util.hit.HitResult.Type.MISS) { + return TypedActionResult.pass(itemStack); + } else { + Vec3d vec3d = user.getRotationVec(1.0F); + List list = world.getOtherEntities(user, user.getBoundingBox().stretch(vec3d.multiply(5.0D)).expand(1.0D), RIDERS); + if (!list.isEmpty()) { + Vec3d vec3d2 = user.getEyePos(); + + for (Entity entity : list) { + Box box = entity.getBoundingBox().expand(entity.getTargetingMargin()); + if (box.contains(vec3d2)) { + return TypedActionResult.pass(itemStack); + } + } + } + + //if (hitResult.getType() == HitResult.Type.BLOCK) { + SubmarineEntity boatEntity = new SubmarineEntity(NauticalityMain.SUBMARINE, world); + boatEntity.setPosition(hitResult.getPos().x, hitResult.getPos().y, hitResult.getPos().z); + boatEntity.setYaw(user.getYaw()); +// if (!world.isSpaceEmpty(boatEntity, boatEntity.getBoundingBox())) { +// return TypedActionResult.fail(itemStack); +// } else + { + if (!world.isClient) { + world.spawnEntity(boatEntity); + world.emitGameEvent(user, GameEvent.ENTITY_PLACE, new BlockPos(hitResult.getPos())); + if (!user.getAbilities().creativeMode) { + itemStack.decrement(1); + } + } + + user.incrementStat(Stats.USED.getOrCreateStat(this)); + return TypedActionResult.success(itemStack, world.isClient()); + } + //} else { + //return TypedActionResult.pass(itemStack); + //} + } + } + static { + RIDERS = EntityPredicates.EXCEPT_SPECTATOR.and(Entity::collides); + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/mixin/BoatEntityAccessor.java b/src/main/java/eu/midnightdust/nauticality/mixin/BoatEntityAccessor.java new file mode 100755 index 0000000..2386804 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/mixin/BoatEntityAccessor.java @@ -0,0 +1,13 @@ +package eu.midnightdust.nauticality.mixin; + +import net.minecraft.entity.vehicle.BoatEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +@Mixin(BoatEntity.class) +public interface BoatEntityAccessor { + @Accessor + void setTicksUnderwater(float ticksUnderwater); + @Accessor + BoatEntity.Location getLocation(); +} diff --git a/src/main/java/eu/midnightdust/nauticality/mixin/GenerationSettingsAccessorMixin.java b/src/main/java/eu/midnightdust/nauticality/mixin/GenerationSettingsAccessorMixin.java new file mode 100755 index 0000000..245beca --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/mixin/GenerationSettingsAccessorMixin.java @@ -0,0 +1,24 @@ +package eu.midnightdust.nauticality.mixin; + +import net.minecraft.world.biome.GenerationSettings; +import net.minecraft.world.gen.feature.ConfiguredFeature; +import net.minecraft.world.gen.feature.ConfiguredStructureFeature; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.List; +import java.util.function.Supplier; + +@Mixin(GenerationSettings.class) +public interface GenerationSettingsAccessorMixin { + @Accessor + List>>> getFeatures(); + + @Accessor + void setFeatures(List>>> features); + @Accessor + List>> getStructureFeatures(); + + @Accessor + void setStructureFeatures(List>> features); +} diff --git a/src/main/java/eu/midnightdust/nauticality/mixin/MixinLivingEntity.java b/src/main/java/eu/midnightdust/nauticality/mixin/MixinLivingEntity.java new file mode 100755 index 0000000..415d10f --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/mixin/MixinLivingEntity.java @@ -0,0 +1,22 @@ +package eu.midnightdust.nauticality.mixin; + +import eu.midnightdust.nauticality.NauticalityMain; +import net.minecraft.entity.EquipmentSlot; +import net.minecraft.entity.LivingEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(LivingEntity.class) +public abstract class MixinLivingEntity { + @Inject(method = "getPreferredEquipmentSlot", at = @At(value = "TAIL"), cancellable = true) + private static void getPreferredEquipmentSlot(ItemStack stack, CallbackInfoReturnable info) { + Item item = stack.getItem(); + if(item == NauticalityMain.Eyepatch) { + info.setReturnValue(EquipmentSlot.HEAD); + } + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/world/NauticalityConfiguredFeatures.java b/src/main/java/eu/midnightdust/nauticality/world/NauticalityConfiguredFeatures.java new file mode 100755 index 0000000..d3a55de --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/world/NauticalityConfiguredFeatures.java @@ -0,0 +1,33 @@ +package eu.midnightdust.nauticality.world; + +import eu.midnightdust.nauticality.NauticalityMain; +import eu.midnightdust.nauticality.config.NauticalityConfig; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.Heightmap; +import net.minecraft.world.gen.ProbabilityConfig; +import net.minecraft.world.gen.decorator.ConfiguredDecorator; +import net.minecraft.world.gen.decorator.Decorator; +import net.minecraft.world.gen.decorator.HeightmapDecoratorConfig; +import net.minecraft.world.gen.feature.*; +import net.minecraft.world.gen.placer.SimpleBlockPlacer; +import net.minecraft.world.gen.stateprovider.SimpleBlockStateProvider; + +import static eu.midnightdust.nauticality.NauticalityMain.MOD_ID; + +public class NauticalityConfiguredFeatures { + public static ConfiguredDecorator SQUARE_HEIGHTMAP_SPREAD_DOUBLE = Decorator.HEIGHTMAP_SPREAD_DOUBLE.configure(new HeightmapDecoratorConfig(Heightmap.Type.MOTION_BLOCKING)).spreadHorizontally(); + public static ConfiguredFeature ALGAE_SWAMP = Feature.RANDOM_PATCH.configure( + new RandomPatchFeatureConfig.Builder(new SimpleBlockStateProvider(NauticalityMain.Algae.getDefaultState()), SimpleBlockPlacer.INSTANCE).tries(10).build()) + .decorate(SQUARE_HEIGHTMAP_SPREAD_DOUBLE).repeat(NauticalityConfig.algaeRate - 1); + + public static ConfiguredFeature ALGAE_UNDERWATER = NauticalityFeatures.UNDERWATER_ALGAE_FEATURE.configure(new ProbabilityConfig(1)).repeat(NauticalityConfig.underwaterAlgaeRate - 1); + public static ConfiguredFeature CATTAIL_SWAMP = NauticalityFeatures.UNDERWATER_CATTAIL_FEATURE.configure(new ProbabilityConfig(1)).repeat(NauticalityConfig.cattailRate - 1); + + public static void init() { + Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new Identifier(MOD_ID, "algae_swamp"), ALGAE_SWAMP); + Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new Identifier(MOD_ID, "algae_underwater"), ALGAE_UNDERWATER); + Registry.register(BuiltinRegistries.CONFIGURED_FEATURE, new Identifier(MOD_ID, "cattail_swamp"), CATTAIL_SWAMP); + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/world/NauticalityFeatures.java b/src/main/java/eu/midnightdust/nauticality/world/NauticalityFeatures.java new file mode 100755 index 0000000..34ebeb7 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/world/NauticalityFeatures.java @@ -0,0 +1,16 @@ +package eu.midnightdust.nauticality.world; + +import eu.midnightdust.nauticality.NauticalityMain; +import eu.midnightdust.nauticality.world.feature.UnderwaterFeature; +import eu.midnightdust.nauticality.world.feature.UnderwaterTallPlantFeature; +import net.minecraft.state.property.Properties; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.gen.ProbabilityConfig; +import net.minecraft.world.gen.stateprovider.SimpleBlockStateProvider; + +public class NauticalityFeatures { + public static SimpleBlockStateProvider Algae = new SimpleBlockStateProvider(NauticalityMain.Algae.getDefaultState().with(Properties.WATERLOGGED, true)); + public static SimpleBlockStateProvider Cattail = new SimpleBlockStateProvider(NauticalityMain.Cattail.getDefaultState()); + public static final UnderwaterFeature UNDERWATER_ALGAE_FEATURE = Registry.register(Registry.FEATURE, "underwater_algae", new UnderwaterFeature(ProbabilityConfig.CODEC, Algae)); + public static final UnderwaterTallPlantFeature UNDERWATER_CATTAIL_FEATURE = Registry.register(Registry.FEATURE, "swamp_cattail", new UnderwaterTallPlantFeature(ProbabilityConfig.CODEC, Cattail)); +} diff --git a/src/main/java/eu/midnightdust/nauticality/world/NauticalityStructures.java b/src/main/java/eu/midnightdust/nauticality/world/NauticalityStructures.java new file mode 100755 index 0000000..1893e42 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/world/NauticalityStructures.java @@ -0,0 +1,28 @@ +package eu.midnightdust.nauticality.world; + +import eu.midnightdust.nauticality.config.NauticalityConfig; +import eu.midnightdust.nauticality.world.structure.PirateShipStructure; +import net.fabricmc.fabric.api.structure.v1.FabricStructureBuilder; +import net.minecraft.util.Identifier; +import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.util.registry.Registry; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.feature.*; + +import static eu.midnightdust.nauticality.NauticalityMain.MOD_ID; + +public class NauticalityStructures { + public static final StructureFeature PIRATE_SHIP = new PirateShipStructure(); + public static final ConfiguredStructureFeature CONFIGURED_PIRATE_SHIP = PIRATE_SHIP.configure(new StructurePoolFeatureConfig(() -> PirateShipStructure.PIRATE_SHIP_POOL, 1)); + + public static void init() { + Registry.register(BuiltinRegistries.CONFIGURED_STRUCTURE_FEATURE, new Identifier(MOD_ID, "pirate_ship"), CONFIGURED_PIRATE_SHIP); + + FabricStructureBuilder> pirateShip = + FabricStructureBuilder.create(new Identifier(MOD_ID,"pirate_ship"), PIRATE_SHIP) + .step(GenerationStep.Feature.SURFACE_STRUCTURES) + .defaultConfig(100 - NauticalityConfig.pirateShipRate, 5, 16) + .superflatFeature(CONFIGURED_PIRATE_SHIP); + pirateShip.register(); + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/world/feature/FeatureInjector.java b/src/main/java/eu/midnightdust/nauticality/world/feature/FeatureInjector.java new file mode 100755 index 0000000..95e6040 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/world/feature/FeatureInjector.java @@ -0,0 +1,56 @@ +package eu.midnightdust.nauticality.world.feature; + +import com.google.common.collect.Lists; +import eu.midnightdust.nauticality.config.NauticalityConfig; +import eu.midnightdust.nauticality.mixin.GenerationSettingsAccessorMixin; +import eu.midnightdust.nauticality.world.NauticalityConfiguredFeatures; +import eu.midnightdust.nauticality.world.NauticalityStructures; +import net.fabricmc.fabric.api.event.registry.RegistryEntryAddedCallback; +import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.gen.GenerationStep; +import net.minecraft.world.gen.feature.ConfiguredFeature; +import net.minecraft.world.gen.feature.ConfiguredStructureFeature; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Supplier; + +public class FeatureInjector { + + public static void init() { + BuiltinRegistries.BIOME.forEach(FeatureInjector::addFeatureToBiome); + RegistryEntryAddedCallback.event(BuiltinRegistries.BIOME).register((i, identifier, biome) -> addFeatureToBiome(biome)); + } + + private static void addFeatureToBiome(Biome biome) { + if (biome.getCategory() == Biome.Category.SWAMP) { + if (NauticalityConfig.algaeRate != 0) addFeature(biome, GenerationStep.Feature.VEGETAL_DECORATION, NauticalityConfiguredFeatures.ALGAE_SWAMP); + if (NauticalityConfig.cattailRate != 0) addFeature(biome, GenerationStep.Feature.VEGETAL_DECORATION, NauticalityConfiguredFeatures.CATTAIL_SWAMP); + } + if (biome.getCategory() == Biome.Category.OCEAN && biome.toString().contains("cold")) { + if (NauticalityConfig.underwaterAlgaeRate != 0) addFeature(biome, GenerationStep.Feature.VEGETAL_DECORATION, NauticalityConfiguredFeatures.ALGAE_UNDERWATER); + } + if (biome.getCategory() == Biome.Category.OCEAN && biome.toString().contains("warm")) { + if (NauticalityConfig.pirateShipRate != 0) addStructureFeature(biome, NauticalityStructures.CONFIGURED_PIRATE_SHIP); + } + } + public static void addFeature(Biome biome, GenerationStep.Feature step, ConfiguredFeature feature) { + GenerationSettingsAccessorMixin generationSettingsAccessor = (GenerationSettingsAccessorMixin) biome.getGenerationSettings(); + int stepIndex = step.ordinal(); + List>>> featuresByStep = new ArrayList<>(generationSettingsAccessor.getFeatures()); + while (featuresByStep.size() <= stepIndex) { + featuresByStep.add(Lists.newArrayList()); + } + List>> features = new ArrayList<>(featuresByStep.get(stepIndex)); + features.add(() -> feature); + featuresByStep.set(stepIndex, features); + generationSettingsAccessor.setFeatures(featuresByStep); + } + public static void addStructureFeature(Biome biome, ConfiguredStructureFeature feature) { + GenerationSettingsAccessorMixin generationSettingsAccessor = (GenerationSettingsAccessorMixin) biome.getGenerationSettings(); + List>> features = new ArrayList<>(generationSettingsAccessor.getStructureFeatures()); + features.add(() -> feature); + generationSettingsAccessor.setStructureFeatures(features); + } +} \ No newline at end of file diff --git a/src/main/java/eu/midnightdust/nauticality/world/feature/UnderwaterFeature.java b/src/main/java/eu/midnightdust/nauticality/world/feature/UnderwaterFeature.java new file mode 100755 index 0000000..bd5d63c --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/world/feature/UnderwaterFeature.java @@ -0,0 +1,45 @@ +package eu.midnightdust.nauticality.world.feature; + +import com.mojang.serialization.Codec; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.Heightmap; +import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.gen.ProbabilityConfig; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.util.FeatureContext; +import net.minecraft.world.gen.stateprovider.BlockStateProvider; + +import java.util.Random; + +public class UnderwaterFeature extends Feature { + BlockStateProvider blockStateProvider; + + public UnderwaterFeature(Codec codec, BlockStateProvider blockStateProvider) { + super(codec); + this.blockStateProvider = blockStateProvider; + } + + @Override + public boolean generate(FeatureContext context) { + Random random = context.getRandom(); + StructureWorldAccess structureWorldAccess = context.getWorld(); + BlockPos blockPos = context.getOrigin(); + int i = random.nextInt(8) - random.nextInt(8); + int j = random.nextInt(8) - random.nextInt(8); + int k = structureWorldAccess.getTopY(Heightmap.Type.OCEAN_FLOOR, blockPos.getX() + i, blockPos.getZ() + j); + BlockPos blockPos2 = new BlockPos(blockPos.getX() + i, k, blockPos.getZ() + j); + + if (structureWorldAccess.getBlockState(blockPos2).isOf(Blocks.WATER) && structureWorldAccess.getBlockState(blockPos2.down()).isSideSolidFullSquare(structureWorldAccess,blockPos2, Direction.UP)) { + BlockState blockState = blockStateProvider.getBlockState(random,blockPos); + + if (blockState.canPlaceAt(structureWorldAccess, blockPos2)) { + structureWorldAccess.setBlockState(blockPos2, blockState, 2); + return true; + } + } + return false; + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/world/feature/UnderwaterTallPlantFeature.java b/src/main/java/eu/midnightdust/nauticality/world/feature/UnderwaterTallPlantFeature.java new file mode 100755 index 0000000..90bcd53 --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/world/feature/UnderwaterTallPlantFeature.java @@ -0,0 +1,49 @@ +package eu.midnightdust.nauticality.world.feature; + +import com.mojang.serialization.Codec; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.TallPlantBlock; +import net.minecraft.block.enums.DoubleBlockHalf; +import net.minecraft.state.property.Properties; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.Heightmap; +import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.gen.ProbabilityConfig; +import net.minecraft.world.gen.feature.Feature; +import net.minecraft.world.gen.feature.util.FeatureContext; +import net.minecraft.world.gen.stateprovider.BlockStateProvider; + +import java.util.Random; + +public class UnderwaterTallPlantFeature extends Feature { + BlockStateProvider blockStateProvider; + + public UnderwaterTallPlantFeature(Codec codec, BlockStateProvider blockStateProvider) { + super(codec); + this.blockStateProvider = blockStateProvider; + } + + @Override + public boolean generate(FeatureContext context) { + Random random = context.getRandom(); + StructureWorldAccess structureWorldAccess = context.getWorld(); + BlockPos blockPos = context.getOrigin(); + int i = random.nextInt(8) - random.nextInt(8); + int j = random.nextInt(8) - random.nextInt(8); + int k = structureWorldAccess.getTopY(Heightmap.Type.OCEAN_FLOOR, blockPos.getX() + i, blockPos.getZ() + j); + BlockPos blockPos2 = new BlockPos(blockPos.getX() + i, k, blockPos.getZ() + j); + + if (structureWorldAccess.getBlockState(blockPos2).isOf(Blocks.WATER)) { + BlockState blockState = blockStateProvider.getBlockState(random,blockPos); + BlockState blockState2 = blockStateProvider.getBlockState(random,blockPos).with(Properties.DOUBLE_BLOCK_HALF, DoubleBlockHalf.UPPER); + + if (blockState.canPlaceAt(structureWorldAccess, blockPos2)) { + structureWorldAccess.setBlockState(blockPos2, blockState, 2); + structureWorldAccess.setBlockState(blockPos2.up(), blockState2, 2); + return true; + } + } + return false; + } +} diff --git a/src/main/java/eu/midnightdust/nauticality/world/structure/PirateShipStructure.java b/src/main/java/eu/midnightdust/nauticality/world/structure/PirateShipStructure.java new file mode 100755 index 0000000..3c98b0a --- /dev/null +++ b/src/main/java/eu/midnightdust/nauticality/world/structure/PirateShipStructure.java @@ -0,0 +1,76 @@ +package eu.midnightdust.nauticality.world.structure; + +import com.google.common.collect.ImmutableList; +import com.mojang.datafixers.util.Pair; +import net.minecraft.structure.MarginedStructureStart; +import net.minecraft.structure.PoolStructurePiece; +import net.minecraft.structure.StructureManager; +import net.minecraft.structure.pool.StructurePool; +import net.minecraft.structure.pool.StructurePoolBasedGenerator; +import net.minecraft.structure.pool.StructurePoolElement; +import net.minecraft.structure.pool.StructurePools; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.ChunkPos; +import net.minecraft.util.registry.DynamicRegistryManager; +import net.minecraft.world.HeightLimitView; +import net.minecraft.world.biome.Biome; +import net.minecraft.world.biome.source.BiomeSource; +import net.minecraft.world.gen.ChunkRandom; +import net.minecraft.world.gen.chunk.ChunkGenerator; +import net.minecraft.world.gen.feature.StructureFeature; +import net.minecraft.world.gen.feature.StructurePoolFeatureConfig; + +import static eu.midnightdust.nauticality.NauticalityMain.MOD_ID; + +public class PirateShipStructure extends StructureFeature { + public static final Identifier PIRATE_SHIPS = new Identifier(MOD_ID,"pirate_ships"); + public static final StructurePool PIRATE_SHIP_POOL = StructurePools.register(new StructurePool(PIRATE_SHIPS, new Identifier("empty"), ImmutableList.of( + new Pair<>(StructurePoolElement.ofSingle(MOD_ID + ":pirate_ship"), 1)), + StructurePool.Projection.RIGID + ) + ); + final boolean field_25836; + final boolean surface; + private final int structureStartY; + + public PirateShipStructure() { + this(-2); + } + + public PirateShipStructure(int structureStartY) { + this(structureStartY, true, true); + } + + public PirateShipStructure(int structureStartY, boolean field_25836, boolean surface) { + super(StructurePoolFeatureConfig.CODEC); + this.structureStartY = structureStartY; + this.field_25836 = field_25836; + this.surface = surface; + } + + + @Override + public StructureStartFactory getStructureStartFactory() { + return PirateShipStructure.Start::new; + } + + @Override + protected boolean shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long worldSeed, ChunkRandom random, ChunkPos pos, Biome biome, ChunkPos chunkPos, StructurePoolFeatureConfig config, HeightLimitView world) { + return true; + } + + public static class Start extends MarginedStructureStart { + public Start(StructureFeature s, ChunkPos c, int i, long l) { + super(s, c, i, l); + } + + @Override + public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, StructureManager manager, ChunkPos pos, Biome biome, StructurePoolFeatureConfig config, HeightLimitView world) { + PirateShipStructure structure = (PirateShipStructure) this.getFeature(); + StructurePoolBasedGenerator.method_30419(registryManager, config, PoolStructurePiece::new, chunkGenerator, manager, new BlockPos(pos.x << 4, structure.structureStartY, pos.z << 4), this, this.random, structure.field_25836, structure.surface, world); + this.setBoundingBoxFromChildren(); + } + } + +} \ No newline at end of file diff --git a/src/main/resources/assets/nauticality/blockstates/algae.json b/src/main/resources/assets/nauticality/blockstates/algae.json new file mode 100755 index 0000000..fd3a563 --- /dev/null +++ b/src/main/resources/assets/nauticality/blockstates/algae.json @@ -0,0 +1,10 @@ +{ + "variants": { + "": [ + {"model": "nauticality:block/algae"}, + {"model": "nauticality:block/algae", "y": 90}, + {"model": "nauticality:block/algae", "y": 180}, + {"model": "nauticality:block/algae", "y": 270} + ] + } +} diff --git a/src/main/resources/assets/nauticality/blockstates/cattail.json b/src/main/resources/assets/nauticality/blockstates/cattail.json new file mode 100755 index 0000000..b7f4c82 --- /dev/null +++ b/src/main/resources/assets/nauticality/blockstates/cattail.json @@ -0,0 +1,10 @@ +{ + "variants": { + "half=lower": { + "model": "nauticality:block/cattail_bottom" + }, + "half=upper": { + "model": "nauticality:block/cattail_top" + } + } +} diff --git a/src/main/resources/assets/nauticality/icon.png b/src/main/resources/assets/nauticality/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..3df4b01493532119f688c179ac3888acb21b0357 GIT binary patch literal 45740 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∋g56U&0oPa`-m8P_mKYbpJ%8vj+-1K&|RXc*t!{K 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nauticality/textures/block/algae_g.png b/src/main/resources/assets/nauticality/textures/block/algae_g.png new file mode 100755 index 0000000000000000000000000000000000000000..34e4c0e79ff9038ab7e16d53466ff71bee85688a GIT binary patch literal 5914 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 Telr$t72xaX?{RSYl7xQ)bBoxs literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nauticality/textures/block/cattail_bottom.png b/src/main/resources/assets/nauticality/textures/block/cattail_bottom.png new file mode 100755 index 0000000000000000000000000000000000000000..40b7fb3942ced6885427fd8b666f2ce796012448 GIT binary patch literal 6289 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 W#M0NlWSCRw(!AV!Tz5^Fwcvj_mPc*? literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nauticality/textures/block/cattail_top.png b/src/main/resources/assets/nauticality/textures/block/cattail_top.png new file mode 100755 index 0000000000000000000000000000000000000000..67724fd50b972f8beb0b681d0c8806c440eadc26 GIT binary patch literal 6351 zcmeHKXIK;28V)K|0avPGi9xzUGGUTTVo+FWR*FjzQIVY_6C5SQB$x;mKtM%N5kyzS zMQpf;EQ%ma0jVmY0;|{cs#ri&bP*6l#5)1&bMGIYySu;4^GwP)-}j#Heb0O5%WPTT z-z{Z0YdM^%ini_AT2)%L#^-C-iH+1=8(Y0?-yNAHb?@a3t0kUg=22GZ zADz>b*TX-r85%Nk{gU8|!LRARoOspL^-TPNmVM`s+aXlFnGq}fqwH>I#ZI2NXMSVb z%Ynt)-bT1Bb&e@le;g1ZuMM=GG&apA!PeqQ%gL~VV@z}zuas010c9MT1TWSN*(lqLFCA z!`f+ngt)=>O~l}_V@{>nmGRB*6MXLF)8*`tQ{iiT4hht>wpPE4w)|nt zLXCLcp>E4)7wrc0#F;CRX5j@5TO6*iI?Bvy$ZNW5m%J$Juk`pOcAP=Dq;gZ{_Y-WS zhK3$yA-!O=see_LcA7zf!8pH*`z_MLPhXn5X{yXN(-*8U4qB`IYxOSMpySyFt%0E~ zNi^DuOh1Q4`i-^Yfx;H&Gxq1zq#M*@Dvoo}!ud*r4G20MYrrF-k`g)y9e_q#<*y>hCXJXZb&6UsNZ|gG9%jc_- z7}6C^{h`ET8uEEN-&A*vUlAcs&vFaVN`j_3x5oBvbQ-_KWr}y#o6}~K$6m4EG(>JQ znsSdea3Q7eT!?|+;QlAZ!`?kl3iZzCj>Y;@hi$yHUg>un@hV>NT}fAZfTKcp2kT;2 z`mVv;zM~m;3QAiTh_mzgWxsYOCKcZ~IIHxB+N{a@TQBRSzB!%ur08^LBU}A`Z{6h7 z zi4Sha@NO)4a}uecVD4{B zyrKD`gb_s`)DOi9sji*Ap;hj;*Y!Q6bl1vSo|P#>3hF9-+V!)uI@oEMU3umV2g9GA zoYgf_U%FqvYjMr*?J^gr%Z_JUbZubu0ju(ut&sse-8rVMFFoECn_PdsaGl;1^>VMP z)cGqdO3))&{l2GyhKlm%q#aTMkA5tUZP`7^+U@a#Fz4VqscBonj?<29hQ-TQ)jI5+ zYi`VatF?EB-E`offAWf&rmJJsz4LwSu2`5HO^$P)7M6K6;?m-44OigCzSs?(X#$g; zd<)+6aanuQQq+6~g`V8ITT&*D?<)_!8Mr~cp=kU=8~uiWsRVn)suh_b?vgu;O0m+4 z~)@f(4zI9wp61H0r0mSyx`V)u z5A7fyFUyXZz2oA%mgjlprbU~R_4P5qQ|ly+O@6n@10HHyGycF*&#;#$B^`0!37jWy zN{@Qn5_Wi%pSpJI-I5~D9p-vV8VCfnILyUm0msGVL$AO)#Qt^3j-D5srq+Zu|DG5y z^)m7P&V#IAL!(tKwuT44&o){dL7DM3)>4;~xb@Jz#gadH`A_cMKasOBhp4qa`fM@N zro?m0yZJf*mkmF!D~;Mwsvz9Rw%%tnMHBiry}2Q7XJf8Ta*#a6!*u30P9l1F3s>jd zgQwHg3h&eer@bql=aILs$dE{!*kqf48HgwPif?H=SjSyv!?EpVc4u=;X07L!JnJ@l zkacP5rH74Pkq7o#87EGgt@zE4O1p1!fA6oIsZFTk!pUOrcU#(#2;Wy#%a?@)3s{Xa zXXS6U*gTPVD1mDG+jqwTt!lpC_sU@Iu=5S_uKAWhlXaNJ3*t2z`Zm6;d?CuMdKkCI z(3{X^Quo?agH-Bt`Z;{JZhJFZEw-s*_nlWkW)+vMI{ONZ=ZqOFjM@6M(DH@ao;ej2 zDKmfGWv7lwKDIG~8 zxGem;YM4wSj)cfpI+7N7FCe;zr6>`yhwLeUn-W`1CC$|#vZZ_h%g@#QJp}&Ck+fVc zm$1lWg+gJkaIhCk!^j|$$s|*#WGWTFBLLYNksMJ1BAK}gVidy_mGPvQM2?9?L=`5& z6-US&NhExp_@O?b#M}ELyh!$51zZoZ5|NNWdkR@7B!8YEle?|PLEabiKQm+j_+KEh zA1V_^NO`E+YE&dQ{~UtP`H7gaDZDzyO#6m`dfsbQq+34&f`sa91MXpI4=V;;W!|4iMr%697C4L;)aJ zzyz2MI4G6QU^*aNIuE5IBh~PEEO)U~h~V3a36U_AED?o`OsE8BIWOQilBo8SPa_M$ z5xD?Qa3pzQq6p=ui2zK9`pXfOnjoDDfppk`L4z3(g+~1pv=Eiba3`uTL5e*U8ktdT z3kxTM3yY|HiUW*{<6KxSQWTMkr2%4bxFbnb5>b^oVs9dQbW=Pr86L4l<@ooW_eWQa z{u(_3;n>I&kvL*o7Q!1{M24(J`6CPAd81Rj<%lQ@#n1P9Lwy*>{>NtV`Je;Hr#b)> zDw795AdCPALZt(I)BzNL6o`k5{w2ChERZV@De4@CGsW591{z^Qv>uVt=F4csa#W=g zg$e=`Isn1}RFDNiEDF<(LS<1XB=X-+(E*`DJQ$+k9;Q(N2%;kZj0mUzorlw<@#qXb zpZR6c{})AO00m}&6qW=1pQFg5@%elT9R#>MoE?NP`2fsCV1N!nd;y&fqDD)=$@NtVd{yu_cYTxVs}%UE;BW5w%jDAe^kj~T@W1N{{JDGkPnAvhGrI5XKv*E;Yiw{igV!rkvyLruj(2P#t32WyL(fhpus4ode)Y zU4EcmEX8nLuIX*lX-R4ZVyCG$<$ppViN^l2O$t|!0$DfT}$?t)(c literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nauticality/textures/entity/glow_fish/glow_fish.png b/src/main/resources/assets/nauticality/textures/entity/glow_fish/glow_fish.png new file mode 100755 index 0000000000000000000000000000000000000000..7ab9e94017c725d6f460fc296bbb8d3bcccc79ba GIT binary patch literal 6479 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 BqTk&wlv*qd8^g@Epi5uRePfPzL# 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nauticality/textures/entity/illager/pirate.png b/src/main/resources/assets/nauticality/textures/entity/illager/pirate.png new file mode 100755 index 0000000000000000000000000000000000000000..ae8d66ebac62da4f95b9b6dcdb373db1b80a28a1 GIT binary patch literal 9860 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nauticality/textures/entity/submarine/submarine_emissive_layer.png b/src/main/resources/assets/nauticality/textures/entity/submarine/submarine_emissive_layer.png new file mode 100755 index 0000000000000000000000000000000000000000..3310b874f74e237317c482da9ea5f32d8f1bfbf9 GIT binary patch literal 11605 zcmeHsXIN9)wsz=6dRJQLH4qX4gx&>_j(|uDB%wp3gEZ*~(v{v(nl$OXi6B*aFN%VK z0)ik#;S274&e{9>?w|AAd%s_2wpFTd>1RT9K2aTY2lZ3 zk1UlTeeO)-pIN^joRgF$qwXH>xYan{5xAq-%lcm3yyouZkFKSkl)>&*J>ltEU z!I3W{xfnY;~Nb;eI&rpp)pbk%aJcOlQ30Zbr4`sjpqI z$FEq!fYv#3#vlpwneVUT*2iniYb>@HsubG-}BwC51715ShxHxuJe~< zXOPU>RZ>5vyaR;L=102H+bX$JKJpPNUxEhoWeJ0V1AlRK`O7jTWL&%EtlOpX-QKG9 znbg6+L@uSerJLEjtQDR$XD(|-+>!6P=IqU^FDW_0vo-^v!8h>elV5w8Tibf3+-+SC z?1dxA#y4}F$L%aUe?ZbBxHw~;+}A!Lw<4L3&SN1Jn=VY?c%5z&&oeuptjp1#YM_JL z^)!$IzM1MF(z0nBK*ICX$X($1^kjJj8zv4mW3E-%0ApKZYPs*Tfmi7@7f300JnbRc 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/nauticality/textures/item/glow_fish_bucket.png b/src/main/resources/assets/nauticality/textures/item/glow_fish_bucket.png new file mode 100755 index 0000000000000000000000000000000000000000..96f9859330fa578a5df54ebb2fae42ff7330bbec GIT binary patch literal 5568 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 a#u&knf>nW?Ck8$d}n9o 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