Add Truly Modular materials for Create, Mekanism, Ice and Fire and friends
72 materials sourced from Create, Mekanism, Ice and Fire, Iron's Spells, Create: The Air War, Create: Cosmonautics and Aeronautics: Interstellar Expansion. Stats follow Tinkers' Construct 3 re-scaled onto MIAPI's vanilla-derived numbers; materials with no Tinkers counterpart are built from what the material actually is and then fitted to the nearest tier band. Palettes are not hand-picked. tools/generate_materials.py reads each material's texture out of the source mod's jar and samples it into MIAPI's seven-stop grayscale_map, reproducing MIAPI's own hand-authored copper palette to within ~2% per channel. MIAPI's material loader honours no datapack conditions, and a material whose ingredient item is missing fails to parse, so each mod's materials ship as a built-in datapack registered only when that mod is installed. Titanium is shared by both aerospace addons and so sources its ingredients from c:ingots/titanium instead of an item id. Cinder essence grants fire immunity through an attribute this mod registers and watches itself, rather than coupling to MIAPI internals. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>modules-and-missing-materials
commit
c55caa1d1e
|
|
@ -0,0 +1,7 @@
|
|||
build/
|
||||
.gradle/
|
||||
run/
|
||||
runs/
|
||||
repo/
|
||||
*.class
|
||||
__pycache__/
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
# Create/Mekanism Modular
|
||||
|
||||
A [Truly Modular](https://modrinth.com/mod/modular-item-api) addon for Minecraft
|
||||
1.21.1 / NeoForge. It adds 72 materials drawn from Create, Mekanism, Ice and
|
||||
Fire, Iron's Spells 'n Spellbooks, Create: The Air War, Create: Cosmonautics and
|
||||
Aeronautics: Interstellar Expansion, so those mods' metals, gems, scales and
|
||||
essences can be used to build modular tools and armour.
|
||||
|
||||
Every source mod is optional. Install any subset - the materials for mods you do
|
||||
not have are never registered.
|
||||
|
||||
## How it is put together
|
||||
|
||||
Almost all of this mod is data: MIAPI material JSON under
|
||||
`src/main/resources/packs/<mod>/data/cmmodular/miapi/materials/`.
|
||||
|
||||
The small amount of Java exists for two reasons.
|
||||
|
||||
**Conditional loading.** MIAPI reads materials with its own loader, which does
|
||||
not honour `neoforge:conditions` or anything else that could switch a file off,
|
||||
and a material whose ingredient item is missing fails to parse. So each source
|
||||
mod's materials are a separate built-in datapack, registered in
|
||||
`CMModular.java` only when that mod is present.
|
||||
|
||||
Titanium is the exception: Air War and Cosmonautics both add a titanium ingot,
|
||||
so one material covers both and draws its ingredients from `c:ingots/titanium`
|
||||
rather than an item id. Cosmonautics already declares that tag; the tag files in
|
||||
`data/c/` fill it in for Air War, which ships no common tags, using optional
|
||||
entries so a missing mod is not an error.
|
||||
|
||||
**Fire immunity.** Cinder essence grants immunity to fire, which is not an
|
||||
attribute the game has and not a property MIAPI offers. Instead of coupling to
|
||||
MIAPI's internals, `FireImmunity.java` registers a `cmmodular:fire_immunity`
|
||||
attribute, the material grants it like any other attribute, and a damage handler
|
||||
watches for it. Neither side knows about the other.
|
||||
|
||||
## Stats
|
||||
|
||||
Tinkers' Construct 3 is the reference, re-scaled onto MIAPI's vanilla-derived
|
||||
numbers (iron 235 durability, diamond 1546, netherite 2016). Materials with no
|
||||
Tinkers counterpart are built from what the material actually is, then fitted to
|
||||
the nearest tier band:
|
||||
|
||||
| Tinkers | here | shape |
|
||||
| --- | --- | --- |
|
||||
| cobalt | titanium | light, fast, durable, unremarkable damage |
|
||||
| steel | steel | balanced workhorse, poor enchantability |
|
||||
| hepatizon | brass, bronze | copper alloys - quick and enchantable, not durable |
|
||||
| manyullyn | dragonsteel | top damage, endgame gate |
|
||||
| rose gold | refined glowstone, pixie dust | fragile, huge enchantability |
|
||||
| ancient hide | dragon scales, chitin | armour-first, high toughness |
|
||||
|
||||
Tiers 6 and 7 sit above netherite: 6 is refined obsidian, shadow steel, refined
|
||||
radiance, atomic alloy and the two Iron's Spells essences; 7 is the three
|
||||
dragonsteels and antimatter.
|
||||
|
||||
Real-material character does the rest of the work - lead is the heaviest thing
|
||||
here and swings slowest, osmium is dense and tough, HDPE weighs nothing and
|
||||
cannot cut rock, silver smites the undead.
|
||||
|
||||
All of it lives in `tools/materials.py`, one entry per material with the
|
||||
reasoning in comments next to the numbers.
|
||||
|
||||
## Palettes
|
||||
|
||||
Colours are not hand-picked. `tools/generate_materials.py` opens the source
|
||||
mods' jars, resolves each material's item model to its texture, and samples that
|
||||
texture to build MIAPI's seven-stop `grayscale_map`.
|
||||
|
||||
The sampling deliberately does *not* normalise a stop's colour to its brightness
|
||||
number. A stop key is the brightness of MIAPI's grayscale template; its value is
|
||||
whatever the material looks like at that point in its own shading, which is why
|
||||
MIAPI's own netherite tops out at a murky `847a84` while iron runs to white.
|
||||
Samples are taken at percentiles of the texture's brightness order, so a texture
|
||||
with four shades still yields a full ramp and any hue drift between shadow and
|
||||
highlight survives. Pure-black outline pixels are excluded - they are not a
|
||||
shade of the material - and the darkest stop is extrapolated below the texture,
|
||||
which is what MIAPI's own palettes do.
|
||||
|
||||
The sample points were tuned against MIAPI's hand-authored copper palette and
|
||||
reproduce it to within about 2% per channel.
|
||||
|
||||
## Building
|
||||
|
||||
```sh
|
||||
./gradlew build
|
||||
```
|
||||
|
||||
Needs nothing but NeoForge - Truly Modular is a runtime dependency only, since
|
||||
this mod talks to it purely through datapack JSON.
|
||||
|
||||
## Regenerating materials
|
||||
|
||||
Only needed after editing `tools/materials.py` or when a source mod changes its
|
||||
textures. The generated JSON is committed, so a plain build does not need this.
|
||||
|
||||
```sh
|
||||
python3 tools/generate_materials.py --jars ~/path/to/mod/jars
|
||||
```
|
||||
|
||||
The folder needs one jar per source mod. Every item id in `materials.py` is
|
||||
checked against those jars and the run fails on a typo, rather than shipping a
|
||||
material that silently refuses to load.
|
||||
|
||||
Requires `pillow` and `numpy`.
|
||||
|
||||
## Notes
|
||||
|
||||
- Titanium's palette comes from Cosmonautics' ingot, which is violet. Air War's
|
||||
is blue-white; swap `palette_from` on the titanium entry to prefer it.
|
||||
- Cinder essence is nearly black, because its texture is a charred ember. It is
|
||||
emissive, so it still reads as fire in game.
|
||||
- Dragon scales are one material per colour (12 dragon, 7 sea serpent, 3 death
|
||||
worm chitin). Colours within an element share stats and differ only in palette.
|
||||
- Interstellar Expansion is mostly machinery. Only three of its items are a
|
||||
material rather than a component; solid E-710 is left out because it is rocket
|
||||
fuel.
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
plugins {
|
||||
id 'java'
|
||||
id 'net.neoforged.moddev' version '2.0.143'
|
||||
}
|
||||
|
||||
version = project.mod_version
|
||||
group = project.mod_group_id
|
||||
base.archivesName = project.mod_id
|
||||
|
||||
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
|
||||
|
||||
neoForge {
|
||||
version = project.neo_version
|
||||
|
||||
runs {
|
||||
client {
|
||||
client()
|
||||
}
|
||||
server {
|
||||
server()
|
||||
}
|
||||
}
|
||||
|
||||
mods {
|
||||
"${project.mod_id}" {
|
||||
sourceSet sourceSets.main
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
// Nothing to compile against beyond NeoForge itself. Truly Modular is a runtime
|
||||
// dependency only: this mod talks to it purely through datapack JSON, so there
|
||||
// is no API to build on and no version to get wrong at compile time.
|
||||
dependencies {
|
||||
}
|
||||
|
||||
tasks.withType(ProcessResources).configureEach {
|
||||
var replacements = [
|
||||
mod_id : project.mod_id,
|
||||
mod_name : project.mod_name,
|
||||
mod_version : project.mod_version,
|
||||
mod_authors : project.mod_authors,
|
||||
mod_description: project.mod_description,
|
||||
]
|
||||
inputs.properties replacements
|
||||
|
||||
filesMatching('META-INF/neoforge.mods.toml') {
|
||||
expand replacements
|
||||
}
|
||||
}
|
||||
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
options.encoding = 'UTF-8'
|
||||
options.release = 21
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
org.gradle.jvmargs=-Xmx3G
|
||||
org.gradle.parallel=true
|
||||
org.gradle.caching=true
|
||||
|
||||
minecraft_version=1.21.1
|
||||
neo_version=21.1.248
|
||||
|
||||
mod_id=cmmodular
|
||||
mod_name=Create/Mekanism Modular
|
||||
mod_version=1.0.0
|
||||
mod_group_id=eu.abdelbaki.cmmodular
|
||||
mod_authors=themiro
|
||||
mod_description=Materials from Create, Mekanism, Ice and Fire, Iron's Spells and the Create aerospace addons, for Truly Modular.
|
||||
Binary file not shown.
|
|
@ -0,0 +1,7 @@
|
|||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
@ -0,0 +1,251 @@
|
|||
#!/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.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# 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 -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || 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" "$@"
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
@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
|
||||
@rem SPDX-License-Identifier: Apache-2.0
|
||||
@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
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
pluginManagement {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
maven { url = 'https://maven.neoforged.net/releases' }
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0'
|
||||
}
|
||||
|
||||
rootProject.name = 'create-mekanism-modular'
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
package eu.abdelbaki.cmmodular;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.network.chat.Component;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.server.packs.PackType;
|
||||
import net.minecraft.server.packs.repository.Pack;
|
||||
import net.minecraft.server.packs.repository.PackSource;
|
||||
import net.neoforged.bus.api.IEventBus;
|
||||
import net.neoforged.fml.ModList;
|
||||
import net.neoforged.fml.common.Mod;
|
||||
import net.neoforged.neoforge.event.AddPackFindersEvent;
|
||||
|
||||
/**
|
||||
* Adds the materials of Create, Mekanism, Ice and Fire, Iron's Spells and the
|
||||
* Create aerospace addons to Truly Modular.
|
||||
*
|
||||
* <p>Almost all of this mod is data. The one thing data cannot do is load
|
||||
* conditionally: MIAPI reads materials with its own loader, which honours
|
||||
* neither {@code neoforge:conditions} nor anything else that could switch a
|
||||
* file off, and a material whose ingredient item does not exist fails to parse
|
||||
* outright. So each source mod's materials live in their own built-in datapack
|
||||
* and only get registered when that mod is actually installed.
|
||||
*/
|
||||
@Mod(CMModular.MOD_ID)
|
||||
public class CMModular {
|
||||
public static final String MOD_ID = "cmmodular";
|
||||
|
||||
/**
|
||||
* A set of materials, and the mods it needs in order to load.
|
||||
*
|
||||
* @param anyOf when true one of {@code requires} is enough, rather than all
|
||||
* of them. Such a pack cannot name items directly - it has no
|
||||
* way to know which mod turned up - so it sources ingredients
|
||||
* from item tags instead.
|
||||
*/
|
||||
private record MaterialPack(String id, String name, List<String> requires, boolean anyOf) {
|
||||
MaterialPack(String id, String name, String... requires) {
|
||||
this(id, name, List.of(requires), false);
|
||||
}
|
||||
|
||||
boolean present() {
|
||||
return anyOf
|
||||
? requires.stream().anyMatch(ModList.get()::isLoaded)
|
||||
: requires.stream().allMatch(ModList.get()::isLoaded);
|
||||
}
|
||||
}
|
||||
|
||||
private static final List<MaterialPack> PACKS = List.of(
|
||||
new MaterialPack("mekanism", "Mekanism Materials", "mekanism"),
|
||||
new MaterialPack("create", "Create Materials", "create"),
|
||||
new MaterialPack("iceandfire", "Ice and Fire Materials", "iceandfire"),
|
||||
new MaterialPack("irons_spellbooks", "Iron's Spells Materials", "irons_spellbooks"),
|
||||
new MaterialPack("interstellar", "Interstellar Expansion Materials", "vsie"),
|
||||
new MaterialPack("air_war", "Create: The Air War Materials", "create_the_air_wars"),
|
||||
new MaterialPack("cosmonautics", "Create: Cosmonautics Materials", "rocketnautics"),
|
||||
// Both aerospace addons add a titanium ingot. One material covers
|
||||
// them both, fed by the c:ingots/titanium tag.
|
||||
new MaterialPack("aerospace", "Aerospace Materials",
|
||||
List.of("create_the_air_wars", "rocketnautics"), true));
|
||||
|
||||
public CMModular(IEventBus modBus) {
|
||||
FireImmunity.register(modBus);
|
||||
modBus.addListener(this::addMaterialPacks);
|
||||
}
|
||||
|
||||
private void addMaterialPacks(AddPackFindersEvent event) {
|
||||
if (event.getPackType() != PackType.SERVER_DATA) {
|
||||
return;
|
||||
}
|
||||
for (MaterialPack pack : PACKS) {
|
||||
if (!pack.present()) {
|
||||
continue;
|
||||
}
|
||||
event.addPackFinders(
|
||||
ResourceLocation.fromNamespaceAndPath(MOD_ID, "packs/" + pack.id()),
|
||||
PackType.SERVER_DATA,
|
||||
Component.literal(pack.name()),
|
||||
PackSource.BUILT_IN,
|
||||
// Always on and above the base pack, so a material extension
|
||||
// lands on top of the material it extends.
|
||||
true,
|
||||
Pack.Position.TOP);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
package eu.abdelbaki.cmmodular;
|
||||
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.tags.DamageTypeTags;
|
||||
import net.minecraft.world.entity.ai.attributes.Attribute;
|
||||
import net.minecraft.world.entity.ai.attributes.AttributeInstance;
|
||||
import net.minecraft.world.entity.ai.attributes.RangedAttribute;
|
||||
import net.neoforged.bus.api.IEventBus;
|
||||
import net.neoforged.neoforge.common.NeoForge;
|
||||
import net.neoforged.neoforge.event.entity.EntityAttributeModificationEvent;
|
||||
import net.neoforged.neoforge.event.entity.living.LivingIncomingDamageEvent;
|
||||
import net.neoforged.neoforge.registries.DeferredHolder;
|
||||
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||
|
||||
/**
|
||||
* Cinder essence grants immunity to fire, which nothing in the game models as
|
||||
* an attribute and MIAPI has no property for.
|
||||
*
|
||||
* <p>Rather than couple this mod to MIAPI's internals, the material JSON grants
|
||||
* an attribute registered here and this class watches for it. MIAPI only has to
|
||||
* do what it already does for any attribute, and the two sides never touch.
|
||||
*/
|
||||
public final class FireImmunity {
|
||||
private static final DeferredRegister<Attribute> ATTRIBUTES =
|
||||
DeferredRegister.create(Registries.ATTRIBUTE, CMModular.MOD_ID);
|
||||
|
||||
/** At or above 1 the wearer does not take fire damage; 0 is no protection. */
|
||||
public static final DeferredHolder<Attribute, Attribute> FIRE_IMMUNITY =
|
||||
ATTRIBUTES.register("fire_immunity", id -> new RangedAttribute(
|
||||
"attribute.cmmodular.fire_immunity", 0.0D, 0.0D, 1.0D).setSyncable(true));
|
||||
|
||||
private FireImmunity() {
|
||||
}
|
||||
|
||||
static void register(IEventBus modBus) {
|
||||
ATTRIBUTES.register(modBus);
|
||||
modBus.addListener(FireImmunity::attachToEntities);
|
||||
NeoForge.EVENT_BUS.addListener(FireImmunity::onIncomingDamage);
|
||||
}
|
||||
|
||||
/** Attributes only exist on an entity if they were added to its type. */
|
||||
private static void attachToEntities(EntityAttributeModificationEvent event) {
|
||||
event.getTypes().forEach(type -> event.add(type, FIRE_IMMUNITY));
|
||||
}
|
||||
|
||||
private static void onIncomingDamage(LivingIncomingDamageEvent event) {
|
||||
if (!event.getSource().is(DamageTypeTags.IS_FIRE)) {
|
||||
return;
|
||||
}
|
||||
AttributeInstance instance = event.getEntity().getAttribute(FIRE_IMMUNITY);
|
||||
if (instance != null && instance.getValue() >= 1.0D) {
|
||||
// Put the wearer out as well, otherwise they burn harmlessly but
|
||||
// permanently, which reads as a bug.
|
||||
event.getEntity().clearFire();
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
modLoader = "javafml"
|
||||
loaderVersion = "[4,)"
|
||||
license = "MIT"
|
||||
issueTrackerURL = "https://github.com/themiro/create-mekanism-modular/issues"
|
||||
|
||||
[[mods]]
|
||||
modId = "${mod_id}"
|
||||
version = "${mod_version}"
|
||||
displayName = "${mod_name}"
|
||||
authors = "${mod_authors}"
|
||||
description = '''${mod_description}'''
|
||||
|
||||
# Every range here is open on purpose. Mods in this space version themselves as
|
||||
# "1.21.1-3.16.2", which Maven ordering reads as 1.21.1 with a qualifier - so a
|
||||
# range like [3.16,) rejects a perfectly good build, and for an optional
|
||||
# dependency that is installed but out of range FML hard-fails the launch.
|
||||
# Nothing here needs a version floor anyway: the material packs are gated at
|
||||
# runtime on whether the mod is loaded, not on what version it is.
|
||||
|
||||
# Truly Modular is what this mod adds materials to; without it there is nothing
|
||||
# to add them to.
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "miapi"
|
||||
type = "required"
|
||||
versionRange = "[0,)"
|
||||
ordering = "AFTER"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "neoforge"
|
||||
type = "required"
|
||||
versionRange = "[21.1,)"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "minecraft"
|
||||
type = "required"
|
||||
versionRange = "[1.21.1,1.22)"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
||||
|
||||
# Every source mod is optional. Each one's materials live in a datapack that is
|
||||
# only registered when that mod is present, so any subset works - including none
|
||||
# of them, which simply adds nothing.
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "mekanism"
|
||||
type = "optional"
|
||||
versionRange = "[0,)"
|
||||
ordering = "AFTER"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "create"
|
||||
type = "optional"
|
||||
versionRange = "[0,)"
|
||||
ordering = "AFTER"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "iceandfire"
|
||||
type = "optional"
|
||||
versionRange = "[0,)"
|
||||
ordering = "AFTER"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "irons_spellbooks"
|
||||
type = "optional"
|
||||
versionRange = "[0,)"
|
||||
ordering = "AFTER"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "vsie"
|
||||
type = "optional"
|
||||
versionRange = "[0,)"
|
||||
ordering = "AFTER"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "create_the_air_wars"
|
||||
type = "optional"
|
||||
versionRange = "[0,)"
|
||||
ordering = "AFTER"
|
||||
side = "BOTH"
|
||||
|
||||
[[dependencies.${mod_id}]]
|
||||
modId = "rocketnautics"
|
||||
type = "optional"
|
||||
versionRange = "[0,)"
|
||||
ordering = "AFTER"
|
||||
side = "BOTH"
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"attribute.cmmodular.fire_immunity": "Fire Immunity"
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
{
|
||||
"id": "create_the_air_wars:titaniumingot",
|
||||
"required": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
{
|
||||
"id": "create_the_air_wars:titaniumnugget",
|
||||
"required": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"replace": false,
|
||||
"values": [
|
||||
{
|
||||
"id": "create_the_air_wars:titaniumsheet",
|
||||
"required": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "Create/Mekanism Modular materials",
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"translation": "Titanium ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "rocketnautics:titanium_ingot"
|
||||
},
|
||||
"hardness": 5.8,
|
||||
"density": 1.6,
|
||||
"flexibility": 3,
|
||||
"durability": 1150,
|
||||
"enchantability": 11,
|
||||
"toughness": 2,
|
||||
"tier": 4,
|
||||
"mining_speed": 9,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 32,
|
||||
"armor_toughness": 1.5,
|
||||
"color": "CEA6D3",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0e0812",
|
||||
"68": "1b0f22",
|
||||
"107": "342039",
|
||||
"150": "552d61",
|
||||
"190": "bb86bc",
|
||||
"216": "cea6d3",
|
||||
"255": "f3d4f2"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
},
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.06",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"tag": "c:ingots/titanium",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"tag": "c:nuggets/titanium",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"tag": "c:plates/titanium",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "Aerospace Materials for Truly Modular",
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
{
|
||||
"translation": "Sulfur ",
|
||||
"groups": [
|
||||
"crystal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "create_the_air_wars:raw_sulfur"
|
||||
},
|
||||
"hardness": 3.0,
|
||||
"density": 2.0,
|
||||
"flexibility": 1,
|
||||
"durability": 140,
|
||||
"enchantability": 14,
|
||||
"toughness": 0,
|
||||
"tier": 2,
|
||||
"mining_speed": 4,
|
||||
"mining_level": "minecraft:incorrect_for_stone_tool",
|
||||
"armor_durability": 6,
|
||||
"color": "FAFDE0",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "724e0a",
|
||||
"68": "dc9613",
|
||||
"107": "dc9613",
|
||||
"150": "e9b115",
|
||||
"190": "e0f55f",
|
||||
"216": "fafde0",
|
||||
"255": "fafde0"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"crystal",
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"immolate": "2"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "create_the_air_wars:raw_sulfur",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "create_the_air_wars:crashedsulfur",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Amalgam ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "create_the_air_wars:rough_amalgam"
|
||||
},
|
||||
"hardness": 4.4,
|
||||
"density": 5.5,
|
||||
"flexibility": 3,
|
||||
"durability": 320,
|
||||
"enchantability": 21,
|
||||
"toughness": 0,
|
||||
"tier": 3,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_iron_tool",
|
||||
"armor_durability": 15,
|
||||
"color": "D7A668",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "3d201d",
|
||||
"68": "753d37",
|
||||
"107": "864f48",
|
||||
"150": "996247",
|
||||
"190": "c88666",
|
||||
"216": "d7a668",
|
||||
"255": "fcf3e4"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"leeching": "0.3",
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "-0.08",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "create_the_air_wars:rough_amalgam",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "create_the_air_wars:crushed_amalgam",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "Create: The Air War Materials for Truly Modular",
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Titanium Alloy ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "rocketnautics:titanium_alloy"
|
||||
},
|
||||
"hardness": 6.8,
|
||||
"density": 2.2,
|
||||
"flexibility": 3,
|
||||
"durability": 1900,
|
||||
"enchantability": 12,
|
||||
"toughness": 3,
|
||||
"tier": 5,
|
||||
"mining_speed": 10,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 36,
|
||||
"armor_toughness": 2.0,
|
||||
"color": "F283B4",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "280c23",
|
||||
"68": "4d1844",
|
||||
"107": "641f56",
|
||||
"150": "81206c",
|
||||
"190": "e25897",
|
||||
"216": "f283b4",
|
||||
"255": "fbaccb"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "rocketnautics:titanium_alloy",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "rocketnautics:titanium_alloy_nugget",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "rocketnautics:titanium_alloy_sheet",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "rocketnautics:titanium_alloy_block",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "Create: Cosmonautics Materials for Truly Modular",
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"translation": "Andesite Alloy ",
|
||||
"groups": [
|
||||
"metal",
|
||||
"stone"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "create:andesite_alloy"
|
||||
},
|
||||
"hardness": 4.4,
|
||||
"density": 4.2,
|
||||
"flexibility": 1,
|
||||
"durability": 210,
|
||||
"enchantability": 8,
|
||||
"toughness": 1,
|
||||
"tier": 2,
|
||||
"mining_speed": 4,
|
||||
"mining_level": "minecraft:incorrect_for_stone_tool",
|
||||
"armor_durability": 12,
|
||||
"color": "C9CABA",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "161c1c",
|
||||
"68": "2b3635",
|
||||
"107": "4a5451",
|
||||
"150": "5e6963",
|
||||
"190": "829789",
|
||||
"216": "c9caba",
|
||||
"255": "c9caba"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"metallic"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "create:andesite_alloy",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "create:andesite_alloy_block",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"translation": "Brass ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "create:brass_ingot"
|
||||
},
|
||||
"hardness": 5.0,
|
||||
"density": 3.4,
|
||||
"flexibility": 2,
|
||||
"durability": 380,
|
||||
"enchantability": 18,
|
||||
"toughness": 1,
|
||||
"tier": 3,
|
||||
"mining_speed": 8,
|
||||
"mining_level": "minecraft:incorrect_for_iron_tool",
|
||||
"armor_durability": 18,
|
||||
"color": "FFEB94",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "321813",
|
||||
"68": "602f24",
|
||||
"107": "76462d",
|
||||
"150": "995a3d",
|
||||
"190": "fbcc68",
|
||||
"216": "ffeb94",
|
||||
"255": "fff9c7"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic",
|
||||
"bright"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "create:brass_ingot",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "create:brass_nugget",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "create:brass_block",
|
||||
"value": 9.0
|
||||
},
|
||||
{
|
||||
"item": "create:brass_sheet",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
{
|
||||
"translation": "Refined Radiance ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "create:refined_radiance"
|
||||
},
|
||||
"hardness": 7.4,
|
||||
"density": 2.0,
|
||||
"flexibility": 4,
|
||||
"durability": 2500,
|
||||
"enchantability": 28,
|
||||
"toughness": 4,
|
||||
"tier": 6,
|
||||
"mining_speed": 12,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 40,
|
||||
"armor_toughness": 3.0,
|
||||
"color": "FFFFFE",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "545849",
|
||||
"68": "a2a98c",
|
||||
"107": "c5ceb7",
|
||||
"150": "d5dec8",
|
||||
"190": "fffff6",
|
||||
"216": "fffffe",
|
||||
"255": "fffffe"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true,
|
||||
"emissive": {
|
||||
"sky": 15,
|
||||
"block": 15
|
||||
}
|
||||
},
|
||||
"tool": {
|
||||
"luminious_learning": "1"
|
||||
},
|
||||
"handheld": {
|
||||
"illager_bane": "1"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "create:refined_radiance",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"translation": "Shadow Steel ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "create:shadow_steel"
|
||||
},
|
||||
"hardness": 8.2,
|
||||
"density": 4.8,
|
||||
"flexibility": 2,
|
||||
"durability": 2700,
|
||||
"enchantability": 14,
|
||||
"toughness": 4,
|
||||
"tier": 6,
|
||||
"mining_speed": 10,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 42,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "605E6B",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0a0716",
|
||||
"68": "140e2a",
|
||||
"107": "1c162c",
|
||||
"150": "38304d",
|
||||
"190": "575366",
|
||||
"216": "605e6b",
|
||||
"255": "665d78"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
},
|
||||
"handheld": {
|
||||
"leeching": "1"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "create:shadow_steel",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"translation": "Zinc ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "create:zinc_ingot"
|
||||
},
|
||||
"hardness": 3.8,
|
||||
"density": 3.0,
|
||||
"flexibility": 1.5,
|
||||
"durability": 180,
|
||||
"enchantability": 15,
|
||||
"toughness": 0,
|
||||
"tier": 2,
|
||||
"mining_speed": 5,
|
||||
"mining_level": "minecraft:incorrect_for_stone_tool",
|
||||
"armor_durability": 10,
|
||||
"color": "B9E9C1",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "111f21",
|
||||
"68": "213b3f",
|
||||
"107": "31544e",
|
||||
"150": "506d63",
|
||||
"190": "a5c0a0",
|
||||
"216": "b9e9c1",
|
||||
"255": "d6ffdc"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic",
|
||||
"bright"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "create:zinc_ingot",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "create:zinc_nugget",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "create:zinc_block",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "Create Materials for Truly Modular",
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"translation": "Dragonbone ",
|
||||
"groups": [
|
||||
"bone"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonbone"
|
||||
},
|
||||
"hardness": 6.2,
|
||||
"density": 4.4,
|
||||
"flexibility": 3,
|
||||
"durability": 700,
|
||||
"enchantability": 12,
|
||||
"toughness": 2,
|
||||
"tier": 4,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 24,
|
||||
"color": "928880",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "140c0c",
|
||||
"68": "271817",
|
||||
"107": "271817",
|
||||
"150": "4f433c",
|
||||
"190": "736f6c",
|
||||
"216": "928880",
|
||||
"255": "b7a899"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"head": {
|
||||
"fracturing": "10"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonbone",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragon_bone_block",
|
||||
"value": 4.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"translation": "Talon ",
|
||||
"groups": [
|
||||
"bone"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:hippogryph_talon"
|
||||
},
|
||||
"hardness": 6.6,
|
||||
"density": 2.4,
|
||||
"flexibility": 2,
|
||||
"durability": 300,
|
||||
"enchantability": 14,
|
||||
"toughness": 0,
|
||||
"tier": 3,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_iron_tool",
|
||||
"armor_durability": 14,
|
||||
"color": "5C5859",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0a080b",
|
||||
"68": "131015",
|
||||
"107": "131015",
|
||||
"150": "312b31",
|
||||
"190": "43373e",
|
||||
"216": "5c5859",
|
||||
"255": "706868"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.08",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:hippogryph_talon",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"translation": "Witherbone ",
|
||||
"groups": [
|
||||
"bone"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:witherbone"
|
||||
},
|
||||
"hardness": 5.8,
|
||||
"density": 4.6,
|
||||
"flexibility": 3,
|
||||
"durability": 520,
|
||||
"enchantability": 10,
|
||||
"toughness": 1,
|
||||
"tier": 3,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_iron_tool",
|
||||
"armor_durability": 20,
|
||||
"color": "715671",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "161b22",
|
||||
"68": "2a3341",
|
||||
"107": "2a3341",
|
||||
"150": "55465f",
|
||||
"190": "715671",
|
||||
"216": "715671",
|
||||
"255": "897d95"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"head": {
|
||||
"fracturing": "15"
|
||||
},
|
||||
"handheld": {
|
||||
"leeching": "0.5"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:witherbone",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:wither_shard",
|
||||
"value": 0.25
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"key": "miapi:crystal/amethyst",
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:amethyst_gem",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"translation": "Dread ",
|
||||
"groups": [
|
||||
"crystal",
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dread_shard"
|
||||
},
|
||||
"hardness": 6.4,
|
||||
"density": 3.0,
|
||||
"flexibility": 2,
|
||||
"durability": 1100,
|
||||
"enchantability": 16,
|
||||
"toughness": 2,
|
||||
"tier": 5,
|
||||
"mining_speed": 8,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 28,
|
||||
"color": "C5E4D8",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0c0e44",
|
||||
"68": "181b82",
|
||||
"107": "2b3b53",
|
||||
"150": "4c6c77",
|
||||
"190": "86b1b0",
|
||||
"216": "c5e4d8",
|
||||
"255": "fffee6"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"crystal",
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"leeching": "1"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dread_shard",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"translation": "Pixie Dust ",
|
||||
"groups": [
|
||||
"crystal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:pixie_dust"
|
||||
},
|
||||
"hardness": 4.0,
|
||||
"density": 0.5,
|
||||
"flexibility": 6,
|
||||
"durability": 220,
|
||||
"enchantability": 34,
|
||||
"toughness": 0,
|
||||
"tier": 3,
|
||||
"mining_speed": 9,
|
||||
"mining_level": "minecraft:incorrect_for_iron_tool",
|
||||
"armor_durability": 10,
|
||||
"color": "F197E1",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "290d36",
|
||||
"68": "4f1968",
|
||||
"107": "4f1968",
|
||||
"150": "4c3da8",
|
||||
"190": "ae5fbe",
|
||||
"216": "f197e1",
|
||||
"255": "ffd9e0"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"crystal"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 7,
|
||||
"block": 7
|
||||
}
|
||||
},
|
||||
"tool": {
|
||||
"luminious_learning": "1"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:pixie_dust",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"translation": "Sapphire ",
|
||||
"groups": [
|
||||
"crystal",
|
||||
"gem"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:sapphire_gem"
|
||||
},
|
||||
"hardness": 6.2,
|
||||
"density": 2.2,
|
||||
"flexibility": 0,
|
||||
"durability": 1200,
|
||||
"enchantability": 14,
|
||||
"toughness": 2,
|
||||
"tier": 4,
|
||||
"mining_speed": 8,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 30,
|
||||
"color": "69FED7",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0c0e44",
|
||||
"68": "181b82",
|
||||
"107": "3a279a",
|
||||
"150": "5d33b2",
|
||||
"190": "4d8fd1",
|
||||
"216": "69fed7",
|
||||
"255": "fffee6"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"crystal",
|
||||
"bright"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:sapphire_gem",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:sapphire_block",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"translation": "Forest Troll Leather ",
|
||||
"groups": [
|
||||
"fabric",
|
||||
"leather"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:troll_leather_forest"
|
||||
},
|
||||
"hardness": 3.6,
|
||||
"density": 1.8,
|
||||
"flexibility": 5,
|
||||
"durability": 400,
|
||||
"enchantability": 12,
|
||||
"toughness": 2,
|
||||
"tier": 3,
|
||||
"mining_speed": 0,
|
||||
"mining_level": "minecraft:incorrect_for_wooden_tool",
|
||||
"armor_durability": 22,
|
||||
"color": "597A56",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0c0e11",
|
||||
"68": "181a21",
|
||||
"107": "181a21",
|
||||
"150": "343a3c",
|
||||
"190": "475b54",
|
||||
"216": "597a56",
|
||||
"255": "597a56"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"fabric"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:projectile_protection": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:troll_leather_forest",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"translation": "Frost Troll Leather ",
|
||||
"groups": [
|
||||
"fabric",
|
||||
"leather"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:troll_leather_frost"
|
||||
},
|
||||
"hardness": 3.6,
|
||||
"density": 1.8,
|
||||
"flexibility": 5,
|
||||
"durability": 400,
|
||||
"enchantability": 12,
|
||||
"toughness": 2,
|
||||
"tier": 3,
|
||||
"mining_speed": 0,
|
||||
"mining_level": "minecraft:incorrect_for_wooden_tool",
|
||||
"armor_durability": 22,
|
||||
"color": "5B797E",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0a0b12",
|
||||
"68": "141523",
|
||||
"107": "141523",
|
||||
"150": "2f3342",
|
||||
"190": "3b4d5e",
|
||||
"216": "5b797e",
|
||||
"255": "5b797e"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"fabric"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:projectile_protection": 2
|
||||
},
|
||||
"fake_item_tag": [
|
||||
"minecraft:freeze_immune_wearables"
|
||||
]
|
||||
},
|
||||
"boot": {
|
||||
"can_walk_on_snow": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:troll_leather_frost",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"translation": "Mountain Troll Leather ",
|
||||
"groups": [
|
||||
"fabric",
|
||||
"leather"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:troll_leather_mountain"
|
||||
},
|
||||
"hardness": 3.6,
|
||||
"density": 1.8,
|
||||
"flexibility": 5,
|
||||
"durability": 400,
|
||||
"enchantability": 12,
|
||||
"toughness": 2,
|
||||
"tier": 3,
|
||||
"mining_speed": 0,
|
||||
"mining_level": "minecraft:incorrect_for_wooden_tool",
|
||||
"armor_durability": 22,
|
||||
"color": "9C90B0",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0a0a0f",
|
||||
"68": "14141d",
|
||||
"107": "36343f",
|
||||
"150": "656468",
|
||||
"190": "807f8c",
|
||||
"216": "9c90b0",
|
||||
"255": "9c90b0"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"fabric"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:projectile_protection": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:troll_leather_mountain",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"translation": "Amphithere ",
|
||||
"groups": [
|
||||
"fletching",
|
||||
"feather"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:amphithere_feather"
|
||||
},
|
||||
"hardness": 2.6,
|
||||
"density": 0.3,
|
||||
"flexibility": 7,
|
||||
"durability": 120,
|
||||
"enchantability": 18,
|
||||
"toughness": 0,
|
||||
"tier": 3,
|
||||
"mining_speed": 0,
|
||||
"mining_level": "minecraft:incorrect_for_wooden_tool",
|
||||
"armor_durability": 8,
|
||||
"color": "219DB8",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "2c0606",
|
||||
"68": "550b0b",
|
||||
"107": "592912",
|
||||
"150": "881d46",
|
||||
"190": "794d20",
|
||||
"216": "219db8",
|
||||
"255": "52ed77"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"feather"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:amphithere_feather",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"translation": "Stymphalian ",
|
||||
"groups": [
|
||||
"fletching",
|
||||
"feather"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:stymphalian_bird_feather"
|
||||
},
|
||||
"hardness": 3.4,
|
||||
"density": 0.4,
|
||||
"flexibility": 6,
|
||||
"durability": 140,
|
||||
"enchantability": 15,
|
||||
"toughness": 0,
|
||||
"tier": 3,
|
||||
"mining_speed": 0,
|
||||
"mining_level": "minecraft:incorrect_for_wooden_tool",
|
||||
"armor_durability": 8,
|
||||
"color": "795C48",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "16100b",
|
||||
"68": "2b2016",
|
||||
"107": "32241a",
|
||||
"150": "4c3728",
|
||||
"190": "6e5039",
|
||||
"216": "795c48",
|
||||
"255": "967e70"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"feather"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:stymphalian_bird_feather",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:stymphalian_feather_bundle",
|
||||
"value": 4.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Fire Dragonsteel ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonsteel_fire_ingot"
|
||||
},
|
||||
"hardness": 9.0,
|
||||
"density": 4.0,
|
||||
"flexibility": 3,
|
||||
"durability": 3600,
|
||||
"enchantability": 18,
|
||||
"toughness": 5,
|
||||
"tier": 7,
|
||||
"mining_speed": 13,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 50,
|
||||
"armor_toughness": 5.0,
|
||||
"color": "FFDB8E",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "160e16",
|
||||
"68": "2b1a2b",
|
||||
"107": "553f4b",
|
||||
"150": "e04029",
|
||||
"190": "fc9f4e",
|
||||
"216": "ffdb8e",
|
||||
"255": "fffed8"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true,
|
||||
"emissive": {
|
||||
"sky": 6,
|
||||
"block": 6
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"immolate": "3"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonsteel_fire_ingot",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonsteel_fire_block",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "Ice Dragonsteel ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonsteel_ice_ingot"
|
||||
},
|
||||
"hardness": 8.8,
|
||||
"density": 4.2,
|
||||
"flexibility": 3,
|
||||
"durability": 3600,
|
||||
"enchantability": 18,
|
||||
"toughness": 5,
|
||||
"tier": 7,
|
||||
"mining_speed": 13,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 50,
|
||||
"armor_toughness": 5.0,
|
||||
"color": "C6DAED",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "08071b",
|
||||
"68": "100d34",
|
||||
"107": "2b3564",
|
||||
"150": "345572",
|
||||
"190": "9a9ca8",
|
||||
"216": "c6daed",
|
||||
"255": "fffded"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic",
|
||||
"bright"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_item_tag": [
|
||||
"minecraft:freeze_immune_wearables"
|
||||
]
|
||||
},
|
||||
"boot": {
|
||||
"can_walk_on_snow": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonsteel_ice_ingot",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonsteel_ice_block",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"translation": "Lightning Dragonsteel ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonsteel_lightning_ingot"
|
||||
},
|
||||
"hardness": 8.8,
|
||||
"density": 3.4,
|
||||
"flexibility": 4,
|
||||
"durability": 3600,
|
||||
"enchantability": 20,
|
||||
"toughness": 5,
|
||||
"tier": 7,
|
||||
"mining_speed": 14,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 50,
|
||||
"armor_toughness": 5.0,
|
||||
"color": "EBB9DB",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "08071b",
|
||||
"68": "100d34",
|
||||
"107": "423846",
|
||||
"150": "797479",
|
||||
"190": "ebb9db",
|
||||
"216": "ebb9db",
|
||||
"255": "ffffff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 8,
|
||||
"block": 8
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.15",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonsteel_lightning_ingot",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonsteel_lightning_block",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"translation": "Phantasmal ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:ghost_ingot"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 0.6,
|
||||
"flexibility": 5,
|
||||
"durability": 1300,
|
||||
"enchantability": 26,
|
||||
"toughness": 2,
|
||||
"tier": 5,
|
||||
"mining_speed": 10,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 28,
|
||||
"color": "A2EABD",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "060c1f",
|
||||
"68": "0c173c",
|
||||
"107": "28546e",
|
||||
"150": "3e9084",
|
||||
"190": "67c7ad",
|
||||
"216": "a2eabd",
|
||||
"255": "f2fff4"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 6,
|
||||
"block": 6
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.12",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:ghost_ingot",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "Silver ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:silver_ingot"
|
||||
},
|
||||
"hardness": 4.6,
|
||||
"density": 3.4,
|
||||
"flexibility": 2,
|
||||
"durability": 220,
|
||||
"enchantability": 20,
|
||||
"toughness": 0,
|
||||
"tier": 3,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_iron_tool",
|
||||
"armor_durability": 13,
|
||||
"color": "D2CBC5",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0b090e",
|
||||
"68": "16121b",
|
||||
"107": "3f303f",
|
||||
"150": "725e6c",
|
||||
"190": "a19090",
|
||||
"216": "d2cbc5",
|
||||
"255": "ffffff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic",
|
||||
"bright"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"fake_enchants": {
|
||||
"minecraft:smite": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:silver_ingot",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:silver_nugget",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:silver_block",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"translation": "Red Chitin ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:deathworm_chitin_red"
|
||||
},
|
||||
"hardness": 5.6,
|
||||
"density": 2.2,
|
||||
"flexibility": 4,
|
||||
"durability": 880,
|
||||
"enchantability": 13,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 30,
|
||||
"armor_toughness": 2.0,
|
||||
"color": "C48080",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "15080f",
|
||||
"68": "290f1c",
|
||||
"107": "290f1c",
|
||||
"150": "58232f",
|
||||
"190": "854747",
|
||||
"216": "c48080",
|
||||
"255": "c48080"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:deathworm_chitin_red",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"translation": "White Chitin ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:deathworm_chitin_white"
|
||||
},
|
||||
"hardness": 5.6,
|
||||
"density": 2.2,
|
||||
"flexibility": 4,
|
||||
"durability": 880,
|
||||
"enchantability": 13,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 30,
|
||||
"armor_toughness": 2.0,
|
||||
"color": "DADAD4",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0d1510",
|
||||
"68": "19291e",
|
||||
"107": "5a624a",
|
||||
"150": "908f78",
|
||||
"190": "b7aea2",
|
||||
"216": "dadad4",
|
||||
"255": "dadad4"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:deathworm_chitin_white",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"translation": "Tan Chitin ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:deathworm_chitin_yellow"
|
||||
},
|
||||
"hardness": 5.6,
|
||||
"density": 2.2,
|
||||
"flexibility": 4,
|
||||
"durability": 880,
|
||||
"enchantability": 13,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 30,
|
||||
"armor_toughness": 2.0,
|
||||
"color": "C5A981",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "24100c",
|
||||
"68": "451f17",
|
||||
"107": "451f17",
|
||||
"150": "6d432e",
|
||||
"190": "9b7753",
|
||||
"216": "c5a981",
|
||||
"255": "c5a981"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:deathworm_chitin_yellow",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"translation": "Amethyst Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_amethyst"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "FAB7C2",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "1f1030",
|
||||
"68": "3c1f5c",
|
||||
"107": "7e3a8b",
|
||||
"150": "99469c",
|
||||
"190": "e68cb6",
|
||||
"216": "fab7c2",
|
||||
"255": "ffe9e9"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 5,
|
||||
"block": 5
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.08",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_amethyst",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_amethyst",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"translation": "Black Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_black"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "6C696B",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "110f15",
|
||||
"68": "211c28",
|
||||
"107": "28212c",
|
||||
"150": "2e2631",
|
||||
"190": "494149",
|
||||
"216": "6c696b",
|
||||
"255": "969495"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 5,
|
||||
"block": 5
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.08",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_black",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_black",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "Blue Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_blue"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "DBE4E3",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "110c23",
|
||||
"68": "211743",
|
||||
"107": "211743",
|
||||
"150": "485d89",
|
||||
"190": "80b0c1",
|
||||
"216": "dbe4e3",
|
||||
"255": "dbe4e3"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_item_tag": [
|
||||
"minecraft:freeze_immune_wearables"
|
||||
]
|
||||
},
|
||||
"boot": {
|
||||
"can_walk_on_snow": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_blue",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_blue",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "Bronze Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_bronze"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "CC9670",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "200411",
|
||||
"68": "3e0720",
|
||||
"107": "521826",
|
||||
"150": "77372c",
|
||||
"190": "9b6846",
|
||||
"216": "cc9670",
|
||||
"255": "ffedbd"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
},
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:fire_protection": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_bronze",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_bronze",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"translation": "Copper Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_copper"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "CD8E51",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "22040a",
|
||||
"68": "420713",
|
||||
"107": "590e0e",
|
||||
"150": "902e24",
|
||||
"190": "a1422e",
|
||||
"216": "cd8e51",
|
||||
"255": "f0ce82"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 5,
|
||||
"block": 5
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.08",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_copper",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_copper",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"translation": "Electric Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_electric"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "795EBA",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "111111",
|
||||
"68": "212121",
|
||||
"107": "212121",
|
||||
"150": "2b5471",
|
||||
"190": "494c99",
|
||||
"216": "795eba",
|
||||
"255": "795eba"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 5,
|
||||
"block": 5
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.08",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_electric",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_electric",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "Gray Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_gray"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "654575",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "050b12",
|
||||
"68": "0a1622",
|
||||
"107": "1e2230",
|
||||
"150": "1b233f",
|
||||
"190": "392d55",
|
||||
"216": "654575",
|
||||
"255": "826084"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
},
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:fire_protection": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_gray",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_gray",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "Green Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_green"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "3C5084",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "210820",
|
||||
"68": "40103e",
|
||||
"107": "40103e",
|
||||
"150": "461d5a",
|
||||
"190": "3c5084",
|
||||
"216": "3c5084",
|
||||
"255": "41836b"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
},
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:fire_protection": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_green",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_green",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "Red Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_red"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "C92626",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "220118",
|
||||
"68": "41022f",
|
||||
"107": "41022f",
|
||||
"150": "660628",
|
||||
"190": "941119",
|
||||
"216": "c92626",
|
||||
"255": "e9604d"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
},
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:fire_protection": 2
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_red",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_red",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "Sapphire Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_sapphire"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "94CEDE",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "070720",
|
||||
"68": "0e0e3d",
|
||||
"107": "211743",
|
||||
"150": "353b7c",
|
||||
"190": "6487b2",
|
||||
"216": "94cede",
|
||||
"255": "99fff5"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_item_tag": [
|
||||
"minecraft:freeze_immune_wearables"
|
||||
]
|
||||
},
|
||||
"boot": {
|
||||
"can_walk_on_snow": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_sapphire",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_sapphire",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "Silver Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_silver"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "CEE8EE",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "1d1a2e",
|
||||
"68": "383258",
|
||||
"107": "4a4d78",
|
||||
"150": "7483a1",
|
||||
"190": "a2b4ca",
|
||||
"216": "cee8ee",
|
||||
"255": "f8fdff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_item_tag": [
|
||||
"minecraft:freeze_immune_wearables"
|
||||
]
|
||||
},
|
||||
"boot": {
|
||||
"can_walk_on_snow": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_silver",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_silver",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
"translation": "White Dragonscale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:dragonscales_white"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 2.6,
|
||||
"flexibility": 4,
|
||||
"durability": 1500,
|
||||
"enchantability": 15,
|
||||
"toughness": 4,
|
||||
"tier": 5,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "E2F0F3",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "2a2c37",
|
||||
"68": "51556a",
|
||||
"107": "72748a",
|
||||
"150": "72748a",
|
||||
"190": "cad3d9",
|
||||
"216": "e2f0f3",
|
||||
"255": "f8fdff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_item_tag": [
|
||||
"minecraft:freeze_immune_wearables"
|
||||
]
|
||||
},
|
||||
"boot": {
|
||||
"can_walk_on_snow": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:dragonscales_white",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:dragonscale_white",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Blue Serpent Scale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:sea_serpent_scales_blue"
|
||||
},
|
||||
"hardness": 5.4,
|
||||
"density": 2.4,
|
||||
"flexibility": 5,
|
||||
"durability": 950,
|
||||
"enchantability": 16,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 32,
|
||||
"armor_toughness": 2.5,
|
||||
"color": "53719C",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0e081c",
|
||||
"68": "1b1035",
|
||||
"107": "272a57",
|
||||
"150": "272a57",
|
||||
"190": "4c6288",
|
||||
"216": "53719c",
|
||||
"255": "569dc3"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:respiration": 1
|
||||
}
|
||||
},
|
||||
"boot": {
|
||||
"fake_enchants": {
|
||||
"minecraft:depth_strider": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scales_blue",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scale_block_blue",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Bronze Serpent Scale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:sea_serpent_scales_bronze"
|
||||
},
|
||||
"hardness": 5.4,
|
||||
"density": 2.4,
|
||||
"flexibility": 5,
|
||||
"durability": 950,
|
||||
"enchantability": 16,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 32,
|
||||
"armor_toughness": 2.5,
|
||||
"color": "CC9670",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "2b0c14",
|
||||
"68": "521826",
|
||||
"107": "77372c",
|
||||
"150": "77372c",
|
||||
"190": "cc9670",
|
||||
"216": "cc9670",
|
||||
"255": "f1dead"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:respiration": 1
|
||||
}
|
||||
},
|
||||
"boot": {
|
||||
"fake_enchants": {
|
||||
"minecraft:depth_strider": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scales_bronze",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scale_block_bronze",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Deep Blue Serpent Scale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:sea_serpent_scales_deepblue"
|
||||
},
|
||||
"hardness": 5.4,
|
||||
"density": 2.4,
|
||||
"flexibility": 5,
|
||||
"durability": 950,
|
||||
"enchantability": 16,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 32,
|
||||
"armor_toughness": 2.5,
|
||||
"color": "384291",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "18121f",
|
||||
"68": "2e233b",
|
||||
"107": "2e233b",
|
||||
"150": "363168",
|
||||
"190": "384291",
|
||||
"216": "384291",
|
||||
"255": "6381bb"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:respiration": 1
|
||||
}
|
||||
},
|
||||
"boot": {
|
||||
"fake_enchants": {
|
||||
"minecraft:depth_strider": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scales_deepblue",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scale_block_deepblue",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Green Serpent Scale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:sea_serpent_scales_green"
|
||||
},
|
||||
"hardness": 5.4,
|
||||
"density": 2.4,
|
||||
"flexibility": 5,
|
||||
"durability": 950,
|
||||
"enchantability": 16,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 32,
|
||||
"armor_toughness": 2.5,
|
||||
"color": "67CEAF",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0a1c16",
|
||||
"68": "13362b",
|
||||
"107": "2e5f2d",
|
||||
"150": "2e5f2d",
|
||||
"190": "67ceaf",
|
||||
"216": "67ceaf",
|
||||
"255": "9ef7b6"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:respiration": 1
|
||||
}
|
||||
},
|
||||
"boot": {
|
||||
"fake_enchants": {
|
||||
"minecraft:depth_strider": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scales_green",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scale_block_green",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Purple Serpent Scale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:sea_serpent_scales_purple"
|
||||
},
|
||||
"hardness": 5.4,
|
||||
"density": 2.4,
|
||||
"flexibility": 5,
|
||||
"durability": 950,
|
||||
"enchantability": 16,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 32,
|
||||
"armor_toughness": 2.5,
|
||||
"color": "7D6988",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "060910",
|
||||
"68": "0b121f",
|
||||
"107": "2d2a49",
|
||||
"150": "585262",
|
||||
"190": "7d6988",
|
||||
"216": "7d6988",
|
||||
"255": "b470b6"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:respiration": 1
|
||||
}
|
||||
},
|
||||
"boot": {
|
||||
"fake_enchants": {
|
||||
"minecraft:depth_strider": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scales_purple",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scale_block_purple",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Red Serpent Scale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:sea_serpent_scales_red"
|
||||
},
|
||||
"hardness": 5.4,
|
||||
"density": 2.4,
|
||||
"flexibility": 5,
|
||||
"durability": 950,
|
||||
"enchantability": 16,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 32,
|
||||
"armor_toughness": 2.5,
|
||||
"color": "B55177",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "1d0412",
|
||||
"68": "380823",
|
||||
"107": "442238",
|
||||
"150": "442238",
|
||||
"190": "b55177",
|
||||
"216": "b55177",
|
||||
"255": "d17c88"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:respiration": 1
|
||||
}
|
||||
},
|
||||
"boot": {
|
||||
"fake_enchants": {
|
||||
"minecraft:depth_strider": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scales_red",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scale_block_red",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
{
|
||||
"translation": "Teal Serpent Scale ",
|
||||
"groups": [
|
||||
"scute"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "iceandfire:sea_serpent_scales_teal"
|
||||
},
|
||||
"hardness": 5.4,
|
||||
"density": 2.4,
|
||||
"flexibility": 5,
|
||||
"durability": 950,
|
||||
"enchantability": 16,
|
||||
"toughness": 3,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 32,
|
||||
"armor_toughness": 2.5,
|
||||
"color": "336F95",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "1a1821",
|
||||
"68": "322e40",
|
||||
"107": "322e40",
|
||||
"150": "41476d",
|
||||
"190": "336f95",
|
||||
"216": "336f95",
|
||||
"255": "52adb9"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough",
|
||||
"shiny"
|
||||
],
|
||||
"properties": {
|
||||
"armor": {
|
||||
"fake_enchants": {
|
||||
"minecraft:respiration": 1
|
||||
}
|
||||
},
|
||||
"boot": {
|
||||
"fake_enchants": {
|
||||
"minecraft:depth_strider": 1
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scales_teal",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "iceandfire:sea_serpent_scale_block_teal",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "Ice and Fire Materials for Truly Modular",
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
{
|
||||
"translation": "Silicon Carbide ",
|
||||
"groups": [
|
||||
"crystal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "vsie:silicon_carbide"
|
||||
},
|
||||
"hardness": 7.6,
|
||||
"density": 2.4,
|
||||
"flexibility": 0,
|
||||
"durability": 1300,
|
||||
"enchantability": 12,
|
||||
"toughness": 3,
|
||||
"tier": 5,
|
||||
"mining_speed": 13,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 34,
|
||||
"armor_toughness": 3.0,
|
||||
"color": "919191",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "303030",
|
||||
"68": "5c5c5c",
|
||||
"107": "6b6b6b",
|
||||
"150": "7f7f7f",
|
||||
"190": "8a8a8a",
|
||||
"216": "919191",
|
||||
"255": "00ccff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"crystal",
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "vsie:silicon_carbide",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"translation": "Computronic ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "vsie:computronic_substrate"
|
||||
},
|
||||
"hardness": 4.6,
|
||||
"density": 1.8,
|
||||
"flexibility": 3,
|
||||
"durability": 1100,
|
||||
"enchantability": 28,
|
||||
"toughness": 2,
|
||||
"tier": 5,
|
||||
"mining_speed": 9,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 28,
|
||||
"color": "FFFFFF",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "282828",
|
||||
"68": "4c4c4c",
|
||||
"107": "7f7f7f",
|
||||
"150": "cccccc",
|
||||
"190": "e2e2e2",
|
||||
"216": "ffffff",
|
||||
"255": "ffffff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 4,
|
||||
"block": 4
|
||||
}
|
||||
},
|
||||
"tool": {
|
||||
"luminious_learning": "1"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "vsie:computronic_substrate",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"translation": "Microlattice ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "vsie:metalic_microlattice"
|
||||
},
|
||||
"hardness": 5.2,
|
||||
"density": 0.3,
|
||||
"flexibility": 7,
|
||||
"durability": 1400,
|
||||
"enchantability": 20,
|
||||
"toughness": 2,
|
||||
"tier": 5,
|
||||
"mining_speed": 9,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 34,
|
||||
"armor_toughness": 1.5,
|
||||
"color": "67B6F9",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "1a476b",
|
||||
"68": "3289ce",
|
||||
"107": "388ed4",
|
||||
"150": "3d93da",
|
||||
"190": "59adf9",
|
||||
"216": "67b6f9",
|
||||
"255": "7fcbf2"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic",
|
||||
"bright"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.18",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "vsie:metalic_microlattice",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "Interstellar Expansion Materials for Truly Modular",
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
{
|
||||
"translation": "Arcane ",
|
||||
"groups": [
|
||||
"crystal",
|
||||
"gem"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "irons_spellbooks:arcane_essence"
|
||||
},
|
||||
"hardness": 6.8,
|
||||
"density": 1.4,
|
||||
"flexibility": 5,
|
||||
"durability": 2400,
|
||||
"enchantability": 32,
|
||||
"toughness": 3,
|
||||
"tier": 6,
|
||||
"mining_speed": 11,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 38,
|
||||
"armor_toughness": 2.5,
|
||||
"color": "89A5E2",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "230433",
|
||||
"68": "440863",
|
||||
"107": "440863",
|
||||
"150": "64189a",
|
||||
"190": "227c8f",
|
||||
"216": "89a5e2",
|
||||
"255": "7cd4ea"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"crystal",
|
||||
"bright"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 6,
|
||||
"block": 6
|
||||
}
|
||||
},
|
||||
"armor": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "irons_spellbooks:max_mana",
|
||||
"value": "100",
|
||||
"operation": "+",
|
||||
"slot": "armor"
|
||||
},
|
||||
{
|
||||
"attribute": "irons_spellbooks:mana_regen",
|
||||
"value": "0.15",
|
||||
"operation": "*",
|
||||
"slot": "armor"
|
||||
}
|
||||
]
|
||||
},
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "irons_spellbooks:spell_power",
|
||||
"value": "0.1",
|
||||
"operation": "*",
|
||||
"slot": "mainhand"
|
||||
},
|
||||
{
|
||||
"attribute": "irons_spellbooks:cooldown_reduction",
|
||||
"value": "0.05",
|
||||
"operation": "*",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "irons_spellbooks:arcane_essence",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,82 @@
|
|||
{
|
||||
"translation": "Cinder ",
|
||||
"groups": [
|
||||
"crystal",
|
||||
"gem"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "irons_spellbooks:cinder_essence"
|
||||
},
|
||||
"hardness": 7.4,
|
||||
"density": 2.6,
|
||||
"flexibility": 3,
|
||||
"durability": 2400,
|
||||
"enchantability": 20,
|
||||
"toughness": 4,
|
||||
"tier": 6,
|
||||
"mining_speed": 11,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 40,
|
||||
"armor_toughness": 3.0,
|
||||
"color": "423B3B",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "0b0808",
|
||||
"68": "161010",
|
||||
"107": "1f1212",
|
||||
"150": "281f1f",
|
||||
"190": "403131",
|
||||
"216": "423b3b",
|
||||
"255": "5c3f3f"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"crystal"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true,
|
||||
"emissive": {
|
||||
"sky": 8,
|
||||
"block": 8
|
||||
}
|
||||
},
|
||||
"armor": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "cmmodular:fire_immunity",
|
||||
"value": "1",
|
||||
"operation": "+",
|
||||
"slot": "armor"
|
||||
},
|
||||
{
|
||||
"attribute": "irons_spellbooks:fire_magic_resist",
|
||||
"value": "0.2",
|
||||
"operation": "*",
|
||||
"slot": "armor"
|
||||
}
|
||||
]
|
||||
},
|
||||
"handheld": {
|
||||
"immolate": "3",
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "irons_spellbooks:fire_spell_power",
|
||||
"value": "0.2",
|
||||
"operation": "*",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "irons_spellbooks:cinder_essence",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"translation": "Arcane Steel ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "irons_spellbooks:arcane_ingot"
|
||||
},
|
||||
"hardness": 6.2,
|
||||
"density": 2.8,
|
||||
"flexibility": 3,
|
||||
"durability": 1700,
|
||||
"enchantability": 26,
|
||||
"toughness": 3,
|
||||
"tier": 5,
|
||||
"mining_speed": 9,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 34,
|
||||
"armor_toughness": 2.0,
|
||||
"color": "EACAFD",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "101724",
|
||||
"68": "1e2c46",
|
||||
"107": "3c589c",
|
||||
"150": "496fc2",
|
||||
"190": "e7a7fe",
|
||||
"216": "eacafd",
|
||||
"255": "f9e5fd"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "irons_spellbooks:spell_power",
|
||||
"value": "0.05",
|
||||
"operation": "*",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "irons_spellbooks:arcane_ingot",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"translation": "Mithril ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "irons_spellbooks:mithril_ingot"
|
||||
},
|
||||
"hardness": 6.4,
|
||||
"density": 1.2,
|
||||
"flexibility": 4,
|
||||
"durability": 1800,
|
||||
"enchantability": 24,
|
||||
"toughness": 3,
|
||||
"tier": 5,
|
||||
"mining_speed": 11,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 36,
|
||||
"armor_toughness": 2.0,
|
||||
"color": "BDF3F3",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "1b2a32",
|
||||
"68": "335160",
|
||||
"107": "496c84",
|
||||
"150": "7dacaf",
|
||||
"190": "99cdd9",
|
||||
"216": "bdf3f3",
|
||||
"255": "ffffff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic",
|
||||
"bright"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.12",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "irons_spellbooks:mithril_ingot",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"translation": "Pyrium ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "irons_spellbooks:pyrium_ingot"
|
||||
},
|
||||
"hardness": 6.8,
|
||||
"density": 3.4,
|
||||
"flexibility": 2,
|
||||
"durability": 1750,
|
||||
"enchantability": 18,
|
||||
"toughness": 3,
|
||||
"tier": 5,
|
||||
"mining_speed": 9,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 36,
|
||||
"armor_toughness": 2.0,
|
||||
"color": "D6AF39",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "160909",
|
||||
"68": "2b1111",
|
||||
"107": "491b10",
|
||||
"150": "9c5e2c",
|
||||
"190": "b9892e",
|
||||
"216": "d6af39",
|
||||
"255": "ffffff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true,
|
||||
"emissive": {
|
||||
"sky": 5,
|
||||
"block": 5
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"immolate": "2"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "irons_spellbooks:pyrium_ingot",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "Iron's Spells Materials for Truly Modular",
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"translation": "Fluorite ",
|
||||
"groups": [
|
||||
"crystal",
|
||||
"gem"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:fluorite_gem"
|
||||
},
|
||||
"hardness": 5.6,
|
||||
"density": 2.2,
|
||||
"flexibility": 0,
|
||||
"durability": 600,
|
||||
"enchantability": 18,
|
||||
"toughness": 1,
|
||||
"tier": 4,
|
||||
"mining_speed": 8,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 20,
|
||||
"color": "EEFDF6",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "50555d",
|
||||
"68": "9aa4b2",
|
||||
"107": "9aa4b2",
|
||||
"150": "c1d5de",
|
||||
"190": "d7ecec",
|
||||
"216": "eefdf6",
|
||||
"255": "ffffff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"crystal",
|
||||
"bright"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 4,
|
||||
"block": 4
|
||||
}
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:fluorite_gem",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:block_fluorite",
|
||||
"value": 4.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"translation": "Antimatter ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:pellet_antimatter"
|
||||
},
|
||||
"hardness": 9.5,
|
||||
"density": 2.0,
|
||||
"flexibility": 3,
|
||||
"durability": 4000,
|
||||
"enchantability": 22,
|
||||
"toughness": 5,
|
||||
"tier": 7,
|
||||
"mining_speed": 15,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 52,
|
||||
"armor_toughness": 5.0,
|
||||
"color": "FFADDE",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "291236",
|
||||
"68": "4f2367",
|
||||
"107": "6b367c",
|
||||
"150": "904daa",
|
||||
"190": "ff96e6",
|
||||
"216": "ffadde",
|
||||
"255": "ffadde"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true,
|
||||
"emissive": {
|
||||
"sky": 12,
|
||||
"block": 12
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"immolate": "5"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:pellet_antimatter",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
"translation": "Atomic Alloy ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:alloy_atomic"
|
||||
},
|
||||
"hardness": 7.8,
|
||||
"density": 3.8,
|
||||
"flexibility": 3,
|
||||
"durability": 2800,
|
||||
"enchantability": 18,
|
||||
"toughness": 4,
|
||||
"tier": 6,
|
||||
"mining_speed": 11,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 44,
|
||||
"armor_toughness": 3.5,
|
||||
"color": "BF85E2",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "201920",
|
||||
"68": "3e313d",
|
||||
"107": "693d6b",
|
||||
"150": "863f90",
|
||||
"190": "b273e0",
|
||||
"216": "bf85e2",
|
||||
"255": "eda5e2"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:alloy_atomic",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
{
|
||||
"translation": "Bronze ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:ingot_bronze"
|
||||
},
|
||||
"hardness": 4.9,
|
||||
"density": 4.0,
|
||||
"flexibility": 1,
|
||||
"durability": 420,
|
||||
"enchantability": 12,
|
||||
"toughness": 1,
|
||||
"tier": 3,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_iron_tool",
|
||||
"armor_durability": 19,
|
||||
"color": "FFE1A3",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "31231c",
|
||||
"68": "5e4336",
|
||||
"107": "8b553d",
|
||||
"150": "c67e5a",
|
||||
"190": "ffc675",
|
||||
"216": "ffe1a3",
|
||||
"255": "ffedc1"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:ingot_bronze",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:nugget_bronze",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "mekanism:block_bronze",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
"translation": "HDPE ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:hdpe_sheet"
|
||||
},
|
||||
"hardness": 3.2,
|
||||
"density": 0.9,
|
||||
"flexibility": 6,
|
||||
"durability": 450,
|
||||
"enchantability": 20,
|
||||
"toughness": 1,
|
||||
"tier": 3,
|
||||
"mining_speed": 3,
|
||||
"mining_level": "minecraft:incorrect_for_iron_tool",
|
||||
"armor_durability": 18,
|
||||
"color": "FCFCF8",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "585751",
|
||||
"68": "a9a79c",
|
||||
"107": "cdccc2",
|
||||
"150": "dbdbcf",
|
||||
"190": "f5f7eb",
|
||||
"216": "fcfcf8",
|
||||
"255": "ffffff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"rough"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "0.1",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:hdpe_sheet",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:hdpe_pellet",
|
||||
"value": 0.25
|
||||
},
|
||||
{
|
||||
"item": "mekanism:hdpe_rod",
|
||||
"value": 0.5
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"translation": "Infused Alloy ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:alloy_infused"
|
||||
},
|
||||
"hardness": 5.8,
|
||||
"density": 3.6,
|
||||
"flexibility": 2,
|
||||
"durability": 800,
|
||||
"enchantability": 16,
|
||||
"toughness": 2,
|
||||
"tier": 4,
|
||||
"mining_speed": 8,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 26,
|
||||
"color": "FFAE7E",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "321514",
|
||||
"68": "602827",
|
||||
"107": "a11e21",
|
||||
"150": "c73833",
|
||||
"190": "f7614c",
|
||||
"216": "ffae7e",
|
||||
"255": "ffd2b3"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:alloy_infused",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"translation": "Lead ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:ingot_lead"
|
||||
},
|
||||
"hardness": 4.2,
|
||||
"density": 6.0,
|
||||
"flexibility": 0.5,
|
||||
"durability": 300,
|
||||
"enchantability": 8,
|
||||
"toughness": 1,
|
||||
"tier": 3,
|
||||
"mining_speed": 4,
|
||||
"mining_level": "minecraft:incorrect_for_iron_tool",
|
||||
"armor_durability": 16,
|
||||
"knockback_resistance": 0.05,
|
||||
"color": "A2B6B4",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "242526",
|
||||
"68": "454749",
|
||||
"107": "5c6469",
|
||||
"150": "687a76",
|
||||
"190": "8aa5a1",
|
||||
"216": "a2b6b4",
|
||||
"255": "bbc8c5"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "-0.12",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:ingot_lead",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:nugget_lead",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "mekanism:block_lead",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
{
|
||||
"translation": "Osmium ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:ingot_osmium"
|
||||
},
|
||||
"hardness": 5.6,
|
||||
"density": 5.6,
|
||||
"flexibility": 0.5,
|
||||
"durability": 620,
|
||||
"enchantability": 10,
|
||||
"toughness": 2,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 22,
|
||||
"armor_toughness": 1.0,
|
||||
"color": "CEE2EE",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "2b2e38",
|
||||
"68": "52586c",
|
||||
"107": "637278",
|
||||
"150": "939caf",
|
||||
"190": "b3c3ca",
|
||||
"216": "cee2ee",
|
||||
"255": "f9fcff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "-0.08",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:ingot_osmium",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:nugget_osmium",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "mekanism:block_osmium",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"translation": "Plutonium ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:pellet_plutonium"
|
||||
},
|
||||
"hardness": 6.8,
|
||||
"density": 5.6,
|
||||
"flexibility": 0.5,
|
||||
"durability": 1500,
|
||||
"enchantability": 8,
|
||||
"toughness": 3,
|
||||
"tier": 5,
|
||||
"mining_speed": 8,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 30,
|
||||
"color": "94E7E9",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "133d44",
|
||||
"68": "257583",
|
||||
"107": "3c8a97",
|
||||
"150": "5da7b3",
|
||||
"190": "66bcc4",
|
||||
"216": "94e7e9",
|
||||
"255": "9deff1"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 5,
|
||||
"block": 5
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"leeching": "0.7"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:pellet_plutonium",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"translation": "Polonium ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:pellet_polonium"
|
||||
},
|
||||
"hardness": 6.6,
|
||||
"density": 5.0,
|
||||
"flexibility": 1,
|
||||
"durability": 1400,
|
||||
"enchantability": 9,
|
||||
"toughness": 3,
|
||||
"tier": 5,
|
||||
"mining_speed": 8,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 30,
|
||||
"color": "88DEAB",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "173831",
|
||||
"68": "2d6c5e",
|
||||
"107": "2e846e",
|
||||
"150": "3b9e7d",
|
||||
"190": "64c395",
|
||||
"216": "88deab",
|
||||
"255": "aeecc5"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 6,
|
||||
"block": 6
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"leeching": "0.7"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:pellet_polonium",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
{
|
||||
"translation": "Refined Glowstone ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:ingot_refined_glowstone"
|
||||
},
|
||||
"hardness": 5.0,
|
||||
"density": 2.4,
|
||||
"flexibility": 4,
|
||||
"durability": 700,
|
||||
"enchantability": 30,
|
||||
"toughness": 1,
|
||||
"tier": 5,
|
||||
"mining_speed": 11,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 22,
|
||||
"color": "FFF9CA",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "3b2e21",
|
||||
"68": "71593f",
|
||||
"107": "aa7949",
|
||||
"150": "f5c953",
|
||||
"190": "ffeb98",
|
||||
"216": "fff9ca",
|
||||
"255": "fffef9"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"emissive",
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 15,
|
||||
"block": 15
|
||||
}
|
||||
},
|
||||
"tool": {
|
||||
"luminious_learning": "1"
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:ingot_refined_glowstone",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:nugget_refined_glowstone",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "mekanism:block_refined_glowstone",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"translation": "Refined Obsidian ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:ingot_refined_obsidian"
|
||||
},
|
||||
"hardness": 8.0,
|
||||
"density": 4.6,
|
||||
"flexibility": 2,
|
||||
"durability": 2600,
|
||||
"enchantability": 12,
|
||||
"toughness": 4,
|
||||
"tier": 6,
|
||||
"mining_speed": 12,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 42,
|
||||
"armor_toughness": 4.0,
|
||||
"color": "9B82BD",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "19141c",
|
||||
"68": "312735",
|
||||
"107": "45374f",
|
||||
"150": "59457b",
|
||||
"190": "8066ad",
|
||||
"216": "9b82bd",
|
||||
"255": "c09ec0"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"fire_proof": true
|
||||
},
|
||||
"handheld": {
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "-0.05",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:ingot_refined_obsidian",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:nugget_refined_obsidian",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "mekanism:block_refined_obsidian",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
{
|
||||
"translation": "Reinforced Alloy ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:alloy_reinforced"
|
||||
},
|
||||
"hardness": 6.6,
|
||||
"density": 4.0,
|
||||
"flexibility": 2,
|
||||
"durability": 1600,
|
||||
"enchantability": 14,
|
||||
"toughness": 3,
|
||||
"tier": 5,
|
||||
"mining_speed": 9,
|
||||
"mining_level": "minecraft:incorrect_for_netherite_tool",
|
||||
"armor_durability": 34,
|
||||
"armor_toughness": 2.0,
|
||||
"color": "B9FDFF",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "131d24",
|
||||
"68": "243746",
|
||||
"107": "308a96",
|
||||
"150": "429fa8",
|
||||
"190": "95f5f8",
|
||||
"216": "b9fdff",
|
||||
"255": "cafcfd"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:alloy_reinforced",
|
||||
"value": 1.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"translation": "Steel ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:ingot_steel"
|
||||
},
|
||||
"hardness": 6.0,
|
||||
"density": 4.2,
|
||||
"flexibility": 1.5,
|
||||
"durability": 720,
|
||||
"enchantability": 9,
|
||||
"toughness": 2,
|
||||
"tier": 4,
|
||||
"mining_speed": 7,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 26,
|
||||
"armor_toughness": 1.0,
|
||||
"color": "A4A19E",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "141414",
|
||||
"68": "262626",
|
||||
"107": "4f4f4f",
|
||||
"150": "595959",
|
||||
"190": "888885",
|
||||
"216": "a4a19e",
|
||||
"255": "c1c0be"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:ingot_steel",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:nugget_steel",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "mekanism:block_steel",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"translation": "Tin ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:ingot_tin"
|
||||
},
|
||||
"hardness": 3.4,
|
||||
"density": 2.6,
|
||||
"flexibility": 2.5,
|
||||
"durability": 150,
|
||||
"enchantability": 16,
|
||||
"toughness": 0,
|
||||
"tier": 2,
|
||||
"mining_speed": 5,
|
||||
"mining_level": "minecraft:incorrect_for_stone_tool",
|
||||
"armor_durability": 9,
|
||||
"color": "F7EDE2",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "383838",
|
||||
"68": "6c6c6c",
|
||||
"107": "7d7d7d",
|
||||
"150": "a5a3a1",
|
||||
"190": "e3d9cb",
|
||||
"216": "f7ede2",
|
||||
"255": "ffffff"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic",
|
||||
"bright"
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:ingot_tin",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:nugget_tin",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "mekanism:block_tin",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
"translation": "Uranium ",
|
||||
"groups": [
|
||||
"metal"
|
||||
],
|
||||
"icon": {
|
||||
"type": "item",
|
||||
"item": "mekanism:ingot_uranium"
|
||||
},
|
||||
"hardness": 6.2,
|
||||
"density": 5.8,
|
||||
"flexibility": 0.5,
|
||||
"durability": 900,
|
||||
"enchantability": 6,
|
||||
"toughness": 2,
|
||||
"tier": 4,
|
||||
"mining_speed": 6,
|
||||
"mining_level": "minecraft:incorrect_for_diamond_tool",
|
||||
"armor_durability": 24,
|
||||
"color": "CEFCCE",
|
||||
"color_palette": {
|
||||
"type": "grayscale_map",
|
||||
"colors": {
|
||||
"24": "2c342e",
|
||||
"68": "546458",
|
||||
"107": "68886f",
|
||||
"150": "85ba82",
|
||||
"190": "a6f5a2",
|
||||
"216": "cefcce",
|
||||
"255": "f9fff9"
|
||||
},
|
||||
"filler": "interpolate"
|
||||
},
|
||||
"textures": [
|
||||
"metallic"
|
||||
],
|
||||
"properties": {
|
||||
"default": {
|
||||
"emissive": {
|
||||
"sky": 3,
|
||||
"block": 3
|
||||
}
|
||||
},
|
||||
"handheld": {
|
||||
"leeching": "0.5",
|
||||
"attributes": [
|
||||
{
|
||||
"attribute": "generic.attack_speed",
|
||||
"value": "-0.06",
|
||||
"operation": "+",
|
||||
"slot": "mainhand"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"item": "mekanism:ingot_uranium",
|
||||
"value": 1.0
|
||||
},
|
||||
{
|
||||
"item": "mekanism:nugget_uranium",
|
||||
"value": 0.11112
|
||||
},
|
||||
{
|
||||
"item": "mekanism:block_uranium",
|
||||
"value": 9.0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"pack": {
|
||||
"description": "Mekanism Materials for Truly Modular",
|
||||
"pack_format": 48
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,264 @@
|
|||
#!/usr/bin/env python3
|
||||
"""Generate MIAPI material JSON from the source mods' own textures.
|
||||
|
||||
Every material's colour palette is sampled out of the item texture shipped by
|
||||
the mod that adds it, so a material always looks like the thing it is made of.
|
||||
|
||||
python3 tools/generate_materials.py --jars ~/mods
|
||||
|
||||
The jar directory needs one jar per source mod (Mekanism, Create, Create: The
|
||||
Air War, Create: Cosmonautics, Ice and Fire). Generated files are committed, so
|
||||
this only needs re-running when a material definition or a source texture
|
||||
changes.
|
||||
|
||||
Every item id in materials.py is checked against the jars; a typo fails the run
|
||||
rather than shipping a material that silently refuses to load.
|
||||
"""
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
import zipfile
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
import numpy as np
|
||||
from PIL import Image
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent))
|
||||
from materials import EXTENSIONS, MATERIALS, PACKS # noqa: E402
|
||||
|
||||
NAMESPACE = "cmmodular"
|
||||
PACK_FORMAT = 48 # 1.21.1
|
||||
|
||||
# Brightness levels of MIAPI's grayscale templates. Each gets a colour; values
|
||||
# in between are interpolated by the game.
|
||||
STOPS = [24, 68, 107, 150, 190, 216, 255]
|
||||
# Where to sample the source texture for each stop, as a position in the
|
||||
# texture's own brightness order. Tuned against MIAPI's hand-authored copper
|
||||
# palette, which these reproduce to within ~2% per channel.
|
||||
SAMPLE_POINTS = [0.02, 0.02, 0.20, 0.40, 0.66, 0.85, 0.98]
|
||||
# The lowest stop sits below anything in the texture: item art rarely contains
|
||||
# the deep shadow a full 3D model needs, and MIAPI's own palettes extrapolate
|
||||
# it the same way (copper's darkest shade x0.52 is copper's darkest stop).
|
||||
SHADOW_EXTENSION = 0.52
|
||||
# Luminance below which a pixel is treated as outline rather than material.
|
||||
OUTLINE_CUTOFF = 16
|
||||
|
||||
LUMA = np.array([0.2126, 0.7152, 0.0722])
|
||||
|
||||
|
||||
class Jars:
|
||||
"""Open mod jars, indexed by the asset namespaces they contain."""
|
||||
|
||||
def __init__(self, folder: Path):
|
||||
self.zips = []
|
||||
self.by_namespace = {}
|
||||
for path in sorted(folder.glob("*.jar")):
|
||||
zf = zipfile.ZipFile(path)
|
||||
names = zf.namelist()
|
||||
self.zips.append((path.name, zf, set(names)))
|
||||
for name in names:
|
||||
m = re.match(r"assets/([^/]+)/", name)
|
||||
if m:
|
||||
self.by_namespace.setdefault(m.group(1), (path.name, zf, set(names)))
|
||||
|
||||
def _for(self, namespace):
|
||||
hit = self.by_namespace.get(namespace)
|
||||
if hit is None:
|
||||
raise LookupError(
|
||||
f"no jar in --jars provides the '{namespace}' namespace; "
|
||||
f"found: {', '.join(sorted(self.by_namespace)) or 'nothing'}"
|
||||
)
|
||||
return hit
|
||||
|
||||
def has_item(self, item_id: str) -> bool:
|
||||
namespace, path = item_id.split(":", 1)
|
||||
try:
|
||||
_, _, names = self._for(namespace)
|
||||
except LookupError:
|
||||
return False
|
||||
return f"assets/{namespace}/models/item/{path}.json" in names
|
||||
|
||||
def read_json(self, namespace, path):
|
||||
_, zf, _ = self._for(namespace)
|
||||
return json.loads(zf.read(f"assets/{namespace}/{path}"))
|
||||
|
||||
def texture_of(self, item_id: str) -> str:
|
||||
"""Resolve an item id to the texture id its model draws."""
|
||||
namespace, path = item_id.split(":", 1)
|
||||
_, _, names = self._for(namespace)
|
||||
seen = set()
|
||||
model_ref = f"{namespace}:item/{path}"
|
||||
while model_ref and model_ref not in seen:
|
||||
seen.add(model_ref)
|
||||
ns, mpath = model_ref.split(":", 1) if ":" in model_ref else ("minecraft", model_ref)
|
||||
key = f"assets/{ns}/models/{mpath}.json"
|
||||
if key not in names:
|
||||
break
|
||||
model = json.loads(self._for(ns)[1].read(key))
|
||||
textures = model.get("textures", {})
|
||||
for layer in ("layer0", "all", "texture", "particle"):
|
||||
if layer in textures and not textures[layer].startswith("#"):
|
||||
return textures[layer]
|
||||
model_ref = model.get("parent")
|
||||
guess = f"{namespace}:item/{path}"
|
||||
if f"assets/{namespace}/textures/item/{path}.png" in names:
|
||||
return guess
|
||||
raise LookupError(f"could not resolve a texture for {item_id}")
|
||||
|
||||
def image(self, texture_id: str) -> Image.Image:
|
||||
ns, path = texture_id.split(":", 1) if ":" in texture_id else ("minecraft", texture_id)
|
||||
_, zf, _ = self._for(ns)
|
||||
with zf.open(f"assets/{ns}/textures/{path}.png") as fh:
|
||||
img = Image.open(fh).convert("RGBA")
|
||||
img.load()
|
||||
# Animated textures stack frames vertically; the first frame is enough.
|
||||
if img.height > img.width:
|
||||
img = img.crop((0, 0, img.width, img.width))
|
||||
return img
|
||||
|
||||
|
||||
def palette_from_image(img: Image.Image):
|
||||
"""Build a MIAPI grayscale_map from a texture.
|
||||
|
||||
A stop's key is the brightness of MIAPI's grayscale template; its value is
|
||||
simply what the material looks like at that point in its own shading. The
|
||||
colours are therefore taken from the texture as they are, not re-lit to
|
||||
match the stop number - which is why MIAPI's own netherite tops out at a
|
||||
murky 847a84 while iron runs to white.
|
||||
|
||||
Samples are taken at percentiles of the texture's brightness order, so a
|
||||
texture with four shades still yields a full seven-stop ramp and any hue
|
||||
drift between shadow and highlight survives.
|
||||
"""
|
||||
px = np.asarray(img, dtype=np.float32).reshape(-1, 4)
|
||||
opaque = px[px[:, 3] > 128][:, :3]
|
||||
if len(opaque) == 0:
|
||||
raise ValueError("texture is fully transparent")
|
||||
|
||||
# Item art is usually drawn on a pure black outline. That outline is not a
|
||||
# shade of the material, and letting it win the dark stops turns the whole
|
||||
# shadow end colourless, so it is dropped - unless the material really is
|
||||
# near-black, in which case there is nothing else to sample.
|
||||
lit = opaque[opaque @ LUMA >= OUTLINE_CUTOFF]
|
||||
if len(lit) >= len(opaque) * 0.25:
|
||||
opaque = lit
|
||||
|
||||
ranked = opaque[np.argsort(opaque @ LUMA)]
|
||||
window = max(1, len(ranked) // 12)
|
||||
|
||||
samples = []
|
||||
for point in SAMPLE_POINTS:
|
||||
centre = int(round(point * (len(ranked) - 1)))
|
||||
lo = max(0, min(centre - window // 2, len(ranked) - window))
|
||||
# Median over a window rather than one pixel, so a stray outline pixel
|
||||
# cannot decide a whole stop.
|
||||
samples.append(np.median(ranked[lo:lo + window], axis=0))
|
||||
samples[0] = samples[1] * SHADOW_EXTENSION
|
||||
|
||||
return {str(stop): "%02x%02x%02x" % tuple(int(round(c)) for c in sample)
|
||||
for stop, sample in zip(STOPS, samples)}
|
||||
|
||||
|
||||
def build_material(spec, jars: Jars):
|
||||
texture = jars.texture_of(spec["palette_from"])
|
||||
palette = palette_from_image(jars.image(texture))
|
||||
|
||||
out = {
|
||||
"translation": spec["translation"] + " ", # trailing space: "Steel Sword"
|
||||
"groups": spec["groups"],
|
||||
"icon": {"type": "item", "item": spec["icon"]},
|
||||
}
|
||||
out.update(spec["stats"])
|
||||
out["color"] = palette["216"].upper()
|
||||
out["color_palette"] = {
|
||||
"type": "grayscale_map",
|
||||
"colors": palette,
|
||||
"filler": "interpolate",
|
||||
}
|
||||
out["textures"] = spec["textures"]
|
||||
if spec["properties"]:
|
||||
out["properties"] = spec["properties"]
|
||||
out["items"] = spec["items"]
|
||||
return out
|
||||
|
||||
|
||||
def check_items(spec, jars: Jars, any_of_pack: bool):
|
||||
"""Item ids must exist; tags are allowed to be missing at build time."""
|
||||
problems = []
|
||||
for entry in spec["items"]:
|
||||
if "item" not in entry:
|
||||
continue
|
||||
if any_of_pack:
|
||||
problems.append(
|
||||
f"{spec['name']}: pack '{spec['pack']}' loads when any one of its "
|
||||
f"mods is present, so it must use tags, not the item id {entry['item']}"
|
||||
)
|
||||
elif not jars.has_item(entry["item"]):
|
||||
problems.append(f"{spec['name']}: no such item {entry['item']}")
|
||||
if not jars.has_item(spec["icon"]):
|
||||
problems.append(f"{spec['name']}: icon item {spec['icon']} does not exist")
|
||||
return problems
|
||||
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description=__doc__,
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
parser.add_argument("--jars", type=Path, required=True,
|
||||
help="folder holding the source mods' jars")
|
||||
parser.add_argument("--out", type=Path,
|
||||
default=Path(__file__).parent.parent / "src/main/resources/packs",
|
||||
help="where the sub-packs are written")
|
||||
args = parser.parse_args()
|
||||
|
||||
jars = Jars(args.jars)
|
||||
print(f"namespaces found: {', '.join(sorted(jars.by_namespace))}\n")
|
||||
|
||||
problems = []
|
||||
for spec in MATERIALS:
|
||||
pack = PACKS[spec["pack"]]
|
||||
problems += check_items(spec, jars, pack.get("any_of", False))
|
||||
if problems:
|
||||
print("aborting, item ids do not check out:", file=sys.stderr)
|
||||
for p in problems:
|
||||
print(" " + p, file=sys.stderr)
|
||||
return 1
|
||||
|
||||
written = 0
|
||||
for pack_id, pack in PACKS.items():
|
||||
root = args.out / pack_id
|
||||
mcmeta = {
|
||||
"pack": {
|
||||
"description": f"{pack['name']} for Truly Modular",
|
||||
"pack_format": PACK_FORMAT,
|
||||
}
|
||||
}
|
||||
root.mkdir(parents=True, exist_ok=True)
|
||||
(root / "pack.mcmeta").write_text(json.dumps(mcmeta, indent=2) + "\n")
|
||||
|
||||
for spec in MATERIALS:
|
||||
material = build_material(spec, jars)
|
||||
path = (args.out / spec["pack"] / "data" / NAMESPACE / "miapi" / "materials"
|
||||
/ spec["group"] / f"{spec['name']}.json")
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
path.write_text(json.dumps(material, indent=2) + "\n")
|
||||
written += 1
|
||||
swatch = " ".join(material["color_palette"]["colors"][str(s)] for s in STOPS)
|
||||
print(f" {spec['pack']:<13} {NAMESPACE}:{spec['group']}/{spec['name']:<28} {swatch}")
|
||||
|
||||
for ext in EXTENSIONS:
|
||||
path = (args.out / ext["pack"] / "data" / NAMESPACE / "miapi" / "materials"
|
||||
/ f"{ext['path']}.json")
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
path.write_text(json.dumps(ext["data"], indent=2) + "\n")
|
||||
written += 1
|
||||
print(f" {ext['pack']:<13} extends {ext['data']['key']}")
|
||||
|
||||
print(f"\n{written} files written to {args.out}")
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
|
|
@ -0,0 +1,686 @@
|
|||
"""Material definitions for the Truly Modular addon.
|
||||
|
||||
One entry per material. `generate_materials.py` turns these into MIAPI material
|
||||
JSON, pulling the colour palette out of the source mod's own item texture.
|
||||
|
||||
Stat calibration follows Tinkers' Construct 3 (1.20.1) in spirit, re-scaled onto
|
||||
MIAPI's vanilla-derived numbers:
|
||||
|
||||
material hardness density durability ench tier mining
|
||||
copper 4.2 3.6 200 13 2 5
|
||||
iron 5.0 3.8 235 14 3 6
|
||||
diamond 6.0 2.0 1546 10 4 8
|
||||
netherite 7.0 2.0 2016 15 5 9
|
||||
|
||||
Tinkers' character mapping used below:
|
||||
cobalt -> titanium light, fast, durable, unremarkable damage
|
||||
steel -> steel balanced workhorse, no frills
|
||||
hepatizon -> brass/bronze copper alloys, damage and enchantability
|
||||
manyullyn -> dragonsteel top damage, endgame gate
|
||||
rose gold -> refined glowstone / pixie dust fragile, huge enchantability
|
||||
ancient hide -> dragon scales, chitin armour-first, high toughness
|
||||
|
||||
Tiers 6 and 7 sit above netherite by request: 6 = refined obsidian, shadow
|
||||
steel, refined radiance, atomic alloy; 7 = dragonsteel and antimatter.
|
||||
"""
|
||||
|
||||
# Mining level tags, indexed by tier.
|
||||
MINING_LEVEL = {
|
||||
1: "minecraft:incorrect_for_wooden_tool",
|
||||
2: "minecraft:incorrect_for_stone_tool",
|
||||
3: "minecraft:incorrect_for_iron_tool",
|
||||
4: "minecraft:incorrect_for_diamond_tool",
|
||||
5: "minecraft:incorrect_for_netherite_tool",
|
||||
6: "minecraft:incorrect_for_netherite_tool",
|
||||
7: "minecraft:incorrect_for_netherite_tool",
|
||||
}
|
||||
|
||||
NUGGET = 0.11112 # 1/9, matching MIAPI's own nugget values
|
||||
BLOCK = 9.0
|
||||
|
||||
# Sub-packs. Each becomes a NeoForge built-in datapack that is only registered
|
||||
# when its `mods` are present, so a material never references a missing item.
|
||||
# `any_of` packs load when at least one listed mod is installed; those materials
|
||||
# therefore have to source their ingredients from tags, not item ids.
|
||||
PACKS = {
|
||||
"mekanism": {"mods": ["mekanism"], "name": "Mekanism Materials"},
|
||||
"create": {"mods": ["create"], "name": "Create Materials"},
|
||||
"iceandfire": {"mods": ["iceandfire"], "name": "Ice and Fire Materials"},
|
||||
"air_war": {"mods": ["create_the_air_wars"], "name": "Create: The Air War Materials"},
|
||||
"cosmonautics": {"mods": ["rocketnautics"], "name": "Create: Cosmonautics Materials"},
|
||||
"irons_spellbooks": {"mods": ["irons_spellbooks"], "name": "Iron's Spells Materials"},
|
||||
"interstellar": {"mods": ["vsie"], "name": "Interstellar Expansion Materials"},
|
||||
"aerospace": {
|
||||
"mods": ["create_the_air_wars", "rocketnautics"],
|
||||
"any_of": True,
|
||||
"name": "Aerospace Materials",
|
||||
},
|
||||
}
|
||||
|
||||
# Attribute this mod registers itself, so a material can grant something the
|
||||
# game has no attribute for. See FireImmunity.java.
|
||||
FIRE_IMMUNITY = "cmmodular:fire_immunity"
|
||||
|
||||
|
||||
def attribute(attr, value, slot, operation="+"):
|
||||
return {"attribute": attr, "value": str(value), "operation": operation, "slot": slot}
|
||||
|
||||
|
||||
def M(name, pack, group, translation, palette_from, items, tier, hardness, density,
|
||||
flexibility, durability, enchantability, mining_speed, *, groups=None,
|
||||
toughness=0, armor_durability=None, armor_toughness=None,
|
||||
knockback_resistance=None, textures=("metallic",), properties=None,
|
||||
icon=None, mining_level=None):
|
||||
"""One material. `palette_from` is the item whose texture seeds the palette."""
|
||||
return {
|
||||
"name": name,
|
||||
"pack": pack,
|
||||
"group": group,
|
||||
"translation": translation,
|
||||
"palette_from": palette_from,
|
||||
"icon": icon or palette_from,
|
||||
"items": items,
|
||||
"groups": list(groups) if groups else [group],
|
||||
"textures": list(textures),
|
||||
"properties": properties or {},
|
||||
"stats": {
|
||||
"hardness": hardness,
|
||||
"density": density,
|
||||
"flexibility": flexibility,
|
||||
"durability": durability,
|
||||
"enchantability": enchantability,
|
||||
"toughness": toughness,
|
||||
"tier": tier,
|
||||
"mining_speed": mining_speed,
|
||||
"mining_level": mining_level or MINING_LEVEL[tier],
|
||||
**({"armor_durability": armor_durability} if armor_durability is not None else {}),
|
||||
**({"armor_toughness": armor_toughness} if armor_toughness is not None else {}),
|
||||
**({"knockback_resistance": knockback_resistance} if knockback_resistance is not None else {}),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def ingots(mod, ingot, nugget=None, block=None, extra=()):
|
||||
out = [{"item": f"{mod}:{ingot}", "value": 1.0}]
|
||||
if nugget:
|
||||
out.append({"item": f"{mod}:{nugget}", "value": NUGGET})
|
||||
if block:
|
||||
out.append({"item": f"{mod}:{block}", "value": BLOCK})
|
||||
out.extend(extra)
|
||||
return out
|
||||
|
||||
|
||||
def speed(value):
|
||||
"""Attack speed tweak on held modules: positive is faster."""
|
||||
return {"attributes": [{"attribute": "generic.attack_speed", "value": str(value),
|
||||
"operation": "+", "slot": "mainhand"}]}
|
||||
|
||||
|
||||
MATERIALS = [
|
||||
# ------------------------------------------------------------------ Mekanism
|
||||
M("tin", "mekanism", "metal", "Tin", "mekanism:ingot_tin",
|
||||
ingots("mekanism", "ingot_tin", "nugget_tin", "block_tin"),
|
||||
tier=2, hardness=3.4, density=2.6, flexibility=2.5, durability=150,
|
||||
enchantability=16, mining_speed=5, armor_durability=9,
|
||||
textures=("metallic", "bright")),
|
||||
# Soft, light and cheap: the tier-2 filler metal. Tinkers has no tin, so
|
||||
# this reads off real tin - low hardness, corrosion-proof, easy to work.
|
||||
|
||||
M("lead", "mekanism", "metal", "Lead", "mekanism:ingot_lead",
|
||||
ingots("mekanism", "ingot_lead", "nugget_lead", "block_lead"),
|
||||
tier=3, hardness=4.2, density=6.0, flexibility=0.5, durability=300,
|
||||
enchantability=8, mining_speed=4, toughness=1, armor_durability=16,
|
||||
knockback_resistance=0.05,
|
||||
properties={"handheld": speed(-0.12)}),
|
||||
# The heaviest thing here. Slow swing, poor enchanting, but it plants you.
|
||||
|
||||
M("osmium", "mekanism", "metal", "Osmium", "mekanism:ingot_osmium",
|
||||
ingots("mekanism", "ingot_osmium", "nugget_osmium", "block_osmium"),
|
||||
tier=4, hardness=5.6, density=5.6, flexibility=0.5, durability=620,
|
||||
enchantability=10, mining_speed=6, toughness=2, armor_durability=22,
|
||||
armor_toughness=1.0, properties={"handheld": speed(-0.08)}),
|
||||
# Densest metal that exists. Heavy-weapon material: big density offset,
|
||||
# real toughness, sluggish in hand.
|
||||
|
||||
M("bronze", "mekanism", "metal", "Bronze", "mekanism:ingot_bronze",
|
||||
ingots("mekanism", "ingot_bronze", "nugget_bronze", "block_bronze"),
|
||||
tier=3, hardness=4.9, density=4.0, flexibility=1, durability=420,
|
||||
enchantability=12, mining_speed=6, toughness=1, armor_durability=19),
|
||||
# Tinkers' amethyst bronze slot: a solid step past iron, nothing exotic.
|
||||
|
||||
M("steel", "mekanism", "metal", "Steel", "mekanism:ingot_steel",
|
||||
ingots("mekanism", "ingot_steel", "nugget_steel", "block_steel"),
|
||||
tier=4, hardness=6.0, density=4.2, flexibility=1.5, durability=720,
|
||||
enchantability=9, mining_speed=7, toughness=2, armor_durability=26,
|
||||
armor_toughness=1.0),
|
||||
# Tinkers' steel almost verbatim: diamond harvest tier, balanced, boring
|
||||
# in the way a workhorse should be. Poor enchantability is the cost.
|
||||
|
||||
M("uranium", "mekanism", "metal", "Uranium", "mekanism:ingot_uranium",
|
||||
ingots("mekanism", "ingot_uranium", "nugget_uranium", "block_uranium"),
|
||||
tier=4, hardness=6.2, density=5.8, flexibility=0.5, durability=900,
|
||||
enchantability=6, mining_speed=6, toughness=2, armor_durability=24,
|
||||
properties={"default": {"emissive": {"sky": 3, "block": 3}},
|
||||
"handheld": {"leeching": "0.5", **speed(-0.06)}}),
|
||||
# Dense, faintly glowing, actively bad for you - leeching stands in for
|
||||
# radiation, and enchantability is the worst on the list.
|
||||
|
||||
M("refined_obsidian", "mekanism", "metal", "Refined Obsidian",
|
||||
"mekanism:ingot_refined_obsidian",
|
||||
ingots("mekanism", "ingot_refined_obsidian", "nugget_refined_obsidian",
|
||||
"block_refined_obsidian"),
|
||||
tier=6, hardness=8.0, density=4.6, flexibility=2, durability=2600,
|
||||
enchantability=12, mining_speed=12, toughness=4, armor_durability=42,
|
||||
armor_toughness=4.0,
|
||||
properties={"default": {"fire_proof": True}, "handheld": speed(-0.05)}),
|
||||
|
||||
M("refined_glowstone", "mekanism", "metal", "Refined Glowstone",
|
||||
"mekanism:ingot_refined_glowstone",
|
||||
ingots("mekanism", "ingot_refined_glowstone", "nugget_refined_glowstone",
|
||||
"block_refined_glowstone"),
|
||||
tier=5, hardness=5.0, density=2.4, flexibility=4, durability=700,
|
||||
enchantability=30, mining_speed=11, toughness=1, armor_durability=22,
|
||||
textures=("emissive", "metallic"),
|
||||
properties={"default": {"emissive": {"sky": 15, "block": 15}},
|
||||
"tool": {"luminious_learning": "1"}}),
|
||||
# Tinkers' rose gold role: fragile for its tier, best-in-slot enchanting.
|
||||
|
||||
M("infused_alloy", "mekanism", "metal", "Infused Alloy", "mekanism:alloy_infused",
|
||||
[{"item": "mekanism:alloy_infused", "value": 1.0}],
|
||||
tier=4, hardness=5.8, density=3.6, flexibility=2, durability=800,
|
||||
enchantability=16, mining_speed=8, toughness=2, armor_durability=26),
|
||||
|
||||
M("reinforced_alloy", "mekanism", "metal", "Reinforced Alloy",
|
||||
"mekanism:alloy_reinforced",
|
||||
[{"item": "mekanism:alloy_reinforced", "value": 1.0}],
|
||||
tier=5, hardness=6.6, density=4.0, flexibility=2, durability=1600,
|
||||
enchantability=14, mining_speed=9, toughness=3, armor_durability=34,
|
||||
armor_toughness=2.0),
|
||||
|
||||
M("atomic_alloy", "mekanism", "metal", "Atomic Alloy", "mekanism:alloy_atomic",
|
||||
[{"item": "mekanism:alloy_atomic", "value": 1.0}],
|
||||
tier=6, hardness=7.8, density=3.8, flexibility=3, durability=2800,
|
||||
enchantability=18, mining_speed=11, toughness=4, armor_durability=44,
|
||||
armor_toughness=3.5, properties={"default": {"fire_proof": True}}),
|
||||
# Mekanism's alloy ladder ends here, so it tops out the tier-6 band.
|
||||
|
||||
M("fluorite", "mekanism", "crystal", "Fluorite", "mekanism:fluorite_gem",
|
||||
[{"item": "mekanism:fluorite_gem", "value": 1.0},
|
||||
{"item": "mekanism:block_fluorite", "value": 4.0}],
|
||||
tier=4, hardness=5.6, density=2.2, flexibility=0, durability=600,
|
||||
enchantability=18, mining_speed=8, toughness=1, armor_durability=20,
|
||||
groups=("crystal", "gem"), textures=("crystal", "bright"),
|
||||
properties={"default": {"emissive": {"sky": 4, "block": 4}}}),
|
||||
# Real fluorite fluoresces, hence the faint glow; brittle, so no flex.
|
||||
|
||||
M("hdpe", "mekanism", "metal", "HDPE", "mekanism:hdpe_sheet",
|
||||
[{"item": "mekanism:hdpe_sheet", "value": 1.0},
|
||||
{"item": "mekanism:hdpe_pellet", "value": 0.25},
|
||||
{"item": "mekanism:hdpe_rod", "value": 0.5}],
|
||||
tier=3, hardness=3.2, density=0.9, flexibility=6, durability=450,
|
||||
enchantability=20, mining_speed=3, toughness=1, armor_durability=18,
|
||||
textures=("rough",), properties={"handheld": speed(0.1)}),
|
||||
# Plastic: nearly weightless, very flexible, hopeless at cutting rock.
|
||||
|
||||
M("plutonium", "mekanism", "metal", "Plutonium", "mekanism:pellet_plutonium",
|
||||
[{"item": "mekanism:pellet_plutonium", "value": 1.0}],
|
||||
tier=5, hardness=6.8, density=5.6, flexibility=0.5, durability=1500,
|
||||
enchantability=8, mining_speed=8, toughness=3, armor_durability=30,
|
||||
properties={"default": {"emissive": {"sky": 5, "block": 5}},
|
||||
"handheld": {"leeching": "0.7"}}),
|
||||
|
||||
M("polonium", "mekanism", "metal", "Polonium", "mekanism:pellet_polonium",
|
||||
[{"item": "mekanism:pellet_polonium", "value": 1.0}],
|
||||
tier=5, hardness=6.6, density=5.0, flexibility=1, durability=1400,
|
||||
enchantability=9, mining_speed=8, toughness=3, armor_durability=30,
|
||||
properties={"default": {"emissive": {"sky": 6, "block": 6}},
|
||||
"handheld": {"leeching": "0.7"}}),
|
||||
|
||||
M("antimatter", "mekanism", "metal", "Antimatter", "mekanism:pellet_antimatter",
|
||||
[{"item": "mekanism:pellet_antimatter", "value": 1.0}],
|
||||
tier=7, hardness=9.5, density=2.0, flexibility=3, durability=4000,
|
||||
enchantability=22, mining_speed=15, toughness=5, armor_durability=52,
|
||||
armor_toughness=5.0, textures=("emissive", "metallic"),
|
||||
properties={"default": {"fire_proof": True,
|
||||
"emissive": {"sky": 12, "block": 12}},
|
||||
"handheld": {"immolate": "5"}}),
|
||||
# The single most expensive item in Mekanism, so it shares the ceiling
|
||||
# with dragonsteel.
|
||||
|
||||
# -------------------------------------------------------------------- Create
|
||||
M("zinc", "create", "metal", "Zinc", "create:zinc_ingot",
|
||||
ingots("create", "zinc_ingot", "zinc_nugget", "zinc_block"),
|
||||
tier=2, hardness=3.8, density=3.0, flexibility=1.5, durability=180,
|
||||
enchantability=15, mining_speed=5, armor_durability=10,
|
||||
textures=("metallic", "bright")),
|
||||
# Brittle in reality, so it stays a tier-2 stepping stone to brass.
|
||||
|
||||
M("brass", "create", "metal", "Brass", "create:brass_ingot",
|
||||
ingots("create", "brass_ingot", "brass_nugget", "brass_block",
|
||||
extra=[{"item": "create:brass_sheet", "value": 1.0}]),
|
||||
tier=3, hardness=5.0, density=3.4, flexibility=2, durability=380,
|
||||
enchantability=18, mining_speed=8, toughness=1, armor_durability=18,
|
||||
textures=("metallic", "bright")),
|
||||
# Create's precision metal, and Tinkers' hepatizon slot: quick and
|
||||
# enchantable rather than durable.
|
||||
|
||||
M("andesite_alloy", "create", "metal", "Andesite Alloy", "create:andesite_alloy",
|
||||
[{"item": "create:andesite_alloy", "value": 1.0},
|
||||
{"item": "create:andesite_alloy_block", "value": BLOCK}],
|
||||
tier=2, hardness=4.4, density=4.2, flexibility=1, durability=210,
|
||||
enchantability=8, mining_speed=4, toughness=1, armor_durability=12,
|
||||
groups=("metal", "stone"), textures=("rough", "metallic")),
|
||||
# Half rock, half metal - grouped as both so stone and metal modules take it.
|
||||
|
||||
M("refined_radiance", "create", "metal", "Refined Radiance", "create:refined_radiance",
|
||||
[{"item": "create:refined_radiance", "value": 1.0}],
|
||||
tier=6, hardness=7.4, density=2.0, flexibility=4, durability=2500,
|
||||
enchantability=28, mining_speed=12, toughness=4, armor_durability=40,
|
||||
armor_toughness=3.0, textures=("emissive", "metallic"),
|
||||
properties={"default": {"fire_proof": True,
|
||||
"emissive": {"sky": 15, "block": 15}},
|
||||
"tool": {"luminious_learning": "1"},
|
||||
"handheld": {"illager_bane": "1"}}),
|
||||
|
||||
M("shadow_steel", "create", "metal", "Shadow Steel", "create:shadow_steel",
|
||||
[{"item": "create:shadow_steel", "value": 1.0}],
|
||||
tier=6, hardness=8.2, density=4.8, flexibility=2, durability=2700,
|
||||
enchantability=14, mining_speed=10, toughness=4, armor_durability=42,
|
||||
armor_toughness=3.5,
|
||||
properties={"default": {"fire_proof": True},
|
||||
"handheld": {"leeching": "1"}}),
|
||||
# Create's two chapter-end materials are deliberately a matched pair:
|
||||
# radiance enchants and glows, shadow steel hits and drains.
|
||||
|
||||
# ----------------------------------------------------------------- Aerospace
|
||||
# Both Air War and Cosmonautics add titanium. This is one material fed by
|
||||
# tags so either mod (or both) supplies it; see the c: tag files.
|
||||
M("titanium", "aerospace", "metal", "Titanium", "rocketnautics:titanium_ingot",
|
||||
[{"tag": "c:ingots/titanium", "value": 1.0},
|
||||
{"tag": "c:nuggets/titanium", "value": NUGGET},
|
||||
{"tag": "c:plates/titanium", "value": 1.0}],
|
||||
tier=4, hardness=5.8, density=1.6, flexibility=3, durability=1150,
|
||||
enchantability=11, mining_speed=9, toughness=2, armor_durability=32,
|
||||
armor_toughness=1.5,
|
||||
properties={"default": {"fire_proof": True}, "handheld": speed(0.06)}),
|
||||
# Tinkers' cobalt: light, fast, very durable, damage only average. Heat
|
||||
# resistance is what separates it from steel.
|
||||
|
||||
M("titanium_alloy", "cosmonautics", "metal", "Titanium Alloy",
|
||||
"rocketnautics:titanium_alloy",
|
||||
[{"item": "rocketnautics:titanium_alloy", "value": 1.0},
|
||||
{"item": "rocketnautics:titanium_alloy_nugget", "value": NUGGET},
|
||||
{"item": "rocketnautics:titanium_alloy_sheet", "value": 1.0},
|
||||
{"item": "rocketnautics:titanium_alloy_block", "value": BLOCK}],
|
||||
tier=5, hardness=6.8, density=2.2, flexibility=3, durability=1900,
|
||||
enchantability=12, mining_speed=10, toughness=3, armor_durability=36,
|
||||
armor_toughness=2.0, properties={"default": {"fire_proof": True}}),
|
||||
|
||||
# ------------------------------------------------------- Create: The Air War
|
||||
M("sulfur", "air_war", "crystal", "Sulfur", "create_the_air_wars:raw_sulfur",
|
||||
[{"item": "create_the_air_wars:raw_sulfur", "value": 1.0},
|
||||
{"item": "create_the_air_wars:crashedsulfur", "value": 1.0}],
|
||||
tier=2, hardness=3.0, density=2.0, flexibility=1, durability=140,
|
||||
enchantability=14, mining_speed=4, armor_durability=6,
|
||||
groups=("crystal",), textures=("crystal", "rough"),
|
||||
properties={"default": {"immolate": "2"}}),
|
||||
# Barely a tool material - it is here because it burns.
|
||||
|
||||
M("amalgam", "air_war", "metal", "Amalgam", "create_the_air_wars:rough_amalgam",
|
||||
[{"item": "create_the_air_wars:rough_amalgam", "value": 1.0},
|
||||
{"item": "create_the_air_wars:crushed_amalgam", "value": 1.0}],
|
||||
tier=3, hardness=4.4, density=5.5, flexibility=3, durability=320,
|
||||
enchantability=21, mining_speed=7, armor_durability=15,
|
||||
textures=("metallic", "shiny"),
|
||||
properties={"handheld": {"leeching": "0.3", **speed(-0.08)}}),
|
||||
# Mercury alloy: heavy, quick to enchant, quietly poisonous.
|
||||
|
||||
# -------------------------------------------------------------- Ice and Fire
|
||||
M("silver", "iceandfire", "metal", "Silver", "iceandfire:silver_ingot",
|
||||
ingots("iceandfire", "silver_ingot", "silver_nugget", "silver_block"),
|
||||
tier=3, hardness=4.6, density=3.4, flexibility=2, durability=220,
|
||||
enchantability=20, mining_speed=7, armor_durability=13,
|
||||
textures=("metallic", "bright"),
|
||||
properties={"handheld": {"fake_enchants": {"minecraft:smite": 2}}}),
|
||||
# Folklore does the design work: soft metal, great for enchanting,
|
||||
# murder on the undead.
|
||||
|
||||
M("dragonbone", "iceandfire", "bone", "Dragonbone", "iceandfire:dragonbone",
|
||||
[{"item": "iceandfire:dragonbone", "value": 1.0},
|
||||
{"item": "iceandfire:dragon_bone_block", "value": 4.0}],
|
||||
tier=4, hardness=6.2, density=4.4, flexibility=3, durability=700,
|
||||
enchantability=12, mining_speed=7, toughness=2, armor_durability=24,
|
||||
groups=("bone",), textures=("rough",),
|
||||
properties={"head": {"fracturing": "10"}}),
|
||||
# Vanilla bone with the numbers pushed to diamond tier; keeps the
|
||||
# fracturing quirk MIAPI gives bone.
|
||||
|
||||
M("witherbone", "iceandfire", "bone", "Witherbone", "iceandfire:witherbone",
|
||||
[{"item": "iceandfire:witherbone", "value": 1.0},
|
||||
{"item": "iceandfire:wither_shard", "value": 0.25}],
|
||||
tier=3, hardness=5.8, density=4.6, flexibility=3, durability=520,
|
||||
enchantability=10, mining_speed=6, toughness=1, armor_durability=20,
|
||||
groups=("bone",), textures=("rough",),
|
||||
properties={"head": {"fracturing": "15"}, "handheld": {"leeching": "0.5"}}),
|
||||
|
||||
M("hippogryph_talon", "iceandfire", "bone", "Talon", "iceandfire:hippogryph_talon",
|
||||
[{"item": "iceandfire:hippogryph_talon", "value": 1.0}],
|
||||
tier=3, hardness=6.6, density=2.4, flexibility=2, durability=300,
|
||||
enchantability=14, mining_speed=6, armor_durability=14,
|
||||
groups=("bone",), textures=("rough",),
|
||||
properties={"handheld": speed(0.08)}),
|
||||
# Sharp and light: high hardness, low durability, fast in hand.
|
||||
|
||||
M("sapphire", "iceandfire", "crystal", "Sapphire", "iceandfire:sapphire_gem",
|
||||
[{"item": "iceandfire:sapphire_gem", "value": 1.0},
|
||||
{"item": "iceandfire:sapphire_block", "value": BLOCK}],
|
||||
tier=4, hardness=6.2, density=2.2, flexibility=0, durability=1200,
|
||||
enchantability=14, mining_speed=8, toughness=2, armor_durability=30,
|
||||
groups=("crystal", "gem"), textures=("crystal", "bright")),
|
||||
|
||||
M("pixie_dust", "iceandfire", "crystal", "Pixie Dust", "iceandfire:pixie_dust",
|
||||
[{"item": "iceandfire:pixie_dust", "value": 1.0}],
|
||||
tier=3, hardness=4.0, density=0.5, flexibility=6, durability=220,
|
||||
enchantability=34, mining_speed=9, armor_durability=10,
|
||||
groups=("crystal",), textures=("emissive", "crystal"),
|
||||
properties={"default": {"emissive": {"sky": 7, "block": 7}},
|
||||
"tool": {"luminious_learning": "1"}}),
|
||||
# Highest enchantability in the set and almost no durability to go with
|
||||
# it - the rose gold extreme.
|
||||
|
||||
M("dread_shard", "iceandfire", "crystal", "Dread", "iceandfire:dread_shard",
|
||||
[{"item": "iceandfire:dread_shard", "value": 1.0}],
|
||||
tier=5, hardness=6.4, density=3.0, flexibility=2, durability=1100,
|
||||
enchantability=16, mining_speed=8, toughness=2, armor_durability=28,
|
||||
groups=("crystal", "metal"), textures=("crystal", "rough"),
|
||||
properties={"handheld": {"leeching": "1"}}),
|
||||
|
||||
M("ghost_ingot", "iceandfire", "metal", "Phantasmal", "iceandfire:ghost_ingot",
|
||||
[{"item": "iceandfire:ghost_ingot", "value": 1.0}],
|
||||
tier=5, hardness=6.0, density=0.6, flexibility=5, durability=1300,
|
||||
enchantability=26, mining_speed=10, toughness=2, armor_durability=28,
|
||||
textures=("emissive", "metallic"),
|
||||
properties={"default": {"emissive": {"sky": 6, "block": 6}},
|
||||
"handheld": speed(0.12)}),
|
||||
# Almost no density: the fastest-swinging material here.
|
||||
|
||||
M("dragonsteel_fire", "iceandfire", "metal", "Fire Dragonsteel",
|
||||
"iceandfire:dragonsteel_fire_ingot",
|
||||
[{"item": "iceandfire:dragonsteel_fire_ingot", "value": 1.0},
|
||||
{"item": "iceandfire:dragonsteel_fire_block", "value": BLOCK}],
|
||||
tier=7, hardness=9.0, density=4.0, flexibility=3, durability=3600,
|
||||
enchantability=18, mining_speed=13, toughness=5, armor_durability=50,
|
||||
armor_toughness=5.0, textures=("emissive", "metallic"),
|
||||
properties={"default": {"fire_proof": True,
|
||||
"emissive": {"sky": 6, "block": 6}},
|
||||
"handheld": {"immolate": "3"}}),
|
||||
|
||||
M("dragonsteel_ice", "iceandfire", "metal", "Ice Dragonsteel",
|
||||
"iceandfire:dragonsteel_ice_ingot",
|
||||
[{"item": "iceandfire:dragonsteel_ice_ingot", "value": 1.0},
|
||||
{"item": "iceandfire:dragonsteel_ice_block", "value": BLOCK}],
|
||||
tier=7, hardness=8.8, density=4.2, flexibility=3, durability=3600,
|
||||
enchantability=18, mining_speed=13, toughness=5, armor_durability=50,
|
||||
armor_toughness=5.0, textures=("metallic", "bright"),
|
||||
properties={"armor": {"fake_item_tag": ["minecraft:freeze_immune_wearables"]},
|
||||
"boot": {"can_walk_on_snow": True}}),
|
||||
|
||||
M("dragonsteel_lightning", "iceandfire", "metal", "Lightning Dragonsteel",
|
||||
"iceandfire:dragonsteel_lightning_ingot",
|
||||
[{"item": "iceandfire:dragonsteel_lightning_ingot", "value": 1.0},
|
||||
{"item": "iceandfire:dragonsteel_lightning_block", "value": BLOCK}],
|
||||
tier=7, hardness=8.8, density=3.4, flexibility=4, durability=3600,
|
||||
enchantability=20, mining_speed=14, toughness=5, armor_durability=50,
|
||||
armor_toughness=5.0, textures=("emissive", "metallic"),
|
||||
properties={"default": {"emissive": {"sky": 8, "block": 8}},
|
||||
"handheld": speed(0.15)}),
|
||||
# The three dragonsteels share a stat line and differ only in behaviour,
|
||||
# exactly how Ice and Fire treats them.
|
||||
|
||||
M("troll_leather_forest", "iceandfire", "fabric", "Forest Troll Leather",
|
||||
"iceandfire:troll_leather_forest",
|
||||
[{"item": "iceandfire:troll_leather_forest", "value": 1.0}],
|
||||
tier=3, hardness=3.6, density=1.8, flexibility=5, durability=400,
|
||||
enchantability=12, mining_speed=0, toughness=2, armor_durability=22,
|
||||
groups=("fabric", "leather"), textures=("fabric",),
|
||||
mining_level=MINING_LEVEL[1],
|
||||
properties={"armor": {"fake_enchants": {"minecraft:projectile_protection": 2}}}),
|
||||
|
||||
M("troll_leather_frost", "iceandfire", "fabric", "Frost Troll Leather",
|
||||
"iceandfire:troll_leather_frost",
|
||||
[{"item": "iceandfire:troll_leather_frost", "value": 1.0}],
|
||||
tier=3, hardness=3.6, density=1.8, flexibility=5, durability=400,
|
||||
enchantability=12, mining_speed=0, toughness=2, armor_durability=22,
|
||||
groups=("fabric", "leather"), textures=("fabric",),
|
||||
mining_level=MINING_LEVEL[1],
|
||||
properties={"armor": {"fake_enchants": {"minecraft:projectile_protection": 2},
|
||||
"fake_item_tag": ["minecraft:freeze_immune_wearables"]},
|
||||
"boot": {"can_walk_on_snow": True}}),
|
||||
|
||||
M("troll_leather_mountain", "iceandfire", "fabric", "Mountain Troll Leather",
|
||||
"iceandfire:troll_leather_mountain",
|
||||
[{"item": "iceandfire:troll_leather_mountain", "value": 1.0}],
|
||||
tier=3, hardness=3.6, density=1.8, flexibility=5, durability=400,
|
||||
enchantability=12, mining_speed=0, toughness=2, armor_durability=22,
|
||||
groups=("fabric", "leather"), textures=("fabric",),
|
||||
mining_level=MINING_LEVEL[1],
|
||||
properties={"armor": {"fake_enchants": {"minecraft:projectile_protection": 2}}}),
|
||||
# Ice and Fire's troll armour cuts projectile damage; projectile
|
||||
# protection is the closest MIAPI-native equivalent.
|
||||
|
||||
M("stymphalian_feather", "iceandfire", "fletching", "Stymphalian",
|
||||
"iceandfire:stymphalian_bird_feather",
|
||||
[{"item": "iceandfire:stymphalian_bird_feather", "value": 1.0},
|
||||
{"item": "iceandfire:stymphalian_feather_bundle", "value": 4.0}],
|
||||
tier=3, hardness=3.4, density=0.4, flexibility=6, durability=140,
|
||||
enchantability=15, mining_speed=0, armor_durability=8,
|
||||
groups=("fletching", "feather"), textures=("feather",),
|
||||
mining_level=MINING_LEVEL[1]),
|
||||
# Metal feathers - sharper than a normal fletching, hence the hardness.
|
||||
|
||||
M("amphithere_feather", "iceandfire", "fletching", "Amphithere",
|
||||
"iceandfire:amphithere_feather",
|
||||
[{"item": "iceandfire:amphithere_feather", "value": 1.0}],
|
||||
tier=3, hardness=2.6, density=0.3, flexibility=7, durability=120,
|
||||
enchantability=18, mining_speed=0, armor_durability=8,
|
||||
groups=("fletching", "feather"), textures=("feather",),
|
||||
mining_level=MINING_LEVEL[1]),
|
||||
|
||||
# -------------------------------------------------- Iron's Spells 'n Spellbooks
|
||||
# The two essences are gems and deliberately strong: they are worth using
|
||||
# over a tier-6 metal only because of what they grant, since their raw
|
||||
# numbers are no better and their durability is worse.
|
||||
M("arcane_essence", "irons_spellbooks", "crystal", "Arcane",
|
||||
"irons_spellbooks:arcane_essence",
|
||||
[{"item": "irons_spellbooks:arcane_essence", "value": 1.0}],
|
||||
tier=6, hardness=6.8, density=1.4, flexibility=5, durability=2400,
|
||||
enchantability=32, mining_speed=11, toughness=3, armor_durability=38,
|
||||
armor_toughness=2.5, groups=("crystal", "gem"), textures=("crystal", "bright"),
|
||||
properties={
|
||||
"default": {"emissive": {"sky": 6, "block": 6}},
|
||||
"armor": {"attributes": [
|
||||
# Per armour piece, so a full set is roughly +400 on top of the
|
||||
# 100 base pool Iron's Spells gives a player.
|
||||
attribute("irons_spellbooks:max_mana", 100, "armor"),
|
||||
attribute("irons_spellbooks:mana_regen", 0.15, "armor", "*"),
|
||||
]},
|
||||
"handheld": {"attributes": [
|
||||
attribute("irons_spellbooks:spell_power", 0.10, "mainhand", "*"),
|
||||
attribute("irons_spellbooks:cooldown_reduction", 0.05, "mainhand", "*"),
|
||||
]},
|
||||
}),
|
||||
|
||||
M("cinder_essence", "irons_spellbooks", "crystal", "Cinder",
|
||||
"irons_spellbooks:cinder_essence",
|
||||
[{"item": "irons_spellbooks:cinder_essence", "value": 1.0}],
|
||||
tier=6, hardness=7.4, density=2.6, flexibility=3, durability=2400,
|
||||
enchantability=20, mining_speed=11, toughness=4, armor_durability=40,
|
||||
armor_toughness=3.0, groups=("crystal", "gem"), textures=("emissive", "crystal"),
|
||||
properties={
|
||||
"default": {"fire_proof": True, "emissive": {"sky": 8, "block": 8}},
|
||||
# One armour piece is enough: the handler treats anything at or above
|
||||
# 1 as immune, so this is genuine immunity rather than a resistance
|
||||
# that stacks up to it.
|
||||
"armor": {"attributes": [
|
||||
attribute(FIRE_IMMUNITY, 1, "armor"),
|
||||
attribute("irons_spellbooks:fire_magic_resist", 0.20, "armor", "*"),
|
||||
]},
|
||||
"handheld": {
|
||||
"immolate": "3",
|
||||
"attributes": [attribute("irons_spellbooks:fire_spell_power", 0.20,
|
||||
"mainhand", "*")],
|
||||
},
|
||||
}),
|
||||
|
||||
# The mod's three craftable metals, for completeness - ordinary materials
|
||||
# that happen to sit late in its progression.
|
||||
M("mithril", "irons_spellbooks", "metal", "Mithril",
|
||||
"irons_spellbooks:mithril_ingot",
|
||||
[{"item": "irons_spellbooks:mithril_ingot", "value": 1.0}],
|
||||
tier=5, hardness=6.4, density=1.2, flexibility=4, durability=1800,
|
||||
enchantability=24, mining_speed=11, toughness=3, armor_durability=36,
|
||||
armor_toughness=2.0, textures=("metallic", "bright"),
|
||||
properties={"handheld": speed(0.12)}),
|
||||
# Light enough to swing fast and enchant well, in the Tolkien sense.
|
||||
|
||||
M("arcane_metal", "irons_spellbooks", "metal", "Arcane Steel",
|
||||
"irons_spellbooks:arcane_ingot",
|
||||
[{"item": "irons_spellbooks:arcane_ingot", "value": 1.0}],
|
||||
tier=5, hardness=6.2, density=2.8, flexibility=3, durability=1700,
|
||||
enchantability=26, mining_speed=9, toughness=3, armor_durability=34,
|
||||
armor_toughness=2.0,
|
||||
properties={"handheld": {"attributes": [
|
||||
attribute("irons_spellbooks:spell_power", 0.05, "mainhand", "*")]}}),
|
||||
|
||||
# --------------------------------- Aeronautics: Interstellar Expansion (vsie)
|
||||
# Mostly a machinery mod; these are the three items that are a material
|
||||
# rather than a component. Solid E-710 is deliberately left out - it is
|
||||
# rocket fuel, not something to build a tool out of.
|
||||
M("microlattice", "interstellar", "metal", "Microlattice",
|
||||
"vsie:metalic_microlattice",
|
||||
[{"item": "vsie:metalic_microlattice", "value": 1.0}],
|
||||
tier=5, hardness=5.2, density=0.3, flexibility=7, durability=1400,
|
||||
enchantability=20, mining_speed=9, toughness=2, armor_durability=34,
|
||||
armor_toughness=1.5, textures=("metallic", "bright"),
|
||||
properties={"handheld": speed(0.18)}),
|
||||
# Real metallic microlattice is 99.99% air and lighter than styrofoam.
|
||||
# Lowest density and fastest swing of any metal here, which is the whole
|
||||
# reason to pick it - it will never out-hit osmium.
|
||||
|
||||
M("silicon_carbide", "interstellar", "crystal", "Silicon Carbide",
|
||||
"vsie:silicon_carbide",
|
||||
[{"item": "vsie:silicon_carbide", "value": 1.0}],
|
||||
tier=5, hardness=7.6, density=2.4, flexibility=0, durability=1300,
|
||||
enchantability=12, mining_speed=13, toughness=3, armor_durability=34,
|
||||
armor_toughness=3.0, groups=("crystal",), textures=("crystal", "rough"),
|
||||
properties={"default": {"fire_proof": True}}),
|
||||
# A ceramic: nearly as hard as diamond and the industrial abrasive of
|
||||
# choice, hence the mining speed - but brittle, so no flex and less
|
||||
# durability than its tier would suggest.
|
||||
|
||||
M("computronic_substrate", "interstellar", "metal", "Computronic",
|
||||
"vsie:computronic_substrate",
|
||||
[{"item": "vsie:computronic_substrate", "value": 1.0}],
|
||||
tier=5, hardness=4.6, density=1.8, flexibility=3, durability=1100,
|
||||
enchantability=28, mining_speed=9, toughness=2, armor_durability=28,
|
||||
textures=("emissive", "metallic"),
|
||||
properties={"default": {"emissive": {"sky": 4, "block": 4}},
|
||||
"tool": {"luminious_learning": "1"}}),
|
||||
# Soft and unimpressive as a weapon; it is here for enchantability.
|
||||
|
||||
M("pyrium", "irons_spellbooks", "metal", "Pyrium",
|
||||
"irons_spellbooks:pyrium_ingot",
|
||||
[{"item": "irons_spellbooks:pyrium_ingot", "value": 1.0}],
|
||||
tier=5, hardness=6.8, density=3.4, flexibility=2, durability=1750,
|
||||
enchantability=18, mining_speed=9, toughness=3, armor_durability=36,
|
||||
armor_toughness=2.0, textures=("emissive", "metallic"),
|
||||
properties={"default": {"fire_proof": True,
|
||||
"emissive": {"sky": 5, "block": 5}},
|
||||
"handheld": {"immolate": "2"}}),
|
||||
]
|
||||
|
||||
|
||||
# --------------------------------------------------------------------- scales
|
||||
# Generated rather than written out: colours differ only in palette, which is
|
||||
# read from each colour's own texture. Stats and behaviour follow the element.
|
||||
|
||||
DRAGON_SCALE_ELEMENTS = {
|
||||
"fire": ["red", "bronze", "green", "gray"],
|
||||
"ice": ["blue", "white", "sapphire", "silver"],
|
||||
"lightning": ["electric", "amethyst", "copper", "black"],
|
||||
}
|
||||
|
||||
DRAGON_SCALE_PROPERTIES = {
|
||||
"fire": {"default": {"fire_proof": True},
|
||||
"armor": {"fake_enchants": {"minecraft:fire_protection": 2}}},
|
||||
"ice": {"armor": {"fake_item_tag": ["minecraft:freeze_immune_wearables"]},
|
||||
"boot": {"can_walk_on_snow": True}},
|
||||
"lightning": {"default": {"emissive": {"sky": 5, "block": 5}},
|
||||
"handheld": speed(0.08)},
|
||||
}
|
||||
|
||||
SEA_SERPENT_COLORS = ["blue", "bronze", "deepblue", "green", "purple", "red", "teal"]
|
||||
DEATHWORM_COLORS = {"red": "Red", "white": "White", "yellow": "Tan"}
|
||||
|
||||
|
||||
def _scales():
|
||||
out = []
|
||||
for element, colors in DRAGON_SCALE_ELEMENTS.items():
|
||||
for color in colors:
|
||||
out.append(M(
|
||||
f"dragonscales_{color}", "iceandfire", "scute",
|
||||
f"{color.replace('_', ' ').title()} Dragonscale",
|
||||
f"iceandfire:dragonscales_{color}",
|
||||
[{"item": f"iceandfire:dragonscales_{color}", "value": 1.0},
|
||||
{"item": f"iceandfire:dragonscale_{color}", "value": BLOCK}],
|
||||
tier=5, hardness=6.0, density=2.6, flexibility=4, durability=1500,
|
||||
enchantability=15, mining_speed=7, toughness=4,
|
||||
armor_durability=44, armor_toughness=3.5,
|
||||
mining_level=MINING_LEVEL[4],
|
||||
groups=("scute",), textures=("rough", "shiny"),
|
||||
properties=DRAGON_SCALE_PROPERTIES[element]))
|
||||
# Armour-first, like Tinkers' ancient hide: high toughness and
|
||||
# armour durability, unremarkable as a cutting edge.
|
||||
for color in SEA_SERPENT_COLORS:
|
||||
out.append(M(
|
||||
f"sea_serpent_scales_{color}", "iceandfire", "scute",
|
||||
f"{color.replace('deepblue', 'deep blue').title()} Serpent Scale",
|
||||
f"iceandfire:sea_serpent_scales_{color}",
|
||||
[{"item": f"iceandfire:sea_serpent_scales_{color}", "value": 1.0},
|
||||
{"item": f"iceandfire:sea_serpent_scale_block_{color}", "value": BLOCK}],
|
||||
tier=4, hardness=5.4, density=2.4, flexibility=5, durability=950,
|
||||
enchantability=16, mining_speed=6, toughness=3,
|
||||
armor_durability=32, armor_toughness=2.5,
|
||||
groups=("scute",), textures=("rough", "shiny"),
|
||||
properties={"armor": {"fake_enchants": {"minecraft:respiration": 1}},
|
||||
"boot": {"fake_enchants": {"minecraft:depth_strider": 1}}}))
|
||||
for color, label in DEATHWORM_COLORS.items():
|
||||
out.append(M(
|
||||
f"deathworm_chitin_{color}", "iceandfire", "scute",
|
||||
f"{label} Chitin", f"iceandfire:deathworm_chitin_{color}",
|
||||
[{"item": f"iceandfire:deathworm_chitin_{color}", "value": 1.0}],
|
||||
tier=4, hardness=5.6, density=2.2, flexibility=4, durability=880,
|
||||
enchantability=13, mining_speed=6, toughness=3,
|
||||
armor_durability=30, armor_toughness=2.0,
|
||||
groups=("scute",), textures=("rough",),
|
||||
properties={"default": {"fire_proof": True}}))
|
||||
# Desert worms, so heat immunity comes with the shell.
|
||||
return out
|
||||
|
||||
|
||||
MATERIALS.extend(_scales())
|
||||
|
||||
|
||||
# Extensions add data to a material that already exists rather than replacing it.
|
||||
# Ice and Fire's amethyst is the same stone MIAPI already ships, so it just
|
||||
# becomes another way to craft it.
|
||||
EXTENSIONS = [
|
||||
{
|
||||
"pack": "iceandfire",
|
||||
"path": "crystal/amethyst",
|
||||
"data": {
|
||||
"key": "miapi:crystal/amethyst",
|
||||
"items": [{"item": "iceandfire:amethyst_gem", "value": 1.0}],
|
||||
},
|
||||
},
|
||||
]
|
||||
Loading…
Reference in New Issue