commit d3f591015e19cafd79eb3fe600dbb62478c382e9 Author: candle Date: Sat May 10 15:35:30 2025 -0400 initial commit, should have parity with fabric diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0d220c0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +build/ +bin/ +run/ +run-data/ +.idea/ +.gradle/ diff --git a/README b/README new file mode 100644 index 0000000..e622bff --- /dev/null +++ b/README @@ -0,0 +1,4 @@ +Traveler's Suitcase [FORGE] +ORIGINAL: https://github.com/BennyBoops/PocketRepose + +This is a forge port of the PocketRepose mod. \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..84c3895 --- /dev/null +++ b/build.gradle @@ -0,0 +1,207 @@ +buildscript { + repositories { + // These repositories are only for Gradle plugins, put any other repositories in the repository block further below + maven { url = 'https://repo.spongepowered.org/repository/maven-public/' } + mavenCentral() + } + dependencies { + classpath 'org.spongepowered:mixingradle:0.7-SNAPSHOT' + } +} + +plugins { + id 'eclipse' + id 'idea' + id 'net.minecraftforge.gradle' version '[6.0.16,6.2)' +} + +apply plugin: 'org.spongepowered.mixin' + +group = mod_group_id +version = mod_version + +base { + archivesName = mod_id +} + +java { + toolchain.languageVersion = JavaLanguageVersion.of(17) +} + +minecraft { + // The mappings can be changed at any time and must be in the following format. + // Channel: Version: + // official MCVersion Official field/method names from Mojang mapping files + // parchment YYYY.MM.DD-MCVersion Open community-sourced parameter names and javadocs layered on top of official + // + // You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. + // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md + // + // Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge + // Additional setup is needed to use their mappings: https://parchmentmc.org/docs/getting-started + // + // Use non-default mappings at your own risk. They may not always work. + // Simply re-run your setup task after changing the mappings to update your workspace. + mappings channel: mapping_channel, version: mapping_version + + // When true, this property will have all Eclipse/IntelliJ IDEA run configurations run the "prepareX" task for the given run configuration before launching the game. + // In most cases, it is not necessary to enable. + // enableEclipsePrepareRuns = true + // enableIdeaPrepareRuns = true + + // This property allows configuring Gradle's ProcessResources task(s) to run on IDE output locations before launching the game. + // It is REQUIRED to be set to true for this template to function. + // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html + copyIdeResources = true + + // When true, this property will add the folder name of all declared run configurations to generated IDE run configurations. + // The folder name can be set on a run configuration using the "folderName" property. + // By default, the folder name of a run configuration is the name of the Gradle project containing it. + // generateRunFolders = true + + // This property enables access transformers for use in development. + // They will be applied to the Minecraft artifact. + // The access transformer file can be anywhere in the project. + // However, it must be at "META-INF/accesstransformer.cfg" in the final mod jar to be loaded by Forge. + // This default location is a best practice to automatically put the file in the right place in the final jar. + // See https://docs.minecraftforge.net/en/latest/advanced/accesstransformers/ for more information. + // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') + + // Default run configurations. + // These can be tweaked, removed, or duplicated as needed. + runs { + // applies to all the run configs below + configureEach { + workingDirectory project.file('run') + + // Recommended logging data for a userdev environment + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + property 'forge.logging.markers', 'REGISTRIES' + + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + property 'forge.logging.console.level', 'debug' + + mods { + "${mod_id}" { + source sourceSets.main + } + } + } + + client { + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + property 'forge.enabledGameTestNamespaces', mod_id + } + + server { + property 'forge.enabledGameTestNamespaces', mod_id + args '--nogui' + } + + // This run config launches GameTestServer and runs all registered gametests, then exits. + // By default, the server will crash when no gametests are provided. + // The gametest system is also enabled by default for other run configs under the /test command. + gameTestServer { + property 'forge.enabledGameTestNamespaces', mod_id + } + + data { + // example of overriding the workingDirectory set in configureEach above + workingDirectory project.file('run-data') + + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') + } + } +} + +mixin { + add sourceSets.main, "${mod_id}.refmap.json" + + config "${mod_id}.mixins.json" +} + +// Include resources generated by data generators. +sourceSets.main.resources { srcDir 'src/generated/resources' } + +repositories { + // Put repositories for dependencies here + // ForgeGradle automatically adds the Forge maven and Maven Central for you + + // If you have mod jar dependencies in ./libs, you can declare them as a repository like so. + // See https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver + // flatDir { + // dir 'libs' + // } +} + +dependencies { + // Specify the version of Minecraft to use. + // Any artifact can be supplied so long as it has a "userdev" classifier artifact and is a compatible patcher artifact. + // The "userdev" classifier will be requested and setup by ForgeGradle. + // If the group id is "net.minecraft" and the artifact id is one of ["client", "server", "joined"], + // then special handling is done to allow a setup of a vanilla dependency without the use of an external repository. + minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" + + // Example mod dependency with JEI - using fg.deobf() ensures the dependency is remapped to your development mappings + // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime + // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-common-api:${jei_version}") + // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") + // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") + + // Example mod dependency using a mod jar from ./libs with a flat dir repository + // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar + // The group id is ignored when searching -- in this case, it is "blank" + // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") + + // For more info: + // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html + // http://www.gradle.org/docs/current/userguide/dependency_management.html + + annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' + +} + +// This block of code expands all declared replace properties in the specified resource targets. +// A missing property will result in an error. Properties are expanded using ${} Groovy notation. +// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments. +// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html +tasks.named('processResources', ProcessResources).configure { + var replaceProperties = [minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range, + forge_version : forge_version, forge_version_range: forge_version_range, + loader_version_range: loader_version_range, + mod_id : mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version, + mod_authors : mod_authors, mod_description: mod_description,] + + inputs.properties replaceProperties + + filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { + expand replaceProperties + [project: project] + } +} + +// Example for how to get properties into the manifest for reading at runtime. +tasks.named('jar', Jar).configure { + manifest { + attributes(["Specification-Title" : mod_id, + "Specification-Vendor" : mod_authors, + "Specification-Version" : "1", // We are version 1 of ourselves + "Implementation-Title" : project.name, + "Implementation-Version" : project.jar.archiveVersion, + "Implementation-Vendor" : mod_authors, + "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")]) + } + + // This is the preferred method to reobfuscate your jar file + finalizedBy 'reobfJar' +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..d011161 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,49 @@ +org.gradle.jvmargs=-Xmx3G +org.gradle.daemon=false +# The Minecraft version must agree with the Forge version to get a valid artifact +minecraft_version=1.20.1 +# The Minecraft version range can use any release version of Minecraft as bounds. +# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly +# as they do not follow standard versioning conventions. +minecraft_version_range=[1.20.1,1.21) +# The Forge version must agree with the Minecraft version to get a valid artifact +forge_version=47.4.0 +# The Forge version range can use any version of Forge as bounds or match the loader version range +forge_version_range=[47,) +# The loader version range can only use the major version of Forge/FML as bounds +loader_version_range=[47,) +# The mapping channel to use for mappings. +# The default set of supported mapping channels are ["official", "snapshot", "snapshot_nodoc", "stable", "stable_nodoc"]. +# Additional mapping channels can be registered through the "channelProviders" extension in a Gradle plugin. +# +# | Channel | Version | | +# |-----------|----------------------|--------------------------------------------------------------------------------| +# | official | MCVersion | Official field/method names from Mojang mapping files | +# | parchment | YYYY.MM.DD-MCVersion | Open community-sourced parameter names and javadocs layered on top of official | +# +# You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. +# See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md +# +# Parchment is an unofficial project maintained by ParchmentMC, separate from Minecraft Forge. +# Additional setup is needed to use their mappings, see https://parchmentmc.org/docs/getting-started +mapping_channel=official +# The mapping version to query from the mapping channel. +# This must match the format required by the mapping channel. +mapping_version=1.20.1 +# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} +# Must match the String constant located in the main mod class annotated with @Mod. +mod_id=travelerssuitcase +# The human-readable display name for the mod. +mod_name=TravelersSuitcase +# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. +mod_license=MIT +# The mod version. See https://semver.org/ +mod_version=1.0-SNAPSHOT +# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. +# This should match the base package used for the mod sources. +# See https://maven.apache.org/guides/mini/guide-naming-conventions.html +mod_group_id=io.lampnet +# The authors of the mod. This is a simple text string that is used for display purposes in the mod list. +mod_authors=BennyBoops, Candle +# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. +mod_description=Forge Port of Pocket Repose diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e644113 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..a441313 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..b740cf1 --- /dev/null +++ b/gradlew @@ -0,0 +1,249 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# 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 POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + 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 + if ! command -v java >/dev/null 2>&1 + then + 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 +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# 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"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..7101f8e --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@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=. +@rem This is normally unused +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% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +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% equ 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! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..b46bbb4 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,15 @@ +pluginManagement { + repositories { + gradlePluginPortal() + maven { + name = 'MinecraftForge' + url = 'https://maven.minecraftforge.net/' + } + } +} + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' +} + +rootProject.name = 'travelerssuitcase' diff --git a/src/main/java/io/lampnet/travelerssuitcase/Config.java b/src/main/java/io/lampnet/travelerssuitcase/Config.java new file mode 100644 index 0000000..0490065 --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/Config.java @@ -0,0 +1,50 @@ +package io.lampnet.travelerssuitcase; + +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.Item; +import net.minecraftforge.common.ForgeConfigSpec; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.event.config.ModConfigEvent; +import net.minecraftforge.registries.ForgeRegistries; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +// An example config class. This is not required, but it's a good idea to have one to keep your config organized. +// Demonstrates how to use Forge's config APIs +@Mod.EventBusSubscriber(modid = TravelersSuitcase.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) +public class Config { + private static final ForgeConfigSpec.Builder BUILDER = new ForgeConfigSpec.Builder(); + + private static final ForgeConfigSpec.BooleanValue LOG_DIRT_BLOCK = BUILDER.comment("Whether to log the dirt block on common setup").define("logDirtBlock", true); + + private static final ForgeConfigSpec.IntValue MAGIC_NUMBER = BUILDER.comment("A magic number").defineInRange("magicNumber", 42, 0, Integer.MAX_VALUE); + + public static final ForgeConfigSpec.ConfigValue MAGIC_NUMBER_INTRODUCTION = BUILDER.comment("What you want the introduction message to be for the magic number").define("magicNumberIntroduction", "The magic number is... "); + + // a list of strings that are treated as resource locations for items + private static final ForgeConfigSpec.ConfigValue> ITEM_STRINGS = BUILDER.comment("A list of items to log on common setup.").defineListAllowEmpty("items", List.of("minecraft:iron_ingot"), Config::validateItemName); + + static final ForgeConfigSpec SPEC = BUILDER.build(); + + public static boolean logDirtBlock; + public static int magicNumber; + public static String magicNumberIntroduction; + public static Set items; + + private static boolean validateItemName(final Object obj) { + return obj instanceof final String itemName && ForgeRegistries.ITEMS.containsKey(new ResourceLocation(itemName)); + } + + @SubscribeEvent + static void onLoad(final ModConfigEvent event) { + logDirtBlock = LOG_DIRT_BLOCK.get(); + magicNumber = MAGIC_NUMBER.get(); + magicNumberIntroduction = MAGIC_NUMBER_INTRODUCTION.get(); + + // convert the list of strings into a set of items + items = ITEM_STRINGS.get().stream().map(itemName -> ForgeRegistries.ITEMS.getValue(new ResourceLocation(itemName))).collect(Collectors.toSet()); + } +} diff --git a/src/main/java/io/lampnet/travelerssuitcase/SuitcaseRegistryState.java b/src/main/java/io/lampnet/travelerssuitcase/SuitcaseRegistryState.java new file mode 100644 index 0000000..243d719 --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/SuitcaseRegistryState.java @@ -0,0 +1,76 @@ +package io.lampnet.travelerssuitcase; + +import io.lampnet.travelerssuitcase.block.entity.SuitcaseBlockEntity; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.server.MinecraftServer; +import net.minecraft.world.level.saveddata.SavedData; +import net.minecraft.core.BlockPos; +import net.minecraft.world.level.Level; + +import java.util.HashMap; +import java.util.Map; + +public class SuitcaseRegistryState extends SavedData { + private static final String REGISTRY_KEY = "travelers_suitcase_registry"; + private final Map> registry = new HashMap<>(); + + public SuitcaseRegistryState() { + super(); + } + + @Override + public CompoundTag save(CompoundTag nbt) { + ListTag keystonesList = new ListTag(); + for (Map.Entry> keystoneEntry : registry.entrySet()) { + CompoundTag keystoneNbt = new CompoundTag(); + keystoneNbt.putString("KeystoneName", keystoneEntry.getKey()); + ListTag playersList = new ListTag(); + for (Map.Entry playerEntry : keystoneEntry.getValue().entrySet()) { + CompoundTag playerNbt = new CompoundTag(); + playerNbt.putString("UUID", playerEntry.getKey()); + BlockPos pos = playerEntry.getValue(); + playerNbt.putInt("X", pos.getX()); + playerNbt.putInt("Y", pos.getY()); + playerNbt.putInt("Z", pos.getZ()); + + playersList.add(playerNbt); + } + keystoneNbt.put("Players", playersList); + keystonesList.add(keystoneNbt); + } + nbt.put("SuitcaseRegistry", keystonesList); + return nbt; + } + + public static SuitcaseRegistryState load(CompoundTag nbt) { + SuitcaseRegistryState state = new SuitcaseRegistryState(); + if (nbt.contains("SuitcaseRegistry")) { + ListTag keystonesList = nbt.getList("SuitcaseRegistry", Tag.TAG_COMPOUND); + for (int i = 0; i < keystonesList.size(); i++) { + CompoundTag keystoneNbt = keystonesList.getCompound(i); + String keystoneName = keystoneNbt.getString("KeystoneName"); + Map playersMap = new HashMap<>(); + ListTag playersList = keystoneNbt.getList("Players", Tag.TAG_COMPOUND); + for (int j = 0; j < playersList.size(); j++) { + CompoundTag playerNbt = playersList.getCompound(j); + String uuid = playerNbt.getString("UUID"); + BlockPos pos = new BlockPos( + playerNbt.getInt("X"), + playerNbt.getInt("Y"), + playerNbt.getInt("Z") + ); + playersMap.put(uuid, pos); + } + state.registry.put(keystoneName, playersMap); + } + } + return state; + } + + public static SuitcaseRegistryState getState(MinecraftServer server) { + return server.getLevel(Level.OVERWORLD).getDataStorage() + .computeIfAbsent(SuitcaseRegistryState::load, SuitcaseRegistryState::new, REGISTRY_KEY); + } +} \ No newline at end of file diff --git a/src/main/java/io/lampnet/travelerssuitcase/TravelersSuitcase.java b/src/main/java/io/lampnet/travelerssuitcase/TravelersSuitcase.java new file mode 100644 index 0000000..390d473 --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/TravelersSuitcase.java @@ -0,0 +1,86 @@ +package io.lampnet.travelerssuitcase; + +import io.lampnet.travelerssuitcase.block.ModBlocks; +import io.lampnet.travelerssuitcase.block.entity.ModBlockEntities; +// import io.lampnet.travelerssuitcase.block.entity.SuitcaseBlockEntity; // Commented out for now +// import io.lampnet.travelerssuitcase.config.SuitcaseRegistryState; // Commented out for now +import io.lampnet.travelerssuitcase.item.ModItemGroups; +import io.lampnet.travelerssuitcase.item.ModItems; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +@Mod(TravelersSuitcase.MODID) +public class TravelersSuitcase { + public static final String MODID = "travelerssuitcase"; + public static final Logger LOGGER = LogManager.getLogger(MODID); + + public TravelersSuitcase() { + IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + + // Register items, blocks, etc. + ModItems.register(modEventBus); + ModBlocks.register(modEventBus); + ModItemGroups.register(modEventBus); + ModBlockEntities.register(modEventBus); + + // Register world load event + MinecraftForge.EVENT_BUS.addListener(this::onWorldLoad); + + // Register server events + // MinecraftForge.EVENT_BUS.addListener(this::onServerStarting); + // MinecraftForge.EVENT_BUS.addListener(this::onServerStopping); + + LOGGER.info("Initializing " + MODID); + } + + private void onWorldLoad(net.minecraftforge.event.level.LevelEvent.Load event) { + if (event.getLevel() instanceof net.minecraft.server.level.ServerLevel world) { + if (world.dimension().location().getNamespace().equals(MODID)) { + String dimensionName = world.dimension().location().getPath(); + java.nio.file.Path structureMarkerPath = world.getServer().getWorldPath(net.minecraft.world.level.storage.LevelResource.ROOT) + .resolve("data") + .resolve(MODID) + .resolve("pending_structures") + .resolve(dimensionName + ".txt"); + if (java.nio.file.Files.exists(structureMarkerPath)) { + try { + net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate template = world.getServer().getStructureManager() + .get(new net.minecraft.resources.ResourceLocation(MODID, "pocket_island_01")) + .orElse(null); + if (template != null) { + net.minecraft.core.BlockPos pos = new net.minecraft.core.BlockPos(0, 64, 0); + template.placeInWorld( + world, + pos, + pos, + new net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings(), + world.getRandom(), + net.minecraft.world.level.block.Block.UPDATE_ALL + ); + java.nio.file.Files.delete(structureMarkerPath); + } + } catch (java.io.IOException e) { + LOGGER.error("Failed to place structure", e); + } + } + } + } + } + + /* Commented out for now + private void onServerStarting(net.minecraftforge.event.server.ServerStartingEvent event) { + SuitcaseRegistryState state = SuitcaseRegistryState.getState(event.getServer()); + SuitcaseBlockEntity.initializeSuitcaseRegistry(state.registry); + } + + private void onServerStopping(net.minecraftforge.event.server.ServerStoppingEvent event) { + SuitcaseRegistryState state = SuitcaseRegistryState.getState(event.getServer()); + SuitcaseBlockEntity.saveSuitcaseRegistryTo(state.registry); + state.setDirty(); + } + */ +} \ No newline at end of file diff --git a/src/main/java/io/lampnet/travelerssuitcase/Travelerssuitcase.java b/src/main/java/io/lampnet/travelerssuitcase/Travelerssuitcase.java new file mode 100644 index 0000000..8c8fad5 --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/Travelerssuitcase.java @@ -0,0 +1,86 @@ +package io.lampnet.travelerssuitcase; + +import io.lampnet.travelerssuitcase.block.ModBlocks; +import io.lampnet.travelerssuitcase.block.entity.ModBlockEntities; +// import io.lampnet.travelerssuitcase.block.entity.SuitcaseBlockEntity; // Commented out for now +// import io.lampnet.travelerssuitcase.config.SuitcaseRegistryState; // Commented out for now +import io.lampnet.travelerssuitcase.item.ModItemGroups; +import io.lampnet.travelerssuitcase.item.ModItems; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +@Mod(TravelersSuitcase.MODID) +public class Travelerssuitcase { + public static final String MODID = "travelerssuitcase"; + public static final Logger LOGGER = LogManager.getLogger(MODID); + + public Travelerssuitcase() { + IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus(); + + // Register items, blocks, etc. + ModItems.register(modEventBus); + ModBlocks.register(modEventBus); + ModItemGroups.register(modEventBus); + ModBlockEntities.register(modEventBus); + + // Register world load event + MinecraftForge.EVENT_BUS.addListener(this::onWorldLoad); + + // Register server events + // MinecraftForge.EVENT_BUS.addListener(this::onServerStarting); + // MinecraftForge.EVENT_BUS.addListener(this::onServerStopping); + + LOGGER.info("Initializing " + MODID); + } + + private void onWorldLoad(net.minecraftforge.event.level.LevelEvent.Load event) { + if (event.getLevel() instanceof net.minecraft.server.level.ServerLevel world) { + if (world.dimension().location().getNamespace().equals(MODID)) { + String dimensionName = world.dimension().location().getPath(); + java.nio.file.Path structureMarkerPath = world.getServer().getWorldPath(net.minecraft.world.level.storage.LevelResource.ROOT) + .resolve("data") + .resolve(MODID) + .resolve("pending_structures") + .resolve(dimensionName + ".txt"); + if (java.nio.file.Files.exists(structureMarkerPath)) { + try { + net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate template = world.getServer().getStructureManager() + .get(new net.minecraft.resources.ResourceLocation(MODID, "pocket_island_01")) + .orElse(null); + if (template != null) { + net.minecraft.core.BlockPos pos = new net.minecraft.core.BlockPos(0, 64, 0); + template.placeInWorld( + world, + pos, + pos, + new net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings(), + world.getRandom(), + net.minecraft.world.level.block.Block.UPDATE_ALL + ); + java.nio.file.Files.delete(structureMarkerPath); + } + } catch (java.io.IOException e) { + LOGGER.error("Failed to place structure", e); + } + } + } + } + } + + /* Commented out for now + private void onServerStarting(net.minecraftforge.event.server.ServerStartingEvent event) { + SuitcaseRegistryState state = SuitcaseRegistryState.getState(event.getServer()); + SuitcaseBlockEntity.initializeSuitcaseRegistry(state.registry); + } + + private void onServerStopping(net.minecraftforge.event.server.ServerStoppingEvent event) { + SuitcaseRegistryState state = SuitcaseRegistryState.getState(event.getServer()); + SuitcaseBlockEntity.saveSuitcaseRegistryTo(state.registry); + state.setDirty(); + } + */ +} \ No newline at end of file diff --git a/src/main/java/io/lampnet/travelerssuitcase/block/ModBlocks.java b/src/main/java/io/lampnet/travelerssuitcase/block/ModBlocks.java new file mode 100644 index 0000000..6494fb2 --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/block/ModBlocks.java @@ -0,0 +1,88 @@ +package io.lampnet.travelerssuitcase.block; + +import io.lampnet.travelerssuitcase.TravelersSuitcase; +import io.lampnet.travelerssuitcase.item.ModItems; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.SoundType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +import java.util.function.Supplier; +import java.util.function.ToIntFunction; +import net.minecraft.world.level.block.state.BlockState; + +public class ModBlocks { + public static final DeferredRegister BLOCKS = + DeferredRegister.create(ForgeRegistries.BLOCKS, TravelersSuitcase.MODID); + + private static ToIntFunction getLuminance(boolean openCheck) { + if (openCheck) { + return (state) -> state.getValue(SuitcaseBlock.OPEN) ? 8 : 0; + } + return (state) -> 0; + } + private static ToIntFunction getPortalLuminance() { + return (state) -> 10; + } + + public static final RegistryObject SUITCASE = registerBlock("suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.BROWN_WOOL) + .sound(SoundType.WOOL) + .strength(0.2f) + .noOcclusion() + .lightLevel(getLuminance(true)))); + public static final RegistryObject WHITE_SUITCASE = registerBlock("white_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.WHITE_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject BLACK_SUITCASE = registerBlock("black_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.BLACK_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject LIGHT_GRAY_SUITCASE = registerBlock("light_gray_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.LIGHT_GRAY_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject GRAY_SUITCASE = registerBlock("gray_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.GRAY_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject RED_SUITCASE = registerBlock("red_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.RED_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject ORANGE_SUITCASE = registerBlock("orange_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.ORANGE_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject YELLOW_SUITCASE = registerBlock("yellow_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.YELLOW_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject LIME_SUITCASE = registerBlock("lime_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.LIME_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject GREEN_SUITCASE = registerBlock("green_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.GREEN_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject CYAN_SUITCASE = registerBlock("cyan_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.CYAN_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject LIGHT_BLUE_SUITCASE = registerBlock("light_blue_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.LIGHT_BLUE_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject BLUE_SUITCASE = registerBlock("blue_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.BLUE_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject PURPLE_SUITCASE = registerBlock("purple_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.PURPLE_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject MAGENTA_SUITCASE = registerBlock("magenta_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.MAGENTA_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + public static final RegistryObject PINK_SUITCASE = registerBlock("pink_suitcase", + () -> new SuitcaseBlock(BlockBehaviour.Properties.copy(Blocks.PINK_WOOL).sound(SoundType.WOOL).strength(0.2f).noOcclusion().lightLevel(getLuminance(true)))); + + public static final RegistryObject PORTAL = registerBlock("portal", + () -> new PocketPortalBlock(BlockBehaviour.Properties.copy(Blocks.NETHER_PORTAL) + .sound(SoundType.LODESTONE) + .noOcclusion() + .lightLevel(getPortalLuminance()) + .strength(-1f))); + + private static RegistryObject registerBlock(String name, Supplier blockSupplier) { + RegistryObject block = BLOCKS.register(name, blockSupplier); + ModItems.ITEMS.register(name, () -> new BlockItem(block.get(), new Item.Properties())); + return block; + } + + public static void register(IEventBus eventBus) { + BLOCKS.register(eventBus); + } +} \ No newline at end of file diff --git a/src/main/java/io/lampnet/travelerssuitcase/block/PocketPortalBlock.java b/src/main/java/io/lampnet/travelerssuitcase/block/PocketPortalBlock.java new file mode 100644 index 0000000..76d59ab --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/block/PocketPortalBlock.java @@ -0,0 +1,304 @@ +package io.lampnet.travelerssuitcase.block; + +import io.lampnet.travelerssuitcase.TravelersSuitcase; +import io.lampnet.travelerssuitcase.block.entity.SuitcaseBlockEntity; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.entity.item.ItemEntity; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.StringTag; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.network.chat.Component; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.world.phys.AABB; +import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.level.Level; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.level.chunk.LevelChunk; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.nbt.Tag; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PocketPortalBlock extends Block { + private static final Map LAST_KNOWN_POSITIONS = new HashMap<>(); + private static final int SEARCH_RADIUS_CHUNKS = 12; + public static class PlayerPositionData { + public final double x; + public final double y; + public final double z; + public final float yaw; + public final float pitch; + public final long timestamp; + public PlayerPositionData(double x, double y, double z, float yaw, float pitch) { + this.x = x; + this.y = y; + this.z = z; + this.yaw = yaw; + this.pitch = pitch; + this.timestamp = System.currentTimeMillis(); + } + } + + public PocketPortalBlock(BlockBehaviour.Properties properties) { + super(properties); + } + + public static void storePlayerPosition(ServerPlayer player) { + LAST_KNOWN_POSITIONS.put( + player.getUUID().toString(), + new PlayerPositionData(player.getX(), player.getY(), player.getZ(), player.getYRot(), player.getXRot()) + ); + } + + private boolean attemptPlayerInventorySuitcaseTeleport(Level world, ServerLevel overworld, ServerPlayer player, String keystoneName) { + for (ServerPlayer serverPlayer : world.getServer().getPlayerList().getPlayers()) { + if (scanPlayerInventoryForSuitcase(serverPlayer, player, keystoneName, world, overworld)) { + return true; + } + } + return false; + } + + private boolean scanPlayerInventoryForSuitcase(ServerPlayer inventoryOwner, ServerPlayer exitingPlayer, + String keystoneName, Level world, ServerLevel overworld) { + for (int i = 0; i < inventoryOwner.getInventory().getContainerSize(); i++) { + ItemStack stack = inventoryOwner.getInventory().getItem(i); + if (isSuitcaseItemWithKeystone(stack, keystoneName)) { + cleanUpSuitcaseItemNbt(stack, exitingPlayer, keystoneName); + inventoryOwner.getInventory().setItem(i, stack); + teleportToPosition(world, exitingPlayer, overworld, + inventoryOwner.getX(), inventoryOwner.getY() + 1.0, inventoryOwner.getZ(), + exitingPlayer.getYRot(), exitingPlayer.getXRot()); + + return true; + } + } + return false; + } + + private boolean isSuitcaseItemWithKeystone(ItemStack stack, String keystoneName) { + if (stack.isEmpty() || !(stack.getItem() instanceof BlockItem) || + !(((BlockItem) stack.getItem()).getBlock() instanceof SuitcaseBlock)) { + return false; + } + + if (!stack.hasTag()) return false; + CompoundTag beTag = BlockItem.getBlockEntityData(stack); + if (beTag == null) return false; + + return beTag.contains("BoundKeystone") && keystoneName.equals(beTag.getString("BoundKeystone")); + } + + private void cleanUpSuitcaseItemNbt(ItemStack stack, ServerPlayer player, String keystoneName) { + if (!stack.hasTag()) return; + CompoundTag beTag = BlockItem.getBlockEntityData(stack); + if (beTag == null) return; + if (beTag.contains("EnteredPlayers", Tag.TAG_LIST)) { + ListTag playersList = beTag.getList("EnteredPlayers", Tag.TAG_COMPOUND); + ListTag newPlayersList = new ListTag(); + boolean playerFound = false; + for (int i = 0; i < playersList.size(); i++) { + CompoundTag playerData = playersList.getCompound(i); + if (!player.getUUID().toString().equals(playerData.getString("UUID"))) { + newPlayersList.add(playerData); + } else { + playerFound = true; + } + } + if (playerFound) { + beTag.put("EnteredPlayers", newPlayersList); + int remainingPlayers = newPlayersList.size(); + updateItemLore(stack, remainingPlayers); + } + } + SuitcaseBlockEntity.removeSuitcaseEntry(keystoneName, player.getUUID().toString()); + } + + @Override + public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { + if (!world.isClientSide && entity instanceof ServerPlayer player) { + ResourceLocation dimensionLocation = world.dimension().location(); + String currentDimensionPath = dimensionLocation.getPath(); + if (currentDimensionPath.startsWith("pocket_dimension_")) { + String keystoneName = currentDimensionPath.replace("pocket_dimension_", ""); + preparePlayerForTeleport(player); + world.playSound(null, pos, SoundEvents.BUNDLE_DROP_CONTENTS, SoundSource.PLAYERS, 2.0f, 1.0f); + ServerLevel overworld = world.getServer().getLevel(Level.OVERWORLD); + if (overworld == null) return; + + boolean teleported = false; + + // Method 1: Try to teleport to the original suitcase block entity + teleported = attemptSuitcaseTeleport(world, overworld, player, keystoneName); + + // Method 2: Try to find suitcase in a player's inventory (new method) + if (!teleported) { + teleported = attemptPlayerInventorySuitcaseTeleport(world, overworld, player, keystoneName); + } + + // Method 3: Try to find the suitcase as an item entity in the world + if (!teleported) { + teleported = attemptSuitcaseItemTeleport(world, overworld, player, keystoneName); + } + + // Method 4: Try to use player's last known position + if (!teleported) { + teleported = attemptLastKnownPositionTeleport(world, overworld, player); + } + + // Fallback: Take them to spawn + if (!teleported) { + player.displayClientMessage(Component.literal("§cCouldn't find your return point. Taking you to spawn.").withStyle(ChatFormatting.RED), false); + teleportToPosition(world, player, overworld, + overworld.getSharedSpawnPos().getX() + 0.5, + overworld.getSharedSpawnPos().getY() + 1.0, + overworld.getSharedSpawnPos().getZ() + 0.5, 0, 0); + } + SuitcaseBlockEntity.removeSuitcaseEntry(keystoneName, player.getUUID().toString()); + LAST_KNOWN_POSITIONS.remove(player.getUUID().toString()); + } + } + } + + private void preparePlayerForTeleport(ServerPlayer player) { + player.stopRiding(); + player.setDeltaMovement(Vec3.ZERO); + player.fallDistance = 0f; + } + + // Method 1: Try to teleport to the original suitcase block entity + private boolean attemptSuitcaseTeleport(Level world, ServerLevel overworld, ServerPlayer player, String keystoneName) { + BlockPos suitcasePos = SuitcaseBlockEntity.findSuitcasePosition(keystoneName, player.getUUID().toString()); + if (suitcasePos == null) return false; + ChunkPos suitcaseChunkPos = new ChunkPos(suitcasePos); + overworld.setChunkForced(suitcaseChunkPos.x, suitcaseChunkPos.z, true); + try { + BlockEntity targetEntity = overworld.getBlockEntity(suitcasePos); + if (targetEntity instanceof SuitcaseBlockEntity suitcase) { + SuitcaseBlockEntity.EnteredPlayerData exitData = suitcase.getExitPosition(player.getUUID().toString()); + if (exitData != null) { + teleportToPosition(world, player, overworld, exitData.x, exitData.y, exitData.z, exitData.yaw, player.getXRot()); + world.getServer().execute(() -> { + overworld.setChunkForced(suitcaseChunkPos.x, suitcaseChunkPos.z, false); + }); + return true; + } + } + } finally { + overworld.setChunkForced(suitcaseChunkPos.x, suitcaseChunkPos.z, false); + } + return false; + } + + // Method 2: Try to find the suitcase as an item entity in the world + private boolean attemptSuitcaseItemTeleport(Level world, ServerLevel overworld, ServerPlayer player, String keystoneName) { + BlockPos searchCenter = null; + BlockPos suitcasePos = SuitcaseBlockEntity.findSuitcasePosition(keystoneName, player.getUUID().toString()); + if (suitcasePos != null) { + searchCenter = suitcasePos; + } else { + PlayerPositionData lastPos = LAST_KNOWN_POSITIONS.get(player.getUUID().toString()); + if (lastPos != null) { + searchCenter = new BlockPos((int)lastPos.x, (int)lastPos.y, (int)lastPos.z); + } else { + searchCenter = overworld.getSharedSpawnPos(); + } + } + int centerX = searchCenter.getX() >> 4; + int centerZ = searchCenter.getZ() >> 4; + for (int radius = 0; radius <= SEARCH_RADIUS_CHUNKS; radius++) { + for (int x = centerX - radius; x <= centerX + radius; x++) { + for (int z = centerZ - radius; z <= centerZ + radius; z++) { + if (radius > 0 && x > centerX - radius && x < centerX + radius && + z > centerZ - radius && z < centerZ + radius) { + continue; + } + if (!overworld.hasChunk(x, z)) { + continue; + } + LevelChunk chunk = overworld.getChunk(x, z); + List itemEntities = overworld.getEntitiesOfClass( + ItemEntity.class, + new AABB(chunk.getPos().getMinBlockX(), overworld.getMinBuildHeight(), chunk.getPos().getMinBlockZ(), + chunk.getPos().getMaxBlockX(), overworld.getMaxBuildHeight(), chunk.getPos().getMaxBlockZ()), + itemEntity -> { + ItemStack stack = itemEntity.getItem(); + CompoundTag beTag = BlockItem.getBlockEntityData(stack); + if (beTag == null) return false; + + return beTag.contains("BoundKeystone") && + keystoneName.equals(beTag.getString("BoundKeystone")); + } + ); + if (!itemEntities.isEmpty()) { + ItemEntity suitcaseItemEntity = itemEntities.get(0); + cleanUpSuitcaseItemNbt(suitcaseItemEntity.getItem(), player, keystoneName); + suitcaseItemEntity.setItem(suitcaseItemEntity.getItem()); + teleportToPosition(world, player, overworld, + suitcaseItemEntity.getX(), suitcaseItemEntity.getY() + 1.0, suitcaseItemEntity.getZ(), + player.getYRot(), player.getXRot()); + return true; + } + } + } + } + return false; + } + + // Method 3: Try to use player's last known position + private boolean attemptLastKnownPositionTeleport(Level world, ServerLevel overworld, ServerPlayer player) { + PlayerPositionData lastPos = LAST_KNOWN_POSITIONS.get(player.getUUID().toString()); + if (lastPos != null) { + long currentTime = System.currentTimeMillis(); + if (currentTime - lastPos.timestamp > 10 * 60 * 1000) { + return false; + } + player.displayClientMessage(Component.literal("§6Returning to your last known position."), false); + teleportToPosition(world, player, overworld, + lastPos.x, lastPos.y, lastPos.z, + lastPos.yaw, lastPos.pitch); + return true; + } + return false; + } + + private void teleportToPosition(Level world, ServerPlayer player, ServerLevel targetWorld, + double x, double y, double z, float yaw, float pitch) { + player.teleportTo(targetWorld, x, y, z, yaw, pitch); + } + + private void updateItemLore(ItemStack stack, int playerCount) { + if (stack.hasTag() && stack.getTag().contains("display")) { + CompoundTag display = stack.getTag().getCompound("display"); + if (display != null && display.contains("Lore", Tag.TAG_LIST)) { + ListTag lore = display.getList("Lore", Tag.TAG_STRING); + ListTag newLore = new ListTag(); + for (int i = 0; i < lore.size(); i++) { + String loreStr = lore.getString(i); + if (!loreStr.contains("traveler")) { + newLore.add(lore.get(i)); + } + } + if (playerCount > 0) { + Component warningText = Component.literal("§c⚠ Contains " + playerCount + " traveler(s)!") + .withStyle(ChatFormatting.RED); + newLore.add(0, StringTag.valueOf(Component.Serializer.toJson(warningText))); + } + display.put("Lore", newLore); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/io/lampnet/travelerssuitcase/block/SuitcaseBlock.java b/src/main/java/io/lampnet/travelerssuitcase/block/SuitcaseBlock.java new file mode 100644 index 0000000..fc20eea --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/block/SuitcaseBlock.java @@ -0,0 +1,367 @@ +package io.lampnet.travelerssuitcase.block; + +import io.lampnet.travelerssuitcase.TravelersSuitcase; +import io.lampnet.travelerssuitcase.block.entity.ModBlockEntities; +import io.lampnet.travelerssuitcase.block.entity.SuitcaseBlockEntity; +import io.lampnet.travelerssuitcase.item.KeystoneItem; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.level.storage.loot.LootParams; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.StringTag; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundSource; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.block.state.properties.DirectionProperty; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.network.chat.Component; +import net.minecraft.ChatFormatting; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.phys.BlockHitResult; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.phys.Vec3; +import net.minecraft.world.phys.shapes.CollisionContext; +import net.minecraft.world.phys.shapes.VoxelShape; +import net.minecraft.world.level.BlockGetter; +import net.minecraft.world.level.Level; +import net.minecraft.world.Containers; +import net.minecraft.world.item.DyeColor; + +import org.jetbrains.annotations.Nullable; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class SuitcaseBlock extends BaseEntityBlock { + public static final BooleanProperty OPEN = BooleanProperty.create("open"); + public static final DirectionProperty FACING = BlockStateProperties.HORIZONTAL_FACING; + public static final EnumProperty COLOR = EnumProperty.create("color", DyeColor.class); + private final static VoxelShape SHAPE_N = Block.box(0, 0, 2, 16, 4, 14); + private final static VoxelShape SHAPE_S = Block.box(0, 0, 2, 16, 4, 14); + private final static VoxelShape SHAPE_E = Block.box(2, 0, 0, 14, 4, 16); + private final static VoxelShape SHAPE_W = Block.box(2, 0, 0, 14, 4, 16); + + public SuitcaseBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any() + .setValue(OPEN, false) + .setValue(FACING, Direction.NORTH) + .setValue(COLOR, DyeColor.BROWN)); + } + + @Override + public RenderShape getRenderShape(BlockState pState) { + return RenderShape.MODEL; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pPos, BlockState pState) { + return new SuitcaseBlockEntity(pPos, pState); + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder pBuilder) { + pBuilder.add(OPEN, FACING, COLOR); + } + + @Override + public void setPlacedBy(Level world, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack itemStack) { + super.setPlacedBy(world, pos, state, placer, itemStack); + if (!world.isClientSide()) { + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof SuitcaseBlockEntity suitcase) { + CompoundTag blockEntityTag = BlockItem.getBlockEntityData(itemStack); + if (blockEntityTag != null) { + suitcase.load(blockEntityTag); + String keystoneName = suitcase.getBoundKeystoneName(); + if (keystoneName != null) { + List players = suitcase.getEnteredPlayers(); + for (SuitcaseBlockEntity.EnteredPlayerData player : players) { + suitcase.updatePlayerSuitcasePosition(player.uuid, pos); + Map suitcases = SuitcaseBlockEntity.SUITCASE_REGISTRY.computeIfAbsent( + keystoneName, k -> new HashMap<>() + ); + suitcases.put(player.uuid, pos); + } + } + } + } + } + } + + @Override + public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean isMoving) { + if (!state.is(newState.getBlock())) { + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof SuitcaseBlockEntity suitcase) { + ItemStack itemStack = new ItemStack(this); + String boundKeystone = suitcase.getBoundKeystoneName(); + if (boundKeystone != null) { + CompoundTag beNbt = new CompoundTag(); + suitcase.saveAdditional(beNbt); + + if (!beNbt.isEmpty()) { + BlockItem.setBlockEntityData(itemStack, ModBlockEntities.SUITCASE_BLOCK_ENTITY.get(), beNbt); + } + + CompoundTag display = itemStack.getOrCreateTagElement("display"); + ListTag lore = new ListTag(); + String displayName = boundKeystone.replace("_", " "); + Component boundText; + if (suitcase.isLocked()) { + boundText = Component.literal("Bound to: §k" + displayName) + .withStyle(ChatFormatting.GRAY); + } else { + boundText = Component.literal("Bound to: " + displayName) + .withStyle(ChatFormatting.GRAY); + } + Component lockText = Component.literal(suitcase.isLocked() ? "§cLocked" : "§aUnlocked") + .withStyle(ChatFormatting.GRAY); + if (!suitcase.getEnteredPlayers().isEmpty()) { + Component warningText = Component.literal("§c⚠ Contains " + suitcase.getEnteredPlayers().size() + " Traveler's!") + .withStyle(ChatFormatting.RED); + lore.add(StringTag.valueOf(Component.Serializer.toJson(warningText))); + } + lore.add(StringTag.valueOf(Component.Serializer.toJson(boundText))); + lore.add(StringTag.valueOf(Component.Serializer.toJson(lockText))); + display.put("Lore", lore); + } + Containers.dropItemStack(world, pos.getX(), pos.getY(), pos.getZ(), itemStack); + } + super.onRemove(state, world, pos, newState, isMoving); + } + } + + @Override + public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) { + if (world.isClientSide()) { + return InteractionResult.SUCCESS; + } + ItemStack heldItem = player.getItemInHand(hand); + BlockEntity blockEntity = world.getBlockEntity(pos); + if (!(blockEntity instanceof SuitcaseBlockEntity suitcase)) { + return InteractionResult.PASS; + } + if (!suitcase.canOpenInDimension(world)) { + world.playSound(null, pos, SoundEvents.IRON_DOOR_CLOSE, + SoundSource.BLOCKS, 0.3F, 2.0F); + player.displayClientMessage(Component.literal("§c☒"), true); + return InteractionResult.SUCCESS; + } + String boundKeystone = suitcase.getBoundKeystoneName(); + + if (heldItem.getItem() instanceof KeystoneItem) { + String keystoneName = heldItem.getHoverName().getString().toLowerCase(); + if (boundKeystone != null && boundKeystone.equals(keystoneName)) { + boolean newLockState = !suitcase.isLocked(); + suitcase.setLocked(newLockState); + world.playSound(null, pos, + newLockState ? SoundEvents.IRON_DOOR_CLOSE : SoundEvents.IRON_DOOR_OPEN, + SoundSource.BLOCKS, 0.3F, 2.0F); + player.displayClientMessage(Component.literal(newLockState ? "§7☒" : "§7☐"), true); + return InteractionResult.SUCCESS; + } + if (suitcase.isLocked()) { + world.playSound(null, pos, SoundEvents.IRON_DOOR_CLOSE, + SoundSource.BLOCKS, 0.3F, 2.0F); + player.displayClientMessage(Component.literal("§c☒"), true); + return InteractionResult.FAIL; + } + if (keystoneName.equals(Component.translatable("item.travelerssuitcase.keystone").getString().toLowerCase()) || !KeystoneItem.isValidKeystone(heldItem)) { + player.displayClientMessage(Component.literal("§cName the key to bind or ensure it is valid."), false); + return InteractionResult.FAIL; + } + suitcase.bindKeystone(keystoneName); + world.playSound(null, pos, SoundEvents.LODESTONE_COMPASS_LOCK, + SoundSource.BLOCKS, 2.0F, 0.0F); + return InteractionResult.SUCCESS; + } + + if (!player.isShiftKeyDown() || heldItem.isEmpty()) { + if (boundKeystone == null) { + world.playSound(null, pos, SoundEvents.CHAIN_PLACE, + SoundSource.BLOCKS, 0.5F, 2.0F); + return InteractionResult.FAIL; + } + if (suitcase.isLocked()) { + world.playSound(null, pos, SoundEvents.IRON_DOOR_CLOSE, + SoundSource.BLOCKS, 0.3F, 2.0F); + return InteractionResult.FAIL; + } + boolean isOpen = state.getValue(OPEN); + world.setBlockAndUpdate(pos, state.setValue(OPEN, !isOpen)); + if (!isOpen) { + world.playSound(null, pos, SoundEvents.LADDER_STEP, + SoundSource.BLOCKS, 0.3F, 0.0F); + world.playSound(null, pos, SoundEvents.CHEST_LOCKED, + SoundSource.BLOCKS, 0.3F, 2.0F); + } else { + world.playSound(null, pos, SoundEvents.LADDER_BREAK, + SoundSource.BLOCKS, 0.3F, 0.0F); + world.playSound(null, pos, SoundEvents.BAMBOO_WOOD_TRAPDOOR_CLOSE, + SoundSource.BLOCKS, 0.3F, 0.0F); + } + return InteractionResult.SUCCESS; + } + return InteractionResult.PASS; + } + + @Override + public void entityInside(BlockState state, Level world, BlockPos pos, Entity entity) { + if (!world.isClientSide() && entity instanceof ServerPlayer player) { + if (!state.getValue(OPEN) || !player.isShiftKeyDown()) { + return; + } + BlockEntity blockEntity = world.getBlockEntity(pos); + if (!(blockEntity instanceof SuitcaseBlockEntity suitcase)) { + return; + } + String keystoneName = suitcase.getBoundKeystoneName(); + if (keystoneName == null) { + return; + } + String dimensionName = "pocket_dimension_" + keystoneName; + ResourceLocation dimensionRL = new ResourceLocation(TravelersSuitcase.MODID, dimensionName); + ResourceKey dimensionKey = ResourceKey.create(Registries.DIMENSION, dimensionRL); + ServerLevel targetWorld = world.getServer().getLevel(dimensionKey); + if (targetWorld != null) { + suitcase.playerEntered(player); + player.stopRiding(); + player.setDeltaMovement(Vec3.ZERO); + player.fallDistance = 0f; + player.teleportTo(targetWorld, 17.5, 97, 9.5, player.getYRot(), player.getXRot()); + world.playSound(null, pos, + SoundEvents.BUNDLE_DROP_CONTENTS, + SoundSource.PLAYERS, 2.0f, 1.0f); + } else { + TravelersSuitcase.LOGGER.warn("Target dimension {} not found for keystone {}", dimensionRL, keystoneName); + } + } + } + + @Override + public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { + switch(state.getValue(FACING)) { + case NORTH: return SHAPE_N; + case SOUTH: return SHAPE_S; + case EAST: return SHAPE_E; + case WEST: return SHAPE_W; + default: return SHAPE_N; + } + } + + @Nullable + @Override + public BlockState getStateForPlacement(BlockPlaceContext ctx) { + return this.defaultBlockState() + .setValue(FACING, ctx.getHorizontalDirection().getOpposite()) + .setValue(OPEN, false); + } + + @Override + public ItemStack getCloneItemStack(BlockGetter world, BlockPos pos, BlockState state) { + ItemStack stack = super.getCloneItemStack(world, pos, state); + BlockEntity blockEntity = world.getBlockEntity(pos); + if (blockEntity instanceof SuitcaseBlockEntity suitcase) { + CompoundTag beNbt = new CompoundTag(); + suitcase.saveAdditional(beNbt); + if (beNbt != null && !beNbt.isEmpty()) { + BlockItem.setBlockEntityData(stack, ModBlockEntities.SUITCASE_BLOCK_ENTITY.get(), beNbt); + } + + String boundKeystone = suitcase.getBoundKeystoneName(); + if (boundKeystone != null) { + CompoundTag display = stack.getOrCreateTagElement("display"); + ListTag lore = new ListTag(); + if (!suitcase.getEnteredPlayers().isEmpty()) { + Component warningText = Component.literal("§c⚠ Contains " + suitcase.getEnteredPlayers().size() + " Traveler's!") + .withStyle(ChatFormatting.RED); + lore.add(StringTag.valueOf(Component.Serializer.toJson(warningText))); + } + String displayName = boundKeystone.replace("_", " "); + Component boundText; + if (suitcase.isLocked()) { + boundText = Component.literal("Bound to: §k" + displayName) + .withStyle(ChatFormatting.GRAY); + } else { + boundText = Component.literal("Bound to: " + displayName) + .withStyle(ChatFormatting.GRAY); + } + lore.add(StringTag.valueOf(Component.Serializer.toJson(boundText))); + Component lockText = Component.literal(suitcase.isLocked() ? "§cLocked" : "§aUnlocked") + .withStyle(ChatFormatting.GRAY); + lore.add(StringTag.valueOf(Component.Serializer.toJson(lockText))); + display.put("Lore", lore); + } + } + return stack; + } + + @Override + public List getDrops(BlockState state, LootParams.Builder builder) { + ItemStack stack = new ItemStack(this); + BlockEntity blockEntity = builder.getOptionalParameter(LootContextParams.BLOCK_ENTITY); + if (blockEntity instanceof SuitcaseBlockEntity suitcase) { + CompoundTag beNbt = new CompoundTag(); + suitcase.saveAdditional(beNbt); + if (beNbt != null && !beNbt.isEmpty()) { + BlockItem.setBlockEntityData(stack, ModBlockEntities.SUITCASE_BLOCK_ENTITY.get(), beNbt); + } + + String boundKeystone = suitcase.getBoundKeystoneName(); + if (boundKeystone != null) { + CompoundTag display = stack.getOrCreateTagElement("display"); + ListTag lore = new ListTag(); + if (!suitcase.getEnteredPlayers().isEmpty()) { + Component warningText = Component.literal("§c⚠ Contains " + suitcase.getEnteredPlayers().size() + " Traveler's!") + .withStyle(ChatFormatting.RED); + lore.add(StringTag.valueOf(Component.Serializer.toJson(warningText))); + } + String displayName = boundKeystone.replace("_", " "); + Component boundText; + if (suitcase.isLocked()) { + boundText = Component.literal("Bound to: §k" + displayName).withStyle(ChatFormatting.GRAY); + } else { + boundText = Component.literal("Bound to: " + displayName).withStyle(ChatFormatting.GRAY); + } + lore.add(StringTag.valueOf(Component.Serializer.toJson(boundText))); + Component lockText = Component.literal(suitcase.isLocked() ? "§cLocked" : "§aUnlocked") + .withStyle(ChatFormatting.GRAY); + lore.add(StringTag.valueOf(Component.Serializer.toJson(lockText))); + display.put("Lore", lore); + } + } + return Collections.singletonList(stack); + } + + @Override + public boolean triggerEvent(BlockState state, Level world, BlockPos pos, int type, int data) { + super.triggerEvent(state, world, pos, type, data); + BlockEntity blockentity = world.getBlockEntity(pos); + return blockentity != null ? blockentity.triggerEvent(type, data) : false; + } +} \ No newline at end of file diff --git a/src/main/java/io/lampnet/travelerssuitcase/block/entity/ModBlockEntities.java b/src/main/java/io/lampnet/travelerssuitcase/block/entity/ModBlockEntities.java new file mode 100644 index 0000000..786d0e2 --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/block/entity/ModBlockEntities.java @@ -0,0 +1,25 @@ +package io.lampnet.travelerssuitcase.block.entity; + +import io.lampnet.travelerssuitcase.TravelersSuitcase; +import io.lampnet.travelerssuitcase.block.ModBlocks; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public class ModBlockEntities { + public static final DeferredRegister> BLOCK_ENTITIES = + DeferredRegister.create(ForgeRegistries.BLOCK_ENTITY_TYPES, TravelersSuitcase.MODID); + + public static final RegistryObject> SUITCASE_BLOCK_ENTITY = + BLOCK_ENTITIES.register("suitcase", () -> + BlockEntityType.Builder.of( + SuitcaseBlockEntity::new, + ModBlocks.SUITCASE.get() + ).build(null)); + + public static void register(IEventBus eventBus) { + BLOCK_ENTITIES.register(eventBus); + } +} \ No newline at end of file diff --git a/src/main/java/io/lampnet/travelerssuitcase/block/entity/SuitcaseBlockEntity.java b/src/main/java/io/lampnet/travelerssuitcase/block/entity/SuitcaseBlockEntity.java new file mode 100644 index 0000000..6fde79c --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/block/entity/SuitcaseBlockEntity.java @@ -0,0 +1,246 @@ +package io.lampnet.travelerssuitcase.block.entity; + +import io.lampnet.travelerssuitcase.block.PocketPortalBlock; +import net.minecraft.core.BlockPos; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.nbt.ListTag; +import net.minecraft.nbt.Tag; +import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket; +import net.minecraft.resources.ResourceKey; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import org.jetbrains.annotations.Nullable; + +import java.util.*; + +public class SuitcaseBlockEntity extends BlockEntity { + private String boundKeystoneName; + private boolean isLocked = false; + private boolean dimensionLocked = true; + private final List enteredPlayers = new ArrayList<>(); + + public static class EnteredPlayerData { + public final String uuid; + public final double x, y, z; + public final float pitch, yaw; + public final BlockPos suitcasePos; + + public EnteredPlayerData(String uuid, double x, double y, double z, float pitch, float yaw, BlockPos suitcasePos) { + this.uuid = uuid; this.x = x; this.y = y; this.z = z; + this.pitch = pitch; this.yaw = yaw; + this.suitcasePos = suitcasePos; + } + + public CompoundTag toNbt() { + CompoundTag nbt = new CompoundTag(); + nbt.putString("UUID", uuid); + nbt.putDouble("X", x); nbt.putDouble("Y", y); nbt.putDouble("Z", z); + nbt.putFloat("Pitch", pitch); nbt.putFloat("Yaw", yaw); + if (suitcasePos != null) { + nbt.putInt("SuitcaseX", suitcasePos.getX()); + nbt.putInt("SuitcaseY", suitcasePos.getY()); + nbt.putInt("SuitcaseZ", suitcasePos.getZ()); + } + return nbt; + } + + public static EnteredPlayerData fromNbt(CompoundTag nbt) { + BlockPos sPos = null; + if (nbt.contains("SuitcaseX") && nbt.contains("SuitcaseY") && nbt.contains("SuitcaseZ")) { + sPos = new BlockPos(nbt.getInt("SuitcaseX"), nbt.getInt("SuitcaseY"), nbt.getInt("SuitcaseZ")); + } + return new EnteredPlayerData( + nbt.getString("UUID"), + nbt.getDouble("X"), nbt.getDouble("Y"), nbt.getDouble("Z"), + nbt.getFloat("Pitch"), nbt.getFloat("Yaw"), + sPos + ); + } + } + + public SuitcaseBlockEntity(BlockPos pos, BlockState state) { + super(ModBlockEntities.SUITCASE_BLOCK_ENTITY.get(), pos, state); + } + + public boolean canOpenInDimension(Level level) { + if (!dimensionLocked) { + return true; + } + return level.dimension() == Level.OVERWORLD; + } + + public boolean isDimensionLocked() { + return dimensionLocked; + } + + public void playerEntered(ServerPlayer player) { + enteredPlayers.removeIf(data -> data.uuid.equals(player.getUUID().toString())); + EnteredPlayerData data = new EnteredPlayerData( + player.getUUID().toString(), + player.getX(), player.getY(), player.getZ(), + player.getXRot(), player.getYRot(), + this.worldPosition + ); + enteredPlayers.add(data); + if (boundKeystoneName != null) { + Map suitcases = SUITCASE_REGISTRY.computeIfAbsent( + boundKeystoneName, k -> new HashMap<>() + ); + suitcases.put(player.getUUID().toString(), this.worldPosition); + } + PocketPortalBlock.storePlayerPosition(player); + setChangedAndNotify(); + } + + public EnteredPlayerData getExitPosition(String playerUuid) { + for (int i = 0; i < enteredPlayers.size(); i++) { + EnteredPlayerData data = enteredPlayers.get(i); + if (data.uuid.equals(playerUuid)) { + EnteredPlayerData exitData = new EnteredPlayerData( + data.uuid, + this.worldPosition.getX() + 0.5, this.worldPosition.getY() + 1.0, this.worldPosition.getZ() + 0.5, + data.pitch, data.yaw, + this.worldPosition + ); + enteredPlayers.remove(i); + setChangedAndNotify(); + return exitData; + } + } + return null; + } + + public void bindKeystone(String keystoneName) { + this.boundKeystoneName = keystoneName; + setChangedAndNotify(); + } + + public String getBoundKeystoneName() { + return boundKeystoneName; + } + + public void setLocked(boolean locked) { + this.isLocked = locked; + setChangedAndNotify(); + } + + public boolean isLocked() { + return isLocked; + } + + @Override + public void saveAdditional(CompoundTag nbt) { + super.saveAdditional(nbt); + if (boundKeystoneName != null) { + nbt.putString("BoundKeystone", boundKeystoneName); + } + nbt.putBoolean("Locked", isLocked); + nbt.putBoolean("DimensionLocked", dimensionLocked); + + ListTag playersListTag = new ListTag(); + for (EnteredPlayerData data : enteredPlayers) { + playersListTag.add(data.toNbt()); + } + if (!playersListTag.isEmpty()) { + nbt.put("EnteredPlayers", playersListTag); + } + } + + @Override + public void load(CompoundTag nbt) { + super.load(nbt); + if (nbt.contains("BoundKeystone", Tag.TAG_STRING)) { + boundKeystoneName = nbt.getString("BoundKeystone"); + } else { + boundKeystoneName = null; + } + isLocked = nbt.getBoolean("Locked"); + dimensionLocked = !nbt.contains("DimensionLocked") || nbt.getBoolean("DimensionLocked"); + enteredPlayers.clear(); + if (nbt.contains("EnteredPlayers", Tag.TAG_LIST)) { + ListTag playersListTag = nbt.getList("EnteredPlayers", Tag.TAG_COMPOUND); + for (int i = 0; i < playersListTag.size(); i++) { + enteredPlayers.add(EnteredPlayerData.fromNbt(playersListTag.getCompound(i))); + } + } + } + + @Nullable + @Override + public ClientboundBlockEntityDataPacket getUpdatePacket() { + return ClientboundBlockEntityDataPacket.create(this); + } + + @Override + public CompoundTag getUpdateTag() { + CompoundTag nbt = new CompoundTag(); + this.saveAdditional(nbt); + return nbt; + } + + public static final Map> SUITCASE_REGISTRY = Collections.synchronizedMap(new HashMap<>()); + + public static BlockPos findSuitcasePosition(String keystoneName, String playerUuid) { + Map suitcases = SUITCASE_REGISTRY.get(keystoneName); + return (suitcases != null) ? suitcases.get(playerUuid) : null; + } + + public static void removeSuitcaseEntry(String keystoneName, String playerUuid) { + Map suitcases = SUITCASE_REGISTRY.get(keystoneName); + if (suitcases != null) { + suitcases.remove(playerUuid); + if (suitcases.isEmpty()) { + SUITCASE_REGISTRY.remove(keystoneName); + } + } + } + + public List getEnteredPlayers() { + return Collections.unmodifiableList(enteredPlayers); + } + + public static void initializeSuitcaseRegistry(Map> savedRegistry) { + SUITCASE_REGISTRY.clear(); + if (savedRegistry != null) { + savedRegistry.forEach((key, value) -> { + Map players = SUITCASE_REGISTRY.computeIfAbsent(key, k -> Collections.synchronizedMap(new HashMap<>())); + players.putAll(value); + }); + } + } + + public static void saveSuitcaseRegistryTo(Map> destination) { + destination.clear(); + SUITCASE_REGISTRY.forEach((key, value) -> { + Map players = destination.computeIfAbsent(key, k -> new HashMap<>()); + players.putAll(value); + }); + } + + public void updatePlayerSuitcasePosition(String playerUuid, BlockPos newPos) { + boolean updated = false; + for (int i = 0; i < enteredPlayers.size(); i++) { + EnteredPlayerData data = enteredPlayers.get(i); + if (data.uuid.equals(playerUuid)) { + enteredPlayers.set(i, new EnteredPlayerData(data.uuid, data.x, data.y, data.z, data.pitch, data.yaw, newPos)); + updated = true; + break; + } + } + if (updated && boundKeystoneName != null) { + Map suitcases = SUITCASE_REGISTRY.computeIfAbsent(boundKeystoneName, k -> new HashMap<>()); + suitcases.put(playerUuid, newPos); + } + if(updated) setChangedAndNotify(); + } + + private void setChangedAndNotify() { + setChanged(); + if (level != null && !level.isClientSide()) { + level.sendBlockUpdated(worldPosition, getBlockState(), getBlockState(), Block.UPDATE_ALL); + } + } +} \ No newline at end of file diff --git a/src/main/java/io/lampnet/travelerssuitcase/item/KeystoneItem.java b/src/main/java/io/lampnet/travelerssuitcase/item/KeystoneItem.java new file mode 100644 index 0000000..580a770 --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/item/KeystoneItem.java @@ -0,0 +1,184 @@ +package io.lampnet.travelerssuitcase.item; + +import io.lampnet.travelerssuitcase.TravelersSuitcase; +import net.minecraft.ChatFormatting; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantments; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.MinecraftServer; +import net.minecraft.sounds.SoundSource; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.storage.LevelResource; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; +import net.minecraft.world.item.ItemStack.TooltipPart; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + + +public class KeystoneItem extends Item { + + public KeystoneItem(Item.Properties properties) { + super(properties); + } + + @Override + public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { + ItemStack stack = player.getItemInHand(hand); + String keystoneName = stack.hasCustomHoverName() ? stack.getHoverName().getString().toLowerCase() : ""; + String defaultName = "item.travelerssuitcase.keystone"; + if (!stack.hasCustomHoverName() || keystoneName.isEmpty() || keystoneName.equals(Component.translatable(defaultName).getString().toLowerCase())) { + return InteractionResultHolder.pass(stack); + } + if (world.isClientSide) { + return InteractionResultHolder.success(stack); + } + if (stack.isEnchanted()) { + return InteractionResultHolder.pass(stack); + } + String dimensionName = "pocket_dimension_" + keystoneName.replaceAll("[^a-z0-9_]", ""); + createDimension(world.getServer(), dimensionName); + stack.enchant(Enchantments.BINDING_CURSE, 1); + stack.hideTooltipPart(TooltipPart.ENCHANTMENTS); + stack.hideTooltipPart(TooltipPart.MODIFIERS); + CompoundTag nbt = stack.getOrCreateTag(); + nbt.putInt("RepairCost", 32767); + world.playSound(null, player.getX(), player.getY(), player.getZ(), + SoundEvents.AMETHYST_CLUSTER_FALL, SoundSource.PLAYERS, 2.0F, 2.0F); + return InteractionResultHolder.success(stack); + } + + public static boolean isValidKeystone(ItemStack stack) { + String keystoneName = stack.hasCustomHoverName() ? stack.getHoverName().getString().toLowerCase() : ""; + String defaultNameKey = "item.travelerssuitcase.keystone"; + return stack.hasCustomHoverName() && !keystoneName.isEmpty() && + !keystoneName.equals(Component.translatable(defaultNameKey).getString().toLowerCase()) && + stack.isEnchanted(); + } + + @Override + public void appendHoverText(ItemStack stack, @Nullable Level world, List tooltip, TooltipFlag flag) { + String keystoneName = stack.hasCustomHoverName() ? stack.getHoverName().getString().toLowerCase() : ""; + String defaultNameKey = "item.travelerssuitcase.keystone"; + if (!stack.hasCustomHoverName() || keystoneName.isEmpty() || + keystoneName.equals(Component.translatable(defaultNameKey).getString().toLowerCase())) { + tooltip.add(Component.literal("§7Rename to bind").withStyle(ChatFormatting.ITALIC)); + } + } + + @Override + public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) { + String keystoneName = stack.hasCustomHoverName() ? stack.getHoverName().getString().toLowerCase() : ""; + String defaultNameKey = "item.travelerssuitcase.keystone"; + if (!stack.hasCustomHoverName() || keystoneName.isEmpty() || + keystoneName.equals(Component.translatable(defaultNameKey).getString().toLowerCase())) { + CompoundTag nbt = stack.getOrCreateTag(); + nbt.putInt("CustomModelData", 1); + } else if (stack.getTag() != null && stack.getTag().contains("CustomModelData")) { + stack.getTag().remove("CustomModelData"); + } + } + + private boolean createDimension(MinecraftServer server, String dimensionName) { + if (server == null) { + TravelersSuitcase.LOGGER.error("Failed to create dimension: " + dimensionName + " (MinecraftServer instance is null)"); + return false; + } + try { + Path datapackPath = server.getWorldPath(LevelResource.ROOT) + .resolve("datapacks") + .resolve("travelerssuitcase"); + Path dimensionPath = datapackPath + .resolve("data") + .resolve("travelerssuitcase") + .resolve("dimension"); + Files.createDirectories(dimensionPath); + createPackMcmeta(datapackPath); + Path dimensionFile = dimensionPath.resolve(dimensionName + ".json"); + boolean dimensionExists = Files.exists(dimensionFile); + + ResourceLocation dimensionKeyLocation = new ResourceLocation("travelerssuitcase", dimensionName); + boolean isDimensionRegistered = server.levelKeys().stream() + .anyMatch(key -> key.location().equals(dimensionKeyLocation)); + + Path dimensionRegistryPath = server.getWorldPath(LevelResource.ROOT) + .resolve("data") + .resolve("travelerssuitcase") + .resolve("dimension_registry"); + Files.createDirectories(dimensionRegistryPath); + Path dimensionRegistryFile = dimensionRegistryPath.resolve("registry.txt"); + Set registeredDimensionsInFile = new HashSet<>(); + if (Files.exists(dimensionRegistryFile)) { + registeredDimensionsInFile = new HashSet<>(Files.readAllLines(dimensionRegistryFile)); + } + boolean isDimensionInRegistryFile = registeredDimensionsInFile.contains(dimensionName); + + if (!dimensionExists) { + String dimensionJson = """ + { + "type": "travelerssuitcase:pocket_dimension_type", + "generator": { + "type": "minecraft:flat", + "settings": { + "biome": "travelerssuitcase:pocket_islands", + "layers": [ + { + "block": "travelerssuitcase:portal", + "height": 1 + } + ] + } + } + } + """; + Files.writeString(dimensionFile, dimensionJson); + if (!isDimensionInRegistryFile) { + registeredDimensionsInFile.add(dimensionName); + Files.write(dimensionRegistryFile, registeredDimensionsInFile); + } + } + + if (!isDimensionInRegistryFile && !isDimensionRegistered) { + Path structureMarkerPath = server.getWorldPath(LevelResource.ROOT) + .resolve("data") + .resolve("travelerssuitcase") + .resolve("pending_structures"); + Files.createDirectories(structureMarkerPath); + Files.writeString(structureMarkerPath.resolve(dimensionName + ".txt"), "pending"); + return true; + } + return false; + } catch (IOException e) { + TravelersSuitcase.LOGGER.error("Failed to create dimension: " + dimensionName, e); + return false; + } + } + + private void createPackMcmeta(Path datapackPath) throws IOException { + Path packMcmeta = datapackPath.resolve("pack.mcmeta"); + if (!Files.exists(packMcmeta)) { + String content = """ + { + "pack": { + "pack_format": 15, + "description": "travelerssuitcase Dimensions" + } + } + """; + Files.writeString(packMcmeta, content); + } + } +} \ No newline at end of file diff --git a/src/main/java/io/lampnet/travelerssuitcase/item/ModItemGroups.java b/src/main/java/io/lampnet/travelerssuitcase/item/ModItemGroups.java new file mode 100644 index 0000000..d034ba3 --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/item/ModItemGroups.java @@ -0,0 +1,52 @@ +package io.lampnet.travelerssuitcase.item; + +import io.lampnet.travelerssuitcase.TravelersSuitcase; +import io.lampnet.travelerssuitcase.block.ModBlocks; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.network.chat.Component; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.RegistryObject; +import net.minecraft.core.registries.Registries; // For DeferredRegister.create(Registries.CREATIVE_MODE_TAB...) +import net.minecraft.world.level.block.Blocks; // For Blocks.ANVIL + +public class ModItemGroups { + public static final DeferredRegister CREATIVE_MODE_TABS = + DeferredRegister.create(Registries.CREATIVE_MODE_TAB, TravelersSuitcase.MODID); + + public static final RegistryObject POCKET_GROUP = CREATIVE_MODE_TABS.register("pocket", + () -> CreativeModeTab.builder() + .title(Component.translatable("itemgroup.travelerssuitcase.pocket")) // Changed itemgroup name + .icon(() -> new ItemStack(ModItems.KEYSTONE.get())) + .displayItems((displayParameters, output) -> { + output.accept(ModItems.KEYSTONE.get()); + + output.accept(ModBlocks.SUITCASE.get()); + output.accept(ModBlocks.WHITE_SUITCASE.get()); + output.accept(ModBlocks.LIGHT_GRAY_SUITCASE.get()); + output.accept(ModBlocks.GRAY_SUITCASE.get()); + output.accept(ModBlocks.BLACK_SUITCASE.get()); + output.accept(ModBlocks.RED_SUITCASE.get()); + output.accept(ModBlocks.ORANGE_SUITCASE.get()); + output.accept(ModBlocks.YELLOW_SUITCASE.get()); + output.accept(ModBlocks.LIME_SUITCASE.get()); + output.accept(ModBlocks.GREEN_SUITCASE.get()); + output.accept(ModBlocks.CYAN_SUITCASE.get()); + output.accept(ModBlocks.LIGHT_BLUE_SUITCASE.get()); + output.accept(ModBlocks.BLUE_SUITCASE.get()); + output.accept(ModBlocks.MAGENTA_SUITCASE.get()); + output.accept(ModBlocks.PURPLE_SUITCASE.get()); + output.accept(ModBlocks.PINK_SUITCASE.get()); + + output.accept(ModBlocks.PORTAL.get()); + + output.accept(Blocks.ANVIL); + }) + .build()); + + public static void register(IEventBus eventBus) { // Renamed from registerItemGroups + CREATIVE_MODE_TABS.register(eventBus); + TravelersSuitcase.LOGGER.info("Registering Creative Mode Tabs for " + TravelersSuitcase.MODID); + } +} diff --git a/src/main/java/io/lampnet/travelerssuitcase/item/ModItems.java b/src/main/java/io/lampnet/travelerssuitcase/item/ModItems.java new file mode 100644 index 0000000..0a033eb --- /dev/null +++ b/src/main/java/io/lampnet/travelerssuitcase/item/ModItems.java @@ -0,0 +1,20 @@ +package io.lampnet.travelerssuitcase.item; + +import io.lampnet.travelerssuitcase.TravelersSuitcase; +import net.minecraft.world.item.Item; +import net.minecraftforge.eventbus.api.IEventBus; +import net.minecraftforge.registries.DeferredRegister; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.RegistryObject; + +public class ModItems { + public static final DeferredRegister ITEMS = + DeferredRegister.create(ForgeRegistries.ITEMS, TravelersSuitcase.MODID); + + public static final RegistryObject KEYSTONE = ITEMS.register("keystone", + () -> new KeystoneItem(new Item.Properties())); + + public static void register(IEventBus eventBus) { + ITEMS.register(eventBus); + } +} diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml new file mode 100644 index 0000000..a1fc7ec --- /dev/null +++ b/src/main/resources/META-INF/mods.toml @@ -0,0 +1,26 @@ +modLoader="javafml" +loaderVersion="[47,)" +license="MIT" + +[[mods]] +modId="travelerssuitcase" +version="${mod_version}" +displayName="Traveler's Suitcase" +authors="BennyBoops, Candle" +description=''' +A mod that adds magical suitcases that can store player positions and create pocket dimensions. +''' + +[[dependencies.travelerssuitcase]] +modId="forge" +mandatory=true +versionRange="[47,)" +ordering="NONE" +side="BOTH" + +[[dependencies.travelerssuitcase]] +modId="minecraft" +mandatory=true +versionRange="[1.20.1,1.21)" +ordering="NONE" +side="BOTH" \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/black_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/black_suitcase.json new file mode 100644 index 0000000..3303b20 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/black_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/black_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/black_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/black_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/black_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/black_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/black_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/black_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/black_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/blue_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/blue_suitcase.json new file mode 100644 index 0000000..acbb457 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/blue_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/blue_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/blue_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/blue_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/blue_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/blue_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/blue_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/blue_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/blue_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/cyan_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/cyan_suitcase.json new file mode 100644 index 0000000..c852799 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/cyan_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/cyan_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/cyan_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/cyan_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/cyan_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/cyan_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/cyan_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/cyan_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/cyan_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/gray_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/gray_suitcase.json new file mode 100644 index 0000000..cb927c4 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/gray_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/gray_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/gray_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/gray_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/gray_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/gray_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/gray_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/gray_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/gray_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/green_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/green_suitcase.json new file mode 100644 index 0000000..842c0b5 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/green_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/green_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/green_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/green_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/green_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/green_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/green_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/green_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/green_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/light_blue_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/light_blue_suitcase.json new file mode 100644 index 0000000..544b290 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/light_blue_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/light_blue_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/light_blue_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/light_blue_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/light_blue_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/light_blue_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/light_blue_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/light_blue_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/light_blue_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/light_gray_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/light_gray_suitcase.json new file mode 100644 index 0000000..daaea82 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/light_gray_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/light_gray_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/light_gray_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/light_gray_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/light_gray_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/light_gray_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/light_gray_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/light_gray_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/light_gray_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/lime_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/lime_suitcase.json new file mode 100644 index 0000000..9a32b48 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/lime_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/lime_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/lime_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/lime_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/lime_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/lime_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/lime_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/lime_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/lime_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/magenta_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/magenta_suitcase.json new file mode 100644 index 0000000..532e3fe --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/magenta_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/magenta_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/magenta_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/magenta_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/magenta_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/magenta_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/magenta_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/magenta_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/magenta_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/orange_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/orange_suitcase.json new file mode 100644 index 0000000..28984df --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/orange_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/orange_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/orange_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/orange_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/orange_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/orange_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/orange_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/orange_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/orange_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/pink_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/pink_suitcase.json new file mode 100644 index 0000000..04ffd96 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/pink_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/pink_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/pink_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/pink_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/pink_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/pink_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/pink_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/pink_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/pink_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/portal.json b/src/main/resources/assets/travelerssuitcase/blockstates/portal.json new file mode 100644 index 0000000..51c3835 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/portal.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "travelerssuitcase:block/portal" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/purple_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/purple_suitcase.json new file mode 100644 index 0000000..0699307 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/purple_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/purple_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/purple_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/purple_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/purple_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/purple_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/purple_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/purple_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/purple_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/red_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/red_suitcase.json new file mode 100644 index 0000000..17f5cbe --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/red_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/red_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/red_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/red_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/red_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/red_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/red_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/red_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/red_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/suitcase.json new file mode 100644 index 0000000..8de297e --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/white_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/white_suitcase.json new file mode 100644 index 0000000..80bb669 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/white_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/white_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/white_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/white_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/white_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/white_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/white_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/white_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/white_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/blockstates/yellow_suitcase.json b/src/main/resources/assets/travelerssuitcase/blockstates/yellow_suitcase.json new file mode 100644 index 0000000..f20a6d8 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/blockstates/yellow_suitcase.json @@ -0,0 +1,34 @@ +{ + "variants": { + "facing=north,open=false": { + "model": "travelerssuitcase:block/yellow_suitcase_closed" + }, + "facing=south,open=false": { + "model": "travelerssuitcase:block/yellow_suitcase_closed", + "y": 180 + }, + "facing=west,open=false": { + "model": "travelerssuitcase:block/yellow_suitcase_closed", + "y": 270 + }, + "facing=east,open=false": { + "model": "travelerssuitcase:block/yellow_suitcase_closed", + "y": 90 + }, + "facing=north,open=true": { + "model": "travelerssuitcase:block/yellow_suitcase_open" + }, + "facing=south,open=true": { + "model": "travelerssuitcase:block/yellow_suitcase_open", + "y": 180 + }, + "facing=west,open=true": { + "model": "travelerssuitcase:block/yellow_suitcase_open", + "y": 270 + }, + "facing=east,open=true": { + "model": "travelerssuitcase:block/yellow_suitcase_open", + "y": 90 + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/icon.png b/src/main/resources/assets/travelerssuitcase/icon.png new file mode 100644 index 0000000..63a76e6 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/icon.png differ diff --git a/src/main/resources/assets/travelerssuitcase/lang/en_us.json b/src/main/resources/assets/travelerssuitcase/lang/en_us.json new file mode 100644 index 0000000..75fcf0a --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/lang/en_us.json @@ -0,0 +1,24 @@ +{ + "item.travelerssuitcase.keystone": "Traveler's Key", + + "block.travelerssuitcase.suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.black_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.gray_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.light_gray_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.white_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.red_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.orange_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.yellow_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.lime_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.green_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.cyan_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.light_blue_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.blue_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.purple_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.magenta_suitcase": "Traveler's Suitcase", + "block.travelerssuitcase.pink_suitcase": "Traveler's Suitcase", + + "block.travelerssuitcase.portal": "Portal Block", + + "itemgroup.pocket": "Pocket Repose" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/black_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/black_suitcase_closed.json new file mode 100644 index 0000000..dc96ec8 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/black_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/black_suitcase_closed", + "particle": "travelerssuitcase:block/black_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/black_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/black_suitcase_open.json new file mode 100644 index 0000000..bd31631 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/black_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/black_suitcase_open", + "particle": "travelerssuitcase:block/black_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/blue_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/blue_suitcase_closed.json new file mode 100644 index 0000000..528b600 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/blue_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/blue_suitcase_closed", + "particle": "travelerssuitcase:block/blue_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/blue_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/blue_suitcase_open.json new file mode 100644 index 0000000..8b003da --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/blue_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/blue_suitcase_open", + "particle": "travelerssuitcase:block/blue_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/cyan_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/cyan_suitcase_closed.json new file mode 100644 index 0000000..69758c4 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/cyan_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/cyan_suitcase_closed", + "particle": "travelerssuitcase:block/cyan_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/cyan_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/cyan_suitcase_open.json new file mode 100644 index 0000000..16c6ca9 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/cyan_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/cyan_suitcase_open", + "particle": "travelerssuitcase:block/cyan_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/gray_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/gray_suitcase_closed.json new file mode 100644 index 0000000..33704ad --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/gray_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/gray_suitcase_closed", + "particle": "travelerssuitcase:block/gray_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/gray_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/gray_suitcase_open.json new file mode 100644 index 0000000..c8fc565 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/gray_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/gray_suitcase_open", + "particle": "travelerssuitcase:block/gray_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/green_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/green_suitcase_closed.json new file mode 100644 index 0000000..01173f8 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/green_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/green_suitcase_closed", + "particle": "travelerssuitcase:block/green_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/green_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/green_suitcase_open.json new file mode 100644 index 0000000..41f97c2 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/green_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/green_suitcase_open", + "particle": "travelerssuitcase:block/green_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/light_blue_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/light_blue_suitcase_closed.json new file mode 100644 index 0000000..eb6c456 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/light_blue_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/light_blue_suitcase_closed", + "particle": "travelerssuitcase:block/light_blue_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/light_blue_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/light_blue_suitcase_open.json new file mode 100644 index 0000000..139437c --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/light_blue_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/light_blue_suitcase_open", + "particle": "travelerssuitcase:block/light_blue_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/light_gray_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/light_gray_suitcase_closed.json new file mode 100644 index 0000000..27e1821 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/light_gray_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/light_gray_suitcase_closed", + "particle": "travelerssuitcase:block/light_gray_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/light_gray_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/light_gray_suitcase_open.json new file mode 100644 index 0000000..5ceaa95 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/light_gray_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/light_gray_suitcase_open", + "particle": "travelerssuitcase:block/light_gray_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/lime_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/lime_suitcase_closed.json new file mode 100644 index 0000000..c8655fc --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/lime_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/lime_suitcase_closed", + "particle": "travelerssuitcase:block/lime_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/lime_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/lime_suitcase_open.json new file mode 100644 index 0000000..ddd8895 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/lime_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/lime_suitcase_open", + "particle": "travelerssuitcase:block/lime_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/magenta_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/magenta_suitcase_closed.json new file mode 100644 index 0000000..d460294 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/magenta_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/magenta_suitcase_closed", + "particle": "travelerssuitcase:block/magenta_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/magenta_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/magenta_suitcase_open.json new file mode 100644 index 0000000..a527ba5 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/magenta_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/magenta_suitcase_open", + "particle": "travelerssuitcase:block/magenta_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/orange_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/orange_suitcase_closed.json new file mode 100644 index 0000000..ca3a489 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/orange_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/orange_suitcase_closed", + "particle": "travelerssuitcase:block/orange_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/orange_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/orange_suitcase_open.json new file mode 100644 index 0000000..9b516a7 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/orange_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/orange_suitcase_open", + "particle": "travelerssuitcase:block/orange_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/pink_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/pink_suitcase_closed.json new file mode 100644 index 0000000..c008ffb --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/pink_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/pink_suitcase_closed", + "particle": "travelerssuitcase:block/pink_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/pink_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/pink_suitcase_open.json new file mode 100644 index 0000000..0ccdf73 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/pink_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/pink_suitcase_open", + "particle": "travelerssuitcase:block/pink_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/portal.json b/src/main/resources/assets/travelerssuitcase/models/block/portal.json new file mode 100644 index 0000000..a8700e3 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/portal.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "travelerssuitcase:block/portal" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/purple_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/purple_suitcase_closed.json new file mode 100644 index 0000000..ddb75fe --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/purple_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/purple_suitcase_closed", + "particle": "travelerssuitcase:block/purple_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/purple_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/purple_suitcase_open.json new file mode 100644 index 0000000..615e16f --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/purple_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/purple_suitcase_open", + "particle": "travelerssuitcase:block/purple_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/red_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/red_suitcase_closed.json new file mode 100644 index 0000000..44f4c56 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/red_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/red_suitcase_closed", + "particle": "travelerssuitcase:block/red_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/red_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/red_suitcase_open.json new file mode 100644 index 0000000..a3f6543 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/red_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/red_suitcase_open", + "particle": "travelerssuitcase:block/red_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/suitcase_closed.json new file mode 100644 index 0000000..b722760 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/suitcase_closed", + "particle": "travelerssuitcase:block/suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/suitcase_open.json new file mode 100644 index 0000000..8cd1278 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/suitcase_open", + "particle": "travelerssuitcase:block/suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/white_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/white_suitcase_closed.json new file mode 100644 index 0000000..889b3dc --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/white_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/white_suitcase_closed", + "particle": "travelerssuitcase:block/white_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/white_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/white_suitcase_open.json new file mode 100644 index 0000000..f5ef73c --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/white_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/white_suitcase_open", + "particle": "travelerssuitcase:block/white_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/yellow_suitcase_closed.json b/src/main/resources/assets/travelerssuitcase/models/block/yellow_suitcase_closed.json new file mode 100644 index 0000000..ec9025f --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/yellow_suitcase_closed.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "2": "travelerssuitcase:block/yellow_suitcase_closed", + "particle": "travelerssuitcase:block/yellow_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 3, 2], + "to": [16, 4, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#2"}, + "east": {"uv": [0, 8, 3, 8.25], "texture": "#2"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#2"}, + "west": {"uv": [8, 0, 11, 0.25], "texture": "#2"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#2"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 2], + "to": [1, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#2"}, + "east": {"uv": [8, 0.25, 11, 0.5], "texture": "#2"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#2"}, + "west": {"uv": [8, 0.5, 11, 0.75], "texture": "#2"}, + "up": {"uv": [8.25, 3.75, 8, 0.75], "texture": "#2"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 2], + "to": [16, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#2"}, + "east": {"uv": [3.25, 8, 6.25, 8.25], "texture": "#2"}, + "south": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#2"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#2"}, + "up": {"uv": [6.5, 11, 6.25, 8], "texture": "#2"}, + "down": {"uv": [6.75, 8, 6.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 13], + "to": [15, 3, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#2"}, + "east": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#2"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#2"}, + "west": {"uv": [1, 8.25, 1.25, 8.5], "texture": "#2"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#2"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 2, 2], + "to": [15, 3, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#2"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#2"}, + "west": {"uv": [1.25, 8.25, 1.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#2"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#2"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 5, 9.5, 5.25], "texture": "#2"}, + "east": {"uv": [8.25, 2.25, 8.375, 2.5], "texture": "#2"}, + "south": {"uv": [8, 5.25, 9.5, 5.5], "texture": "#2"}, + "west": {"uv": [2.5, 8.25, 2.625, 8.5], "texture": "#2"}, + "up": {"uv": [9.5, 5.625, 8, 5.5], "texture": "#2"}, + "down": {"uv": [9.5, 5.75, 8, 5.875], "texture": "#2"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [3.25, 8.25, 3.375, 8.5], "texture": "#2"}, + "east": {"uv": [7.75, 8, 8, 8.25], "texture": "#2"}, + "south": {"uv": [8.25, 3.25, 8.375, 3.5], "texture": "#2"}, + "west": {"uv": [8, 8, 8.25, 8.25], "texture": "#2"}, + "up": {"uv": [3.625, 8.5, 3.5, 8.25], "texture": "#2"}, + "down": {"uv": [8.375, 3.5, 8.25, 3.75], "texture": "#2"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [8.25, 2.5, 8.375, 2.75], "texture": "#2"}, + "east": {"uv": [8, 6, 8.25, 6.25], "texture": "#2"}, + "south": {"uv": [2.75, 8.25, 2.875, 8.5], "texture": "#2"}, + "west": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#2"}, + "up": {"uv": [8.375, 3, 8.25, 2.75], "texture": "#2"}, + "down": {"uv": [8.375, 3, 8.25, 3.25], "texture": "#2"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6, 4, 6.25], "texture": "#2"}, + "east": {"uv": [3.5, 7.75, 6.5, 8], "texture": "#2"}, + "south": {"uv": [4, 6, 8, 6.25], "texture": "#2"}, + "west": {"uv": [6.5, 7.75, 9.5, 8], "texture": "#2"}, + "up": {"uv": [4, 3, 0, 0], "texture": "#2"}, + "down": {"uv": [4, 3, 0, 6], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#2"}, + "east": {"uv": [8, 4, 11, 4.25], "texture": "#2"}, + "south": {"uv": [1.5, 8.25, 1.75, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.25, 11, 4.5], "texture": "#2"}, + "up": {"uv": [7, 11, 6.75, 8], "texture": "#2"}, + "down": {"uv": [7.25, 8, 7, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [8.25, 1.5, 8.5, 1.75], "texture": "#2"}, + "east": {"uv": [8, 4.5, 11, 4.75], "texture": "#2"}, + "south": {"uv": [1.75, 8.25, 2, 8.5], "texture": "#2"}, + "west": {"uv": [8, 4.75, 11, 5], "texture": "#2"}, + "up": {"uv": [7.5, 11, 7.25, 8], "texture": "#2"}, + "down": {"uv": [7.75, 8, 7.5, 11], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#2"}, + "east": {"uv": [8.25, 1.75, 8.5, 2], "texture": "#2"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#2"}, + "west": {"uv": [2, 8.25, 2.25, 8.5], "texture": "#2"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#2"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#2"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#2"}, + "east": {"uv": [8.25, 2, 8.5, 2.25], "texture": "#2"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#2"}, + "west": {"uv": [2.25, 8.25, 2.5, 8.5], "texture": "#2"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#2"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#2"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 3, 0], + "scale": [0.25, 0.25, 0.25] + }, + "gui": { + "rotation": [-145, -45, 180], + "translation": [0, 3.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/block/yellow_suitcase_open.json b/src/main/resources/assets/travelerssuitcase/models/block/yellow_suitcase_open.json new file mode 100644 index 0000000..8c96ae8 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/block/yellow_suitcase_open.json @@ -0,0 +1,266 @@ +{ + "credit": "Made with Blockbench", + "texture_size": [64, 64], + "textures": { + "7": "travelerssuitcase:block/yellow_suitcase_open", + "particle": "travelerssuitcase:block/yellow_suitcase_open" + }, + "elements": [ + { + "name": "suitcase_top", + "from": [0, 2, 15], + "to": [16, 14, 16], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 0, 4, 3], "texture": "#7"}, + "east": {"uv": [3.5, 7.75, 3.75, 10.75], "texture": "#7"}, + "south": {"uv": [0, 3, 4, 6], "texture": "#7"}, + "west": {"uv": [3.75, 7.75, 4, 10.75], "texture": "#7"}, + "up": {"uv": [4, 6.25, 0, 6], "texture": "#7"}, + "down": {"uv": [8, 6, 4, 6.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 2, 14], + "to": [1, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [4, 7.75, 4.25, 10.75], "texture": "#7"}, + "east": {"uv": [4.25, 7.75, 4.5, 10.75], "texture": "#7"}, + "south": {"uv": [4.5, 7.75, 4.75, 10.75], "texture": "#7"}, + "west": {"uv": [4.75, 7.75, 5, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 5.75, 8, 5.5], "texture": "#7"}, + "down": {"uv": [8.25, 5.75, 8, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 2, 14], + "to": [16, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [5, 7.75, 5.25, 10.75], "texture": "#7"}, + "east": {"uv": [5.25, 7.75, 5.5, 10.75], "texture": "#7"}, + "south": {"uv": [5.5, 7.75, 5.75, 10.75], "texture": "#7"}, + "west": {"uv": [5.75, 7.75, 6, 10.75], "texture": "#7"}, + "up": {"uv": [8.25, 6.25, 8, 6], "texture": "#7"}, + "down": {"uv": [6.5, 8, 6.25, 8.25], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 2, 14], + "to": [15, 3, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 7, 3.5, 7.25], "texture": "#7"}, + "east": {"uv": [8, 6.25, 8.25, 6.5], "texture": "#7"}, + "south": {"uv": [3.5, 7, 7, 7.25], "texture": "#7"}, + "west": {"uv": [6.5, 8, 6.75, 8.25], "texture": "#7"}, + "up": {"uv": [10.5, 6.75, 7, 6.5], "texture": "#7"}, + "down": {"uv": [10.5, 6.75, 7, 7], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 13, 14], + "to": [15, 14, 15], + "rotation": {"angle": 0, "axis": "x", "origin": [8, 2, 14]}, + "faces": { + "north": {"uv": [0, 6.5, 3.5, 6.75], "texture": "#7"}, + "east": {"uv": [8, 5, 8.25, 5.25], "texture": "#7"}, + "south": {"uv": [3.5, 6.5, 7, 6.75], "texture": "#7"}, + "west": {"uv": [8, 5.25, 8.25, 5.5], "texture": "#7"}, + "up": {"uv": [3.5, 7, 0, 6.75], "texture": "#7"}, + "down": {"uv": [7, 6.75, 3.5, 7], "texture": "#7"} + } + }, + { + "name": "handle_03", + "from": [5, 1, 0.5], + "to": [11, 2, 1], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 0.5]}, + "faces": { + "north": {"uv": [8, 4, 9.5, 4.25], "texture": "#7"}, + "east": {"uv": [1, 8.25, 1.125, 8.5], "texture": "#7"}, + "south": {"uv": [8, 4.25, 9.5, 4.5], "texture": "#7"}, + "west": {"uv": [8.25, 1, 8.375, 1.25], "texture": "#7"}, + "up": {"uv": [9.5, 4.625, 8, 4.5], "texture": "#7"}, + "down": {"uv": [9.5, 4.75, 8, 4.875], "texture": "#7"} + } + }, + { + "name": "handle_02", + "from": [10.5, 1, 1], + "to": [11, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 1]}, + "faces": { + "north": {"uv": [1.75, 8.25, 1.875, 8.5], "texture": "#7"}, + "east": {"uv": [7.25, 8, 7.5, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.75, 8.375, 2], "texture": "#7"}, + "west": {"uv": [7.5, 8, 7.75, 8.25], "texture": "#7"}, + "up": {"uv": [2.125, 8.5, 2, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 2, 8.25, 2.25], "texture": "#7"} + } + }, + { + "name": "handle_01", + "from": [5, 1, 1], + "to": [5.5, 2, 2], + "rotation": {"angle": 0, "axis": "y", "origin": [2, 0, 1]}, + "faces": { + "north": {"uv": [1.25, 8.25, 1.375, 8.5], "texture": "#7"}, + "east": {"uv": [6.75, 8, 7, 8.25], "texture": "#7"}, + "south": {"uv": [8.25, 1.25, 8.375, 1.5], "texture": "#7"}, + "west": {"uv": [7, 8, 7.25, 8.25], "texture": "#7"}, + "up": {"uv": [1.625, 8.5, 1.5, 8.25], "texture": "#7"}, + "down": {"uv": [8.375, 1.5, 8.25, 1.75], "texture": "#7"} + } + }, + { + "name": "suitcase_bottom", + "from": [0, 0, 2], + "to": [16, 1, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, -2, 7]}, + "faces": { + "north": {"uv": [0, 6.25, 4, 6.5], "texture": "#7"}, + "east": {"uv": [6, 7.75, 9, 8], "texture": "#7"}, + "south": {"uv": [4, 6.25, 8, 6.5], "texture": "#7"}, + "west": {"uv": [0, 8, 3, 8.25], "texture": "#7"}, + "up": {"uv": [8, 3, 4, 0], "texture": "#7"}, + "down": {"uv": [8, 3, 4, 6], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_01", + "from": [0, 1, 2], + "to": [1, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [7, 0, 7]}, + "faces": { + "north": {"uv": [7.75, 8, 8, 8.25], "texture": "#7"}, + "east": {"uv": [8, 0, 11, 0.25], "texture": "#7"}, + "south": {"uv": [8, 8, 8.25, 8.25], "texture": "#7"}, + "west": {"uv": [8, 0.25, 11, 0.5], "texture": "#7"}, + "up": {"uv": [8.25, 3.5, 8, 0.5], "texture": "#7"}, + "down": {"uv": [3.25, 8, 3, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_02", + "from": [15, 1, 2], + "to": [16, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [22, 0, 7]}, + "faces": { + "north": {"uv": [0, 8.25, 0.25, 8.5], "texture": "#7"}, + "east": {"uv": [8, 3.5, 11, 3.75], "texture": "#7"}, + "south": {"uv": [0.25, 8.25, 0.5, 8.5], "texture": "#7"}, + "west": {"uv": [8, 3.75, 11, 4], "texture": "#7"}, + "up": {"uv": [3.5, 11, 3.25, 8], "texture": "#7"}, + "down": {"uv": [6.25, 8, 6, 11], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_03", + "from": [1, 1, 13], + "to": [15, 2, 14], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 20]}, + "faces": { + "north": {"uv": [7, 7, 10.5, 7.25], "texture": "#7"}, + "east": {"uv": [0.5, 8.25, 0.75, 8.5], "texture": "#7"}, + "south": {"uv": [0, 7.25, 3.5, 7.5], "texture": "#7"}, + "west": {"uv": [8.25, 0.5, 8.5, 0.75], "texture": "#7"}, + "up": {"uv": [7, 7.5, 3.5, 7.25], "texture": "#7"}, + "down": {"uv": [10.5, 7.25, 7, 7.5], "texture": "#7"} + } + }, + { + "name": "suitcase_top_edge_04", + "from": [1, 1, 2], + "to": [15, 2, 3], + "rotation": {"angle": 0, "axis": "y", "origin": [9, 0, 9]}, + "faces": { + "north": {"uv": [0, 7.5, 3.5, 7.75], "texture": "#7"}, + "east": {"uv": [0.75, 8.25, 1, 8.5], "texture": "#7"}, + "south": {"uv": [3.5, 7.5, 7, 7.75], "texture": "#7"}, + "west": {"uv": [8.25, 0.75, 8.5, 1], "texture": "#7"}, + "up": {"uv": [10.5, 7.75, 7, 7.5], "texture": "#7"}, + "down": {"uv": [3.5, 7.75, 0, 8], "texture": "#7"} + } + } + ], + "display": { + "thirdperson_righthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "thirdperson_lefthand": { + "rotation": [0, 180, 90], + "translation": [5.25, -2, -4.75], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_righthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "firstperson_lefthand": { + "rotation": [-90, 180, 90], + "translation": [3, -3, 7], + "scale": [0.75, 0.75, 0.75] + }, + "ground": { + "translation": [0, 4.25, 0], + "scale": [0.75, 0.75, 0.75] + }, + "gui": { + "rotation": [90, 0, 0], + "translation": [0, -0.75, 0], + "scale": [0.75, 0.75, 0.75] + }, + "head": { + "translation": [0, 14.25, 0] + }, + "fixed": { + "rotation": [-90, 180, 0], + "translation": [0, -0.25, -7] + } + }, + "groups": [ + { + "name": "top", + "origin": [7, 2, 7], + "color": 0, + "children": [ + 0, + { + "name": "top_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [1, 2, 3, 4] + } + ] + }, + { + "name": "bottom", + "origin": [7, 1, 0], + "color": 0, + "children": [ + { + "name": "handle", + "origin": [2, 0, 1], + "color": 0, + "children": [5, 6, 7] + }, + 8, + { + "name": "bottom_edge", + "origin": [9, 1, 9], + "color": 0, + "children": [9, 10, 11, 12] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/black_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/black_suitcase.json new file mode 100644 index 0000000..cfc0922 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/black_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/black_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/blue_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/blue_suitcase.json new file mode 100644 index 0000000..3f7ee8c --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/blue_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/blue_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/cyan_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/cyan_suitcase.json new file mode 100644 index 0000000..1cb94f8 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/cyan_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/cyan_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/gray_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/gray_suitcase.json new file mode 100644 index 0000000..62f6d78 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/gray_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/gray_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/green_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/green_suitcase.json new file mode 100644 index 0000000..a705a37 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/green_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/green_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/keystone.json b/src/main/resources/assets/travelerssuitcase/models/item/keystone.json new file mode 100644 index 0000000..06c1873 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/keystone.json @@ -0,0 +1,14 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "travelerssuitcase:item/keystone" + }, + "overrides": [ + { + "predicate": { + "custom_model_data": 1 + }, + "model": "travelerssuitcase:item/keystone_unnamed" + } + ] +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/keystone_unnamed.json b/src/main/resources/assets/travelerssuitcase/models/item/keystone_unnamed.json new file mode 100644 index 0000000..d3af4e3 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/keystone_unnamed.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "travelerssuitcase:item/keystone_unnamed" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/light_blue_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/light_blue_suitcase.json new file mode 100644 index 0000000..9859754 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/light_blue_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/light_blue_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/light_gray_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/light_gray_suitcase.json new file mode 100644 index 0000000..b6178b9 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/light_gray_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/light_gray_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/lime_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/lime_suitcase.json new file mode 100644 index 0000000..5c09fc3 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/lime_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/lime_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/magenta_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/magenta_suitcase.json new file mode 100644 index 0000000..0f41830 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/magenta_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/magenta_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/orange_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/orange_suitcase.json new file mode 100644 index 0000000..fa65256 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/orange_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/orange_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/pink_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/pink_suitcase.json new file mode 100644 index 0000000..34e93de --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/pink_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/pink_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/portal.json b/src/main/resources/assets/travelerssuitcase/models/item/portal.json new file mode 100644 index 0000000..3174c2a --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/portal.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/portal" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/purple_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/purple_suitcase.json new file mode 100644 index 0000000..bbb9be2 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/purple_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/purple_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/red_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/red_suitcase.json new file mode 100644 index 0000000..3aba054 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/red_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/red_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/suitcase.json new file mode 100644 index 0000000..e1c3a61 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/white_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/white_suitcase.json new file mode 100644 index 0000000..3293f0a --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/white_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/white_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/models/item/yellow_suitcase.json b/src/main/resources/assets/travelerssuitcase/models/item/yellow_suitcase.json new file mode 100644 index 0000000..ec04209 --- /dev/null +++ b/src/main/resources/assets/travelerssuitcase/models/item/yellow_suitcase.json @@ -0,0 +1,3 @@ +{ + "parent": "travelerssuitcase:block/yellow_suitcase_closed" +} \ No newline at end of file diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/black_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/black_suitcase_closed.png new file mode 100644 index 0000000..33739b8 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/black_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/black_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/black_suitcase_open.png new file mode 100644 index 0000000..0484f96 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/black_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/blue_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/blue_suitcase_closed.png new file mode 100644 index 0000000..9aa6531 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/blue_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/blue_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/blue_suitcase_open.png new file mode 100644 index 0000000..61a958e Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/blue_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/cyan_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/cyan_suitcase_closed.png new file mode 100644 index 0000000..56289b9 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/cyan_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/cyan_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/cyan_suitcase_open.png new file mode 100644 index 0000000..dcdf3cb Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/cyan_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/gray_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/gray_suitcase_closed.png new file mode 100644 index 0000000..9e1b33d Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/gray_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/gray_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/gray_suitcase_open.png new file mode 100644 index 0000000..76c1df3 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/gray_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/green_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/green_suitcase_closed.png new file mode 100644 index 0000000..3e1e25c Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/green_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/green_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/green_suitcase_open.png new file mode 100644 index 0000000..85adffa Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/green_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/light_blue_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/light_blue_suitcase_closed.png new file mode 100644 index 0000000..4d7835d Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/light_blue_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/light_blue_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/light_blue_suitcase_open.png new file mode 100644 index 0000000..ce37244 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/light_blue_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/light_gray_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/light_gray_suitcase_closed.png new file mode 100644 index 0000000..dbb513f Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/light_gray_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/light_gray_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/light_gray_suitcase_open.png new file mode 100644 index 0000000..4341a95 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/light_gray_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/lime_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/lime_suitcase_closed.png new file mode 100644 index 0000000..a4b050b Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/lime_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/lime_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/lime_suitcase_open.png new file mode 100644 index 0000000..01fff13 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/lime_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/magenta_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/magenta_suitcase_closed.png new file mode 100644 index 0000000..5247b3b Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/magenta_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/magenta_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/magenta_suitcase_open.png new file mode 100644 index 0000000..b939e10 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/magenta_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/orange_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/orange_suitcase_closed.png new file mode 100644 index 0000000..028e467 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/orange_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/orange_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/orange_suitcase_open.png new file mode 100644 index 0000000..a30f054 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/orange_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/pink_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/pink_suitcase_closed.png new file mode 100644 index 0000000..a27fc54 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/pink_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/pink_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/pink_suitcase_open.png new file mode 100644 index 0000000..f59711e Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/pink_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/portal.png b/src/main/resources/assets/travelerssuitcase/textures/block/portal.png new file mode 100644 index 0000000..c0d7493 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/portal.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/purple_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/purple_suitcase_closed.png new file mode 100644 index 0000000..a5c95ce Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/purple_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/purple_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/purple_suitcase_open.png new file mode 100644 index 0000000..b621dc7 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/purple_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/red_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/red_suitcase_closed.png new file mode 100644 index 0000000..7ab50c9 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/red_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/red_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/red_suitcase_open.png new file mode 100644 index 0000000..f2c6482 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/red_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/suitcase_closed.png new file mode 100644 index 0000000..7adb898 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/suitcase_open.png new file mode 100644 index 0000000..45350ec Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/white_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/white_suitcase_closed.png new file mode 100644 index 0000000..44f8a29 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/white_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/white_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/white_suitcase_open.png new file mode 100644 index 0000000..dcfd610 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/white_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/yellow_suitcase_closed.png b/src/main/resources/assets/travelerssuitcase/textures/block/yellow_suitcase_closed.png new file mode 100644 index 0000000..0d7df65 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/yellow_suitcase_closed.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/block/yellow_suitcase_open.png b/src/main/resources/assets/travelerssuitcase/textures/block/yellow_suitcase_open.png new file mode 100644 index 0000000..15fac5d Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/block/yellow_suitcase_open.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/item/keystone.png b/src/main/resources/assets/travelerssuitcase/textures/item/keystone.png new file mode 100644 index 0000000..4aae6f9 Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/item/keystone.png differ diff --git a/src/main/resources/assets/travelerssuitcase/textures/item/keystone_unnamed.png b/src/main/resources/assets/travelerssuitcase/textures/item/keystone_unnamed.png new file mode 100644 index 0000000..f79b48e Binary files /dev/null and b/src/main/resources/assets/travelerssuitcase/textures/item/keystone_unnamed.png differ diff --git a/src/main/resources/data/travelerssuitcase/dimension/pocket_dimension_.json b/src/main/resources/data/travelerssuitcase/dimension/pocket_dimension_.json new file mode 100644 index 0000000..efdb077 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/dimension/pocket_dimension_.json @@ -0,0 +1,16 @@ +{ + "type": "travelerssuitcase:pocket_dimension_type", + "generator": { + "type": "minecraft:flat", + "settings": { + "biome": "travelerssuitcase:pocket_islands", + "layers": [ + { + "block": "travelerssuitcase:portal", + "height": 1 + } + ], + "structure_overrides": [] + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/dimension/pocket_dimension_template.json b/src/main/resources/data/travelerssuitcase/dimension/pocket_dimension_template.json new file mode 100644 index 0000000..efdb077 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/dimension/pocket_dimension_template.json @@ -0,0 +1,16 @@ +{ + "type": "travelerssuitcase:pocket_dimension_type", + "generator": { + "type": "minecraft:flat", + "settings": { + "biome": "travelerssuitcase:pocket_islands", + "layers": [ + { + "block": "travelerssuitcase:portal", + "height": 1 + } + ], + "structure_overrides": [] + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/dimension_type/pocket_dimension_type.json b/src/main/resources/data/travelerssuitcase/dimension_type/pocket_dimension_type.json new file mode 100644 index 0000000..8dfd510 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/dimension_type/pocket_dimension_type.json @@ -0,0 +1,20 @@ +{ + "ultrawarm": false, + "natural": true, + "piglin_safe": false, + "respawn_anchor_works": true, + "bed_works": true, + "has_raids": false, + "has_skylight": true, + "has_ceiling": false, + "structures": false, + "coordinate_scale": 1, + "ambient_light": 0, + "logical_height": 384, + "effects": "minecraft:overworld", + "infiniburn": "#minecraft:infiniburn_overworld", + "min_y": -64, + "height": 384, + "monster_spawn_light_level": 0, + "monster_spawn_block_light_limit": 0 +} diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/black_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/black_suitcase.json new file mode 100644 index 0000000..3e96ace --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/black_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:black_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/blue_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/blue_suitcase.json new file mode 100644 index 0000000..a54f52e --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/blue_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:blue_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/cyan_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/cyan_suitcase.json new file mode 100644 index 0000000..ac0fde5 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/cyan_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:cyan_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/gray_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/gray_suitcase.json new file mode 100644 index 0000000..5b3873b --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/gray_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:gray_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/green_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/green_suitcase.json new file mode 100644 index 0000000..8848f2a --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/green_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:green_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/light_blue_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/light_blue_suitcase.json new file mode 100644 index 0000000..5d13f2a --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/light_blue_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:light_blue_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/light_gray_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/light_gray_suitcase.json new file mode 100644 index 0000000..1f4e435 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/light_gray_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:light_gray_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/lime_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/lime_suitcase.json new file mode 100644 index 0000000..26b05ae --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/lime_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:lime_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/magenta_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/magenta_suitcase.json new file mode 100644 index 0000000..33714a0 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/magenta_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:magenta_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/orange_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/orange_suitcase.json new file mode 100644 index 0000000..d7b57fe --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/orange_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:orange_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/pink_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/pink_suitcase.json new file mode 100644 index 0000000..62201ae --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/pink_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:pink_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/purple_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/purple_suitcase.json new file mode 100644 index 0000000..f939523 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/purple_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:purple_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/red_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/red_suitcase.json new file mode 100644 index 0000000..4a65123 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/red_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:red_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/suitcase.json new file mode 100644 index 0000000..faa13d6 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/white_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/white_suitcase.json new file mode 100644 index 0000000..ceb51b9 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/white_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:white_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/loot_tables/blocks/yellow_suitcase.json b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/yellow_suitcase.json new file mode 100644 index 0000000..f0cbcac --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/loot_tables/blocks/yellow_suitcase.json @@ -0,0 +1,27 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "travelerssuitcase:yellow_suitcase", + "functions": [ + { + "function": "minecraft:copy_nbt", + "source": "block_entity", + "ops": [ + { + "source": "DimensionSeed", + "target": "BlockEntityTag.DimensionSeed", + "op": "replace" + } + ] + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/black_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/black_suitcase.json new file mode 100644 index 0000000..1c08ba2 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/black_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:black_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:black_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/blue_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/blue_suitcase.json new file mode 100644 index 0000000..6fb0c45 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/blue_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:blue_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:blue_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/brown_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/brown_suitcase.json new file mode 100644 index 0000000..79717b9 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/brown_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:brown_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/cyan_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/cyan_suitcase.json new file mode 100644 index 0000000..6c0b9d6 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/cyan_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:cyan_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:cyan_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/gray_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/gray_suitcase.json new file mode 100644 index 0000000..a83cf3d --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/gray_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:gray_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:gray_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/green_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/green_suitcase.json new file mode 100644 index 0000000..3023a2f --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/green_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:green_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:green_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/keystone.json b/src/main/resources/data/travelerssuitcase/recipes/keystone.json new file mode 100644 index 0000000..11fb0e0 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/keystone.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "GNG", + "NTN", + "GNG" + ], + "key": { + "N": { + "item": "minecraft:netherite_ingot" + }, + "G": { + "item": "minecraft:gold_ingot" + }, + "T": { + "item": "minecraft:tripwire_hook" + } + }, + "result": { + "item": "travelerssuitcase:keystone", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/light_blue_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/light_blue_suitcase.json new file mode 100644 index 0000000..d948998 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/light_blue_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:light_blue_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:light_blue_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/light_gray_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/light_gray_suitcase.json new file mode 100644 index 0000000..bce81b9 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/light_gray_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:light_gray_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:light_gray_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/lime_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/lime_suitcase.json new file mode 100644 index 0000000..49d14bd --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/lime_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:lime_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:lime_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/magenta_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/magenta_suitcase.json new file mode 100644 index 0000000..59febd0 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/magenta_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:magenta_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:magenta_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/orange_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/orange_suitcase.json new file mode 100644 index 0000000..7dc50d8 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/orange_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:orange_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:orange_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/pink_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/pink_suitcase.json new file mode 100644 index 0000000..da64fe1 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/pink_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:pink_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:pink_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/purple_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/purple_suitcase.json new file mode 100644 index 0000000..0601c2d --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/purple_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:purple_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:purple_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/red_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/red_suitcase.json new file mode 100644 index 0000000..82624f9 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/red_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:red_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:red_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/suitcase.json new file mode 100644 index 0000000..76df2cc --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/suitcase.json @@ -0,0 +1,23 @@ +{ + "type": "minecraft:crafting_shaped", + "pattern": [ + "GGG", + "GCG", + "LLL" + ], + "key": { + "L": { + "item": "minecraft:leather" + }, + "G": { + "item": "minecraft:gold_ingot" + }, + "C": { + "item": "minecraft:ender_chest" + } + }, + "result": { + "item": "travelerssuitcase:suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/white_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/white_suitcase.json new file mode 100644 index 0000000..7776a0f --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/white_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:white_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:white_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/recipes/yellow_suitcase.json b/src/main/resources/data/travelerssuitcase/recipes/yellow_suitcase.json new file mode 100644 index 0000000..4235320 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/recipes/yellow_suitcase.json @@ -0,0 +1,15 @@ +{ + "type": "crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:yellow_dye" + }, + { + "tag": "travelerssuitcase:suitcases" + } + ], + "result": { + "item": "travelerssuitcase:yellow_suitcase", + "count": 1 + } +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/structures/pocket_island_01.nbt b/src/main/resources/data/travelerssuitcase/structures/pocket_island_01.nbt new file mode 100644 index 0000000..bdbfe1c Binary files /dev/null and b/src/main/resources/data/travelerssuitcase/structures/pocket_island_01.nbt differ diff --git a/src/main/resources/data/travelerssuitcase/tags/items/suitcases.json b/src/main/resources/data/travelerssuitcase/tags/items/suitcases.json new file mode 100644 index 0000000..5793404 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/tags/items/suitcases.json @@ -0,0 +1,21 @@ +{ + "replace": false, + "values": [ + "travelerssuitcase:suitcase", + "travelerssuitcase:white_suitcase", + "travelerssuitcase:light_gray_suitcase", + "travelerssuitcase:gray_suitcase", + "travelerssuitcase:black_suitcase", + "travelerssuitcase:red_suitcase", + "travelerssuitcase:orange_suitcase", + "travelerssuitcase:yellow_suitcase", + "travelerssuitcase:lime_suitcase", + "travelerssuitcase:green_suitcase", + "travelerssuitcase:cyan_suitcase", + "travelerssuitcase:light_blue_suitcase", + "travelerssuitcase:blue_suitcase", + "travelerssuitcase:purple_suitcase", + "travelerssuitcase:magenta_suitcase", + "travelerssuitcase:pink_suitcase" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/worldgen/biome/pocket_islands.json b/src/main/resources/data/travelerssuitcase/worldgen/biome/pocket_islands.json new file mode 100644 index 0000000..516390e --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/worldgen/biome/pocket_islands.json @@ -0,0 +1,54 @@ +{ + "carvers": {}, + "downfall": 0.8, + "effects": { + "fog_color": 12638463, + "sky_color": 7972607, + "water_color": 4159204, + "water_fog_color": 329011, + "music": { + "sound": "minecraft:music.creative", + "min_delay": 5000, + "max_delay": 6000, + "replace_current_music": false + } + }, + "features": [], + "has_precipitation": false, + "spawn_costs": {}, + "spawners": { + "creature": [ + { + "type": "minecraft:sheep", + "maxCount": 4, + "minCount": 4, + "weight": 12 + }, + { + "type": "minecraft:pig", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:chicken", + "maxCount": 4, + "minCount": 4, + "weight": 10 + }, + { + "type": "minecraft:cow", + "maxCount": 4, + "minCount": 4, + "weight": 8 + }, + { + "type": "minecraft:rabbit", + "maxCount": 3, + "minCount": 2, + "weight": 4 + } + ] + }, + "temperature": 0.7 +} \ No newline at end of file diff --git a/src/main/resources/data/travelerssuitcase/worldgen/dimension/pocket_dimension_.json b/src/main/resources/data/travelerssuitcase/worldgen/dimension/pocket_dimension_.json new file mode 100644 index 0000000..b1ef7e3 --- /dev/null +++ b/src/main/resources/data/travelerssuitcase/worldgen/dimension/pocket_dimension_.json @@ -0,0 +1,28 @@ +{ + "type": "travelerssuitcase:pocket_dimension_type", + "generator": { + "type": "minecraft:flat", + "settings": { + "biome": "minecraft:mushroom_fields", + "layers": [ + { + "block": "travelerssuitcase:portal", + "height": 1 + }, + { + "block": "minecraft:air", + "height": 120 + }, + { + "block": "minecraft:dirt", + "height": 2 + }, + { + "block": "minecraft:grass_block", + "height": 1 + } + ], + "structure_overrides": [] + } + } +} \ No newline at end of file diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..dbd6a51 --- /dev/null +++ b/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "travelerssuitcase resources", + "pack_format": 15 + } +} diff --git a/src/main/resources/travelerssuitcase.mixins.json b/src/main/resources/travelerssuitcase.mixins.json new file mode 100644 index 0000000..f348105 --- /dev/null +++ b/src/main/resources/travelerssuitcase.mixins.json @@ -0,0 +1,14 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "io.lampnet.travelerssuitcase.mixin", + "compatibilityLevel": "JAVA_8", + "refmap": "travelerssuitcase.refmap.json", + "mixins": [ + ], + "client": [ + ], + "injectors": { + "defaultRequire": 1 + } +}