Added 1.13.2 code base. Reordered directory structure to combine independent MC version code bases. Rewritten auxilliary build scripts.
32
1.12/.gitignore
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
bin
|
||||
*.launch
|
||||
.settings
|
||||
.metadata
|
||||
.classpath
|
||||
.project
|
||||
out
|
||||
*.ipr
|
||||
*.iws
|
||||
*.iml
|
||||
.idea
|
||||
build
|
||||
.gradle
|
||||
*.tmp
|
||||
*.log
|
||||
*.jks
|
||||
eclipse
|
||||
run
|
||||
tests
|
||||
/dist
|
||||
signing.*
|
||||
src/main/java/archive
|
||||
src/main/resources/assets/minecraft
|
||||
.vscode
|
||||
/classes
|
||||
/dev
|
||||
/tmp
|
||||
/archive
|
||||
/assets-src
|
||||
.gimp
|
||||
*.xcf
|
||||
desktop.ini
|
98
1.12/Makefile
Normal file
|
@ -0,0 +1,98 @@
|
|||
# @file Makefile
|
||||
# @author Stefan Wilhelm (wile)
|
||||
# @license MIT
|
||||
#
|
||||
# GNU Make makefile for, well, speeding
|
||||
# up the development a bit.
|
||||
# You very likely need some tools installed
|
||||
# to use all build targets, so this file is
|
||||
# not "official". If you work on windows and
|
||||
# install GIT with complete shell PATH (the
|
||||
# red marked option in the GIT installer) you
|
||||
# should have the needed unix tools available.
|
||||
# For image stripping install imagemagick and
|
||||
# also put the "magick" executable in the PATH.
|
||||
#
|
||||
MOD_JAR_PREFIX=engineersdecor-
|
||||
MOD_JAR=$(filter-out %-sources.jar,$(wildcard build/libs/${MOD_JAR_PREFIX}*.jar))
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
GRADLE=gradlew.bat --no-daemon
|
||||
GRADLE_STOP=gradlew.bat --stop
|
||||
INSTALL_DIR=$(realpath ${APPDATA}/.minecraft)
|
||||
SERVER_INSTALL_DIR=$(realpath ${APPDATA}/minecraft-server-forge-1.12.2-14.23.5.2768)
|
||||
DJS=djs
|
||||
else
|
||||
GRADLE=./gradlew --no-daemon
|
||||
GRADLE_STOP=./gradlew --stop
|
||||
INSTALL_DIR=~/.minecraft
|
||||
SERVER_INSTALL_DIR=~/.minecraft-server-forge-1.12.2-14.23.5.2768
|
||||
DJS=djs
|
||||
endif
|
||||
|
||||
wildcardr=$(foreach d,$(wildcard $1*),$(call wildcardr,$d/,$2) $(filter $(subst *,%,$2),$d))
|
||||
|
||||
#
|
||||
# Targets
|
||||
#
|
||||
.PHONY: default mod init clean clean-all all run install sanatize dist-check dist start-server
|
||||
|
||||
default: mod
|
||||
|
||||
all: clean clean-all mod | install
|
||||
|
||||
mod:
|
||||
@echo "[1.12] Building mod using gradle ..."
|
||||
@$(GRADLE) build $(GRADLE_OPTS)
|
||||
|
||||
clean:
|
||||
@echo "[1.12] Cleaning ..."
|
||||
@rm -f build/libs/*
|
||||
@$(GRADLE) clean
|
||||
|
||||
clean-all: clean
|
||||
@echo "[1.12] Cleaning using gradle ..."
|
||||
@rm -f dist/*
|
||||
@$(GRADLE) clean cleanCache
|
||||
|
||||
init:
|
||||
@echo "[1.12] Initialising eclipse workspace using gradle ..."
|
||||
@$(GRADLE) setupDecompWorkspace
|
||||
|
||||
run:
|
||||
@echo "[1.12] Running client ..."
|
||||
@$(GRADLE) runClient
|
||||
|
||||
install: $(MOD_JAR) |
|
||||
@sleep 2s
|
||||
@if [ ! -d "$(INSTALL_DIR)" ]; then echo "Cannot find installation minecraft directory."; false; fi
|
||||
@echo "[1.12] Installing '$(MOD_JAR)' to '$(INSTALL_DIR)/mods' ..."
|
||||
@[ -d "$(INSTALL_DIR)/mods" ] || mkdir "$(INSTALL_DIR)/mods"
|
||||
@rm -f "$(INSTALL_DIR)/mods/${MOD_JAR_PREFIX}"*.jar
|
||||
@cp -f "$(MOD_JAR)" "$(INSTALL_DIR)/mods/"
|
||||
@echo "[1.12] Installing '$(MOD_JAR)' to '$(SERVER_INSTALL_DIR)/mods' ..."
|
||||
@rm -f "$(SERVER_INSTALL_DIR)/mods/${MOD_JAR_PREFIX}"*.jar
|
||||
@[ -d "$(SERVER_INSTALL_DIR)/mods" ] && cp -f "$(MOD_JAR)" "$(SERVER_INSTALL_DIR)/mods/"
|
||||
|
||||
start-server: install
|
||||
@echo "[1.12] Starting local dedicated server ..."
|
||||
@cd "$(SERVER_INSTALL_DIR)" && java -jar forge-1.12.2-14.23.5.2768-universal.jar nogui
|
||||
|
||||
sanatize:
|
||||
@echo "[1.12] Running sanatising tasks ..."
|
||||
@djs tasks.js trailing-whitespaces
|
||||
@djs tasks.js tabs-to-spaces
|
||||
@djs tasks.js sync-languages
|
||||
@djs tasks.js version-check
|
||||
@djs tasks.js update-json
|
||||
@git status -s .
|
||||
|
||||
dist-check:
|
||||
@echo "[1.12] Running dist checks ..."
|
||||
@djs tasks.js dist-check
|
||||
|
||||
dist: sanatize dist-check clean-all mod
|
||||
@echo "[1.12] Distribution files ..."
|
||||
@mkdir -p dist
|
||||
@cp build/libs/$(MOD_JAR_PREFIX)* dist/
|
||||
@djs tasks.js dist
|
76
1.12/build.gradle
Normal file
|
@ -0,0 +1,76 @@
|
|||
// @file build.gradle
|
||||
// Engineer's decor mod gradle build relay (mc1.12.2)
|
||||
//
|
||||
buildscript {
|
||||
repositories {
|
||||
jcenter()
|
||||
maven { url = "http://files.minecraftforge.net/maven" }
|
||||
}
|
||||
dependencies {
|
||||
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
apply plugin: 'net.minecraftforge.gradle.forge'
|
||||
sourceCompatibility = targetCompatibility = '1.8'
|
||||
compileJava { // Need this here so eclipse task generates correctly.
|
||||
sourceCompatibility = targetCompatibility = '1.8'
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
version = "${version_engineersdecor}"
|
||||
group = "wile.engineersdecor"
|
||||
archivesBaseName = "engineersdecor-${version_minecraft}"
|
||||
|
||||
def signing = { ->
|
||||
def sp = new Properties()
|
||||
if(file("signing.properties").exists()) file("signing.properties").withInputStream { sp.load(it) }
|
||||
return sp
|
||||
}()
|
||||
|
||||
def git_version = { ->
|
||||
def stdout = new ByteArrayOutputStream()
|
||||
exec {
|
||||
commandLine 'git', 'log', '-1', '--format=%h'
|
||||
standardOutput = stdout
|
||||
}
|
||||
return stdout.toString().trim()
|
||||
}()
|
||||
|
||||
minecraft {
|
||||
version = "${version_minecraft}-${version_forge}"
|
||||
runDir = "run"
|
||||
mappings = "stable_39"
|
||||
replace '@MOD_BUILDID@', "#${git_version}"
|
||||
replace '@MOD_SIGNSHA1@', signing.getProperty('fingerprint_sha1')
|
||||
replace '@MOD_VERSION@', "${version_engineersdecor}"
|
||||
replace '@MOD_MCVERSION@', "${version_minecraft}"
|
||||
replaceIn "ModEngineersDecor.java"
|
||||
}
|
||||
|
||||
dependencies {
|
||||
}
|
||||
|
||||
processResources {
|
||||
inputs.property "version", project.version
|
||||
inputs.property "mcversion", project.minecraft.version
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
include 'mcmod.info'
|
||||
expand 'version':project.version, 'mcversion':project.minecraft.version
|
||||
}
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
exclude 'mcmod.info'
|
||||
}
|
||||
}
|
||||
|
||||
task signJar(type: SignJar, dependsOn: reobfJar) {
|
||||
onlyIf { signing.getProperty("keystore_file"); }
|
||||
keyStore = signing.getProperty("keystore_file")
|
||||
alias = signing.getProperty("keystore_alias")
|
||||
storePass = signing.getProperty("keystore_pass")
|
||||
keyPass = signing.getProperty("keystore_keypass")
|
||||
inputFile = jar.archivePath
|
||||
outputFile = jar.archivePath
|
||||
}
|
||||
build.dependsOn signJar
|
||||
|
||||
// EOF
|
14
1.12/gradle.properties
Normal file
|
@ -0,0 +1,14 @@
|
|||
# @file gradle.properties
|
||||
org.gradle.daemon=false
|
||||
org.gradle.jvmargs=-Xmx8G
|
||||
version_minecraft=1.12.2
|
||||
version_forge=14.23.5.2768
|
||||
version_engineersdecor=1.0.0
|
||||
#
|
||||
# jar signing data loaded from signing.properties in the project root.
|
||||
#
|
||||
#signing.keystore_file=
|
||||
#signing.keystore_alias=
|
||||
#signing.keystore_pass=
|
||||
#signing.keystore_keypass=
|
||||
#fingerprint_sha1.fp_sha1=
|
BIN
1.12/gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
6
1.12/gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
#Sun Nov 25 15:35:29 CET 2018
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-bin.zip
|
164
1.12/gradlew
vendored
Normal file
|
@ -0,0 +1,164 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn ( ) {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die ( ) {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
|
||||
function splitJvmOpts() {
|
||||
JVM_OPTS=("$@")
|
||||
}
|
||||
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
|
||||
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
|
||||
|
||||
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
|
90
1.12/gradlew.bat
vendored
Normal file
|
@ -0,0 +1,90 @@
|
|||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@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=
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
if "%@eval[2+2]" == "4" goto 4NT_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
goto execute
|
||||
|
||||
:4NT_args
|
||||
@rem Get arguments from the 4NT Shell from JP Software
|
||||
set CMD_LINE_ARGS=%$
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
14
1.12/meta/update.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"homepage": "https://www.curseforge.com/minecraft/mc-mods/engineers-decor/",
|
||||
"1.12.2": {
|
||||
"1.0.0": "[R] Release based on v1.0.0-b4",
|
||||
"1.0.0-b4": "[F] Fixed vanished recipe for the rebar concrete wall.\n[A] Concrete wall, material: IE concrete.",
|
||||
"1.0.0-b3": "[A] Textures of rebar concrete and treated wood table improved.\n[A] Added rebar concrete wall.",
|
||||
"1.0.0-b2": "[A] Added rebar concrete (steel reinforced, expensive, creeper-proof).",
|
||||
"1.0.0-b1": "[A] Initial structure.\n[A] Added clinker bricks and clinker brick stairs.\n[A] Added slag bricks and slag brick stairs.\n[A] Added metal rung ladder.\n[A] Added staggered metal steps ladder.\n[A] Added treated wood ladder.\n[A] Added treated wood pole.\n[A] Added treated wood table."
|
||||
},
|
||||
"promos": {
|
||||
"1.12.2-recommended": "1.0.0",
|
||||
"1.12.2-latest": "1.0.0"
|
||||
}
|
||||
}
|
34
1.12/readme.md
Normal file
|
@ -0,0 +1,34 @@
|
|||
|
||||
## Engineer's Decor (MC1.12.2)
|
||||
|
||||
Mod sources for Minecraft version 1.12.2.
|
||||
|
||||
- Description, credits, and features: Please see the readme in the repository root.
|
||||
|
||||
- Compiled mod distribution channel is curseforge: https://www.curseforge.com/minecraft/mc-mods/engineers-decor/files.
|
||||
|
||||
----
|
||||
## Revision history
|
||||
|
||||
-------------------------------------------------------------------
|
||||
- v1.0.0 [R] Release based on v1.0.0-b4
|
||||
-------------------------------------------------------------------
|
||||
|
||||
- v1.0.0-b4 [F] Fixed vanished recipe for the rebar concrete wall.
|
||||
[A] Concrete wall, material: IE concrete.
|
||||
|
||||
- v1.0.0-b3 [A] Textures of rebar concrete and treated wood table improved.
|
||||
[A] Added rebar concrete wall.
|
||||
|
||||
- v1.0.0-b2 [A] Added rebar concrete (steel reinforced, expensive, creeper-proof).
|
||||
|
||||
- v1.0.0-b1 [A] Initial structure.
|
||||
[A] Added clinker bricks and clinker brick stairs.
|
||||
[A] Added slag bricks and slag brick stairs.
|
||||
[A] Added metal rung ladder.
|
||||
[A] Added staggered metal steps ladder.
|
||||
[A] Added treated wood ladder.
|
||||
[A] Added treated wood pole.
|
||||
[A] Added treated wood table.
|
||||
|
||||
----
|
108
1.12/src/main/java/wile/engineersdecor/ModEngineersDecor.java
Normal file
|
@ -0,0 +1,108 @@
|
|||
/*
|
||||
* @file ModEngineersDecor.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Main mod class.
|
||||
*/
|
||||
package wile.engineersdecor;
|
||||
|
||||
import wile.engineersdecor.detail.ModConfig;
|
||||
import wile.engineersdecor.blocks.ModBlocks;
|
||||
import net.minecraftforge.client.event.ModelRegistryEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.common.SidedProxy;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
@Mod(
|
||||
modid = ModEngineersDecor.MODID,
|
||||
name = ModEngineersDecor.MODNAME,
|
||||
version = ModEngineersDecor.MODVERSION,
|
||||
dependencies = "required-after:forge@[14.23.5.2768,);before:immersiveengineering",
|
||||
useMetadata = true,
|
||||
updateJSON = "https://raw.githubusercontent.com/stfwi/engineersdecor/develop/meta/update.json",
|
||||
certificateFingerprint = ((ModEngineersDecor.MODFINGERPRINT==("@"+"MOD_SIGNSHA1"+"@")) ? "" : ModEngineersDecor.MODFINGERPRINT)
|
||||
)
|
||||
@SuppressWarnings({"unused", "ConstantConditions"})
|
||||
public class ModEngineersDecor
|
||||
{
|
||||
public static final String MODID = "engineersdecor";
|
||||
public static final String MODNAME = "Engineer's Decor";
|
||||
public static final String MODVERSION = "@MOD_VERSION@";
|
||||
public static final String MODMCVERSION = "@MOD_MCVERSION@";
|
||||
public static final String MODFINGERPRINT = "@MOD_SIGNSHA1@";
|
||||
public static final String MODBUILDID = "@MOD_BUILDID@";
|
||||
public static Logger logger;
|
||||
|
||||
@Mod.Instance
|
||||
public static ModEngineersDecor instance;
|
||||
|
||||
@SidedProxy(clientSide = "wile.engineersdecor.detail.ClientProxy", serverSide = "wile.engineersdecor.detail.ServerProxy")
|
||||
public static IProxy proxy;
|
||||
|
||||
public interface IProxy
|
||||
{
|
||||
default void preInit(FMLPreInitializationEvent e) {}
|
||||
default void init(FMLInitializationEvent e) {}
|
||||
default void postInit(FMLPostInitializationEvent e) {}
|
||||
}
|
||||
|
||||
@Mod.EventHandler
|
||||
public void preInit(FMLPreInitializationEvent event)
|
||||
{
|
||||
logger = event.getModLog();
|
||||
logger.info(MODNAME + ": Version " + MODMCVERSION + "-" + MODVERSION + ( (MODBUILDID=="@"+"MOD_BUILDID"+"@") ? "" : (" "+MODBUILDID) ) + ".");
|
||||
if(MODFINGERPRINT=="@"+"MOD_SIGNSHA1"+"@") {
|
||||
logger.warn(MODNAME + ": Mod is NOT signed by the author.");
|
||||
} else {
|
||||
logger.info(MODNAME + ": Found valid fingerprint " + MODFINGERPRINT + ".");
|
||||
}
|
||||
proxy.preInit(event);
|
||||
}
|
||||
|
||||
@Mod.EventHandler
|
||||
public void init(FMLInitializationEvent event)
|
||||
{ proxy.init(event); }
|
||||
|
||||
@Mod.EventHandler
|
||||
public void postInit(FMLPostInitializationEvent event)
|
||||
{ ModConfig.onPostInit(event); proxy.postInit(event); }
|
||||
|
||||
@Mod.EventBusSubscriber
|
||||
public static final class RegistrationSubscriptions
|
||||
{
|
||||
@SubscribeEvent
|
||||
public static void registerBlocks(RegistryEvent.Register<Block> event)
|
||||
{ ModBlocks.registerBlocks(event); }
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerItems(RegistryEvent.Register<Item> event)
|
||||
{ ModBlocks.registerItemBlocks(event); }
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SubscribeEvent
|
||||
public static void registerModels(ModelRegistryEvent event)
|
||||
{ ModBlocks.initModels(); }
|
||||
}
|
||||
|
||||
public static final CreativeTabs CREATIVE_TAB_ENGINEERSDECOR = (new CreativeTabs("tabengineersdecor") {
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public @Nonnull ItemStack createIcon()
|
||||
{ return new ItemStack(ModBlocks.TREATED_WOOD_LADDER); }
|
||||
});
|
||||
|
||||
}
|
163
1.12/src/main/java/wile/engineersdecor/blocks/BlockDecor.java
Normal file
|
@ -0,0 +1,163 @@
|
|||
/*
|
||||
* @file BlockDecorFull.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Common functionality class for decor blocks.
|
||||
* Mainly needed for:
|
||||
* - MC block defaults.
|
||||
* - Tooltip functionality
|
||||
* - Model initialisation
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.util.*;
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import wile.engineersdecor.detail.ModAuxiliaries;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.EnumPushReaction;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.client.util.ITooltipFlag;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
public class BlockDecor extends Block
|
||||
{
|
||||
|
||||
// The config combines some aspects of blocks, allowing to define different behaviour at construction time, without excessive polymorphy.
|
||||
// It's an old school flag set as it is used internally only and shall not have as littlt impact on performance as possible.
|
||||
public final long config;
|
||||
public static final long CFG_CUTOUT = 0x0000000000000001L; // cutout rendering
|
||||
public static final long CFG_HORIZIONTAL = 0x0000000000000002L; // horizontal block, affects bounding box calculation at construction time
|
||||
public static final long CFG_HORIZIONTAL_PLACEMENT = 0x0000000000000004L; // placed in the horizontzal direction the player is looking when placing.
|
||||
public static final long CFG_WALL_DOOR_CONNECTION = 0x0000000000000008L; // wall block connects to fence gates and doors.
|
||||
|
||||
public BlockDecor(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound)
|
||||
{
|
||||
super((material!=null) ? (material) : (Material.IRON));
|
||||
setCreativeTab(ModEngineersDecor.CREATIVE_TAB_ENGINEERSDECOR);
|
||||
setRegistryName(ModEngineersDecor.MODID, registryName);
|
||||
setTranslationKey(ModEngineersDecor.MODID + "." + registryName);
|
||||
setTickRandomly(false);
|
||||
setHardness((hardness > 0) ? hardness : 5.0f);
|
||||
setResistance((resistance > 0) ? resistance : 10.0f);
|
||||
setSoundType((sound==null) ? SoundType.STONE : sound);
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
@SuppressWarnings("deprecation")
|
||||
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
{ return getBoundingBox(state, world, pos); }
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag)
|
||||
{ ModAuxiliaries.Tooltip.addInformation(stack, world, tooltip, flag, true); }
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public BlockRenderLayer getRenderLayer()
|
||||
{ return ((config & CFG_CUTOUT)!=0) ? BlockRenderLayer.CUTOUT : BlockRenderLayer.SOLID; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isFullCube(IBlockState state)
|
||||
{ return ((config & CFG_CUTOUT)==0); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isNormalCube(IBlockState state)
|
||||
{ return ((config & CFG_CUTOUT)==0); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isOpaqueCube(IBlockState state)
|
||||
{ return ((config & CFG_CUTOUT)==0); }
|
||||
|
||||
@Override
|
||||
public boolean canSpawnInBlock()
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public EnumPushReaction getPushReaction(IBlockState state)
|
||||
{ return EnumPushReaction.NORMAL; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState getStateFromMeta(int meta)
|
||||
{ return getDefaultState(); }
|
||||
|
||||
@Override
|
||||
public int getMetaFromState(IBlockState state)
|
||||
{ return 0; }
|
||||
|
||||
@Override
|
||||
protected BlockStateContainer createBlockState()
|
||||
{ return new BlockStateContainer(this); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState getActualState(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
{ return state; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState withRotation(IBlockState state, Rotation rot)
|
||||
{ return state; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
|
||||
{ return state; }
|
||||
|
||||
@Override
|
||||
public boolean hasTileEntity(IBlockState state)
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
|
||||
{}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ)
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
public void onBlockClicked(World world, BlockPos pos, EntityPlayer player)
|
||||
{}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public void neighborChanged(IBlockState state, World world, BlockPos pos, Block blockIn, BlockPos fromPos)
|
||||
{}
|
||||
|
||||
@Override
|
||||
public boolean canPlaceBlockOnSide(World world, BlockPos pos, EnumFacing side)
|
||||
{ return super.canPlaceBlockOnSide(world, pos, side); }
|
||||
|
||||
@Override
|
||||
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer, EnumHand hand)
|
||||
{ return super.getStateForPlacement(world, pos, facing, hitX, hitY, hitZ, meta, placer, hand); }
|
||||
|
||||
@Override
|
||||
public boolean removedByPlayer(IBlockState state, World world, BlockPos pos, EntityPlayer player, boolean willHarvest)
|
||||
{ return super.removedByPlayer(state, world, pos, player, willHarvest); }
|
||||
|
||||
}
|
|
@ -0,0 +1,120 @@
|
|||
/*
|
||||
* @file BlockDecorDirected.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Smaller (cutout) block with a defined facing.
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.SoundType;
|
||||
import wile.engineersdecor.detail.ModAuxiliaries;
|
||||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.BlockDirectional;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.properties.PropertyDirection;
|
||||
import net.minecraft.block.state.BlockFaceShape;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.util.Mirror;
|
||||
import net.minecraft.util.Rotation;
|
||||
import net.minecraft.util.BlockRenderLayer;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
|
||||
public class BlockDecorDirected extends BlockDecor
|
||||
{
|
||||
public static final PropertyDirection FACING = BlockDirectional.FACING;
|
||||
protected final ArrayList<AxisAlignedBB> AABBs;
|
||||
|
||||
public BlockDecorDirected(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound, @Nonnull AxisAlignedBB unrotatedAABB)
|
||||
{
|
||||
super(registryName, config, material, hardness, resistance, sound);
|
||||
final boolean is_horizontal = ((config & CFG_HORIZIONTAL)!=0);
|
||||
AABBs = new ArrayList<AxisAlignedBB>(Arrays.asList(
|
||||
ModAuxiliaries.getRotatedAABB(unrotatedAABB, EnumFacing.DOWN, is_horizontal),
|
||||
ModAuxiliaries.getRotatedAABB(unrotatedAABB, EnumFacing.UP, is_horizontal),
|
||||
ModAuxiliaries.getRotatedAABB(unrotatedAABB, EnumFacing.NORTH, is_horizontal),
|
||||
ModAuxiliaries.getRotatedAABB(unrotatedAABB, EnumFacing.SOUTH, is_horizontal),
|
||||
ModAuxiliaries.getRotatedAABB(unrotatedAABB, EnumFacing.WEST, is_horizontal),
|
||||
ModAuxiliaries.getRotatedAABB(unrotatedAABB, EnumFacing.EAST, is_horizontal),
|
||||
unrotatedAABB, unrotatedAABB // Array fill to ensure that the array size covers 4 bit (meta & 0x07).
|
||||
));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube(IBlockState state)
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
public boolean isFullCube(IBlockState state)
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
public boolean isNormalCube(IBlockState state)
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
|
||||
{ return BlockFaceShape.UNDEFINED; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
|
||||
{ return AABBs.get(((EnumFacing)state.getValue(FACING)).getIndex() & 0x7); }
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
{ return getBoundingBox(state, world, pos); }
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public BlockRenderLayer getRenderLayer()
|
||||
{ return BlockRenderLayer.CUTOUT; }
|
||||
|
||||
@Override
|
||||
public IBlockState getStateFromMeta(int meta)
|
||||
{ return this.getDefaultState().withProperty(FACING, EnumFacing.byIndex(meta & 0x7)); }
|
||||
|
||||
@Override
|
||||
public int getMetaFromState(IBlockState state)
|
||||
{ return state.getValue(FACING).getIndex(); }
|
||||
|
||||
@Override
|
||||
protected BlockStateContainer createBlockState()
|
||||
{ return new BlockStateContainer(this, FACING); }
|
||||
|
||||
@Override
|
||||
public IBlockState withRotation(IBlockState state, Rotation rot)
|
||||
{ return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING))); }
|
||||
|
||||
@Override
|
||||
public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
|
||||
{ return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING))); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
|
||||
{
|
||||
if((config & CFG_HORIZIONTAL_PLACEMENT)!=0) {
|
||||
// placement in direction the player is facing
|
||||
return getDefaultState().withProperty(FACING, placer.getHorizontalFacing());
|
||||
} else {
|
||||
// default: placement on the face the player clicking
|
||||
return getDefaultState().withProperty(FACING, facing);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
/*
|
||||
* @file BlockDecorFull.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Full block characteristics class.
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.BlockFaceShape;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
|
||||
public class BlockDecorFull extends BlockDecor
|
||||
{
|
||||
public BlockDecorFull(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound)
|
||||
{
|
||||
super(registryName, config, material, hardness, resistance, sound);
|
||||
setLightOpacity(255);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isOpaqueCube(IBlockState state)
|
||||
{ return true; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public BlockFaceShape getBlockFaceShape(IBlockAccess world, IBlockState state, BlockPos pos, EnumFacing face)
|
||||
{ return BlockFaceShape.SOLID; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
|
||||
{ return FULL_BLOCK_AABB; }
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
{ return FULL_BLOCK_AABB; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isFullCube(IBlockState state)
|
||||
{ return true; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isNormalCube(IBlockState state)
|
||||
{ return true; }
|
||||
|
||||
}
|
|
@ -0,0 +1,106 @@
|
|||
/*
|
||||
* @file BlockDecorLadder.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Ladder block. The implementation is based on the vanilla
|
||||
* net.minecraft.block.BlockLadder. Minor changes to enable
|
||||
* later configuration (for block list based construction
|
||||
* time configuration), does not drop when the block behind
|
||||
* is broken, etc.
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.BlockLadder;
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.block.material.EnumPushReaction;
|
||||
import net.minecraft.client.util.ITooltipFlag;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import wile.engineersdecor.detail.ModAuxiliaries;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.state.BlockFaceShape;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.util.*;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
public class BlockDecorLadder extends BlockLadder
|
||||
{
|
||||
protected static final AxisAlignedBB EDLADDER_SOUTH_AABB = ModAuxiliaries.getPixeledAABB(3, 0, 0, 13, 16, 2);
|
||||
protected static final AxisAlignedBB EDLADDER_EAST_AABB = ModAuxiliaries.getRotatedAABB(EDLADDER_SOUTH_AABB, EnumFacing.EAST, false);
|
||||
protected static final AxisAlignedBB EDLADDER_WEST_AABB = ModAuxiliaries.getRotatedAABB(EDLADDER_SOUTH_AABB, EnumFacing.WEST, false);
|
||||
protected static final AxisAlignedBB EDLADDER_NORTH_AABB = ModAuxiliaries.getRotatedAABB(EDLADDER_SOUTH_AABB, EnumFacing.NORTH, false);
|
||||
|
||||
|
||||
public BlockDecorLadder(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound)
|
||||
{
|
||||
super();
|
||||
setCreativeTab(ModEngineersDecor.CREATIVE_TAB_ENGINEERSDECOR);
|
||||
setRegistryName(ModEngineersDecor.MODID, registryName);
|
||||
setTranslationKey(ModEngineersDecor.MODID + "." + registryName);
|
||||
setTickRandomly(false);
|
||||
setHardness((hardness > 0) ? hardness : 5.0f);
|
||||
setResistance((resistance > 0) ? resistance : 10.0f);
|
||||
setSoundType((sound==null) ? SoundType.STONE : sound);
|
||||
setLightOpacity(0);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag)
|
||||
{ ModAuxiliaries.Tooltip.addInformation(stack, world, tooltip, flag, true); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
|
||||
{
|
||||
switch ((EnumFacing)state.getValue(FACING)) {
|
||||
case NORTH: return EDLADDER_NORTH_AABB;
|
||||
case SOUTH: return EDLADDER_SOUTH_AABB;
|
||||
case WEST: return EDLADDER_WEST_AABB;
|
||||
default: return EDLADDER_EAST_AABB;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canSpawnInBlock()
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public EnumPushReaction getPushReaction(IBlockState state)
|
||||
{ return EnumPushReaction.NORMAL; }
|
||||
|
||||
@Override
|
||||
public boolean canPlaceBlockOnSide(World world, BlockPos pos, EnumFacing side)
|
||||
{ return canAttachTo(world, pos.west(), side) || canAttachTo(world, pos.east(), side) || canAttachTo(world, pos.north(), side) || canAttachTo(world, pos.south(), side); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState getStateForPlacement(World world, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
|
||||
{
|
||||
if(facing.getAxis().isHorizontal() && canAttachTo(world, pos.offset(facing.getOpposite()), facing)) return this.getDefaultState().withProperty(FACING, facing);
|
||||
for(EnumFacing e:EnumFacing.Plane.HORIZONTAL) {
|
||||
if(this.canAttachTo(world, pos.offset(e.getOpposite()), e)) return this.getDefaultState().withProperty(FACING, e);
|
||||
}
|
||||
return this.getDefaultState();
|
||||
}
|
||||
|
||||
private boolean canAttachTo(World world, BlockPos pos, EnumFacing side)
|
||||
{
|
||||
final IBlockState state = world.getBlockState(pos);
|
||||
return (!isExceptBlockForAttachWithPiston(state.getBlock())) && (state.getBlockFaceShape(world, pos, side) == BlockFaceShape.SOLID);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* @file BlockDecorStairs.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Stairs and roof blocks, almost entirely based on vanilla stairs.
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
|
||||
public class BlockDecorStairs extends net.minecraft.block.BlockStairs
|
||||
{
|
||||
public BlockDecorStairs(@Nonnull String registryName, IBlockState modelState)
|
||||
{
|
||||
super(modelState);
|
||||
setCreativeTab(ModEngineersDecor.CREATIVE_TAB_ENGINEERSDECOR);
|
||||
setRegistryName(ModEngineersDecor.MODID, registryName);
|
||||
setTranslationKey(ModEngineersDecor.MODID + "." + registryName);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,180 @@
|
|||
/*
|
||||
* @file BlockDecorWall.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2019 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Wall blocks. This block is derived from vanilla BlockWall
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.*;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.block.properties.IProperty;
|
||||
import net.minecraft.block.properties.PropertyBool;
|
||||
import net.minecraft.block.state.BlockFaceShape;
|
||||
import net.minecraft.block.state.BlockStateContainer;
|
||||
import net.minecraft.block.state.IBlockState;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.init.Blocks;
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* As strange as it is, I could not properly get a block derived from BlockWall working,
|
||||
* either the VARIANT made issues, or the item model was duplicated (using state mapper),
|
||||
* so, this is now basically a BlockWall without the VARIANT propery. Anyway a solved issue
|
||||
* in mc1.13+. Deriving from BlockDecor to have the tooltip, creativetab etc already set up.
|
||||
*/
|
||||
public class BlockDecorWall extends BlockDecor
|
||||
{
|
||||
public static final PropertyBool UP = BlockWall.UP;
|
||||
public static final PropertyBool NORTH = BlockWall.NORTH;
|
||||
public static final PropertyBool EAST = BlockWall.EAST;
|
||||
public static final PropertyBool SOUTH = BlockWall.SOUTH;
|
||||
public static final PropertyBool WEST = BlockWall.WEST;
|
||||
|
||||
private static final double d_0 = 0.0d;
|
||||
private static final double d_1 = 1.0d;
|
||||
private static final double d_a = 0.25d;
|
||||
private static final double d_b = 1.0d-d_a;
|
||||
private static final double d_k = 0.26d; // 0.3125D;
|
||||
private static final double d_l = 1.0d-d_k;
|
||||
protected static final AxisAlignedBB[] AABB_BY_INDEX = new AxisAlignedBB[] {
|
||||
new AxisAlignedBB(d_a, d_0, d_a, d_b, d_1, d_b),
|
||||
new AxisAlignedBB(d_a, d_0, d_a, d_b, d_1, d_1),
|
||||
new AxisAlignedBB(d_0, d_0, d_a, d_b, d_1, d_b),
|
||||
new AxisAlignedBB(d_0, d_0, d_a, d_b, d_1, d_1),
|
||||
new AxisAlignedBB(d_a, d_0, d_0, d_b, d_1, d_b),
|
||||
new AxisAlignedBB(d_k, d_0, d_0, d_l, d_1, d_1),
|
||||
new AxisAlignedBB(d_0, d_0, d_0, d_b, d_1, d_b),
|
||||
new AxisAlignedBB(d_0, d_0, d_0, d_b, d_1, d_1),
|
||||
new AxisAlignedBB(d_a, d_0, d_a, d_1, d_1, d_b),
|
||||
new AxisAlignedBB(d_a, d_0, d_a, d_1, d_1, d_1),
|
||||
new AxisAlignedBB(d_0, d_0, d_k, d_1, d_1, d_l),
|
||||
new AxisAlignedBB(d_0, d_0, d_a, d_1, d_1, d_1),
|
||||
new AxisAlignedBB(d_a, d_0, d_0, d_1, d_1, d_b),
|
||||
new AxisAlignedBB(d_a, d_0, d_0, d_1, d_1, d_1),
|
||||
new AxisAlignedBB(d_0, d_0, d_0, d_1, d_1, d_b),
|
||||
new AxisAlignedBB(d_0, d_0, d_0, d_1, d_1, d_1)
|
||||
};
|
||||
private static final double clip_height = 1.5d;
|
||||
protected static final AxisAlignedBB[] CLIP_AABB_BY_INDEX = new AxisAlignedBB[] { AABB_BY_INDEX[0].setMaxY(clip_height), AABB_BY_INDEX[1].setMaxY(clip_height), AABB_BY_INDEX[2].setMaxY(clip_height), AABB_BY_INDEX[3].setMaxY(clip_height), AABB_BY_INDEX[4].setMaxY(clip_height), AABB_BY_INDEX[5].setMaxY(clip_height), AABB_BY_INDEX[6].setMaxY(clip_height), AABB_BY_INDEX[7].setMaxY(clip_height), AABB_BY_INDEX[8].setMaxY(clip_height), AABB_BY_INDEX[9].setMaxY(clip_height), AABB_BY_INDEX[10].setMaxY(clip_height), AABB_BY_INDEX[11].setMaxY(clip_height), AABB_BY_INDEX[12].setMaxY(clip_height), AABB_BY_INDEX[13].setMaxY(clip_height), AABB_BY_INDEX[14].setMaxY(clip_height), AABB_BY_INDEX[15].setMaxY(clip_height) };
|
||||
|
||||
public BlockDecorWall(@Nonnull String registryName, long config, @Nullable Material material, float hardness, float resistance, @Nullable SoundType sound)
|
||||
{
|
||||
super(registryName, config, material, hardness, resistance, sound);
|
||||
setDefaultState(blockState.getBaseState().withProperty(UP, false).withProperty(NORTH, false).withProperty(EAST, false).withProperty(SOUTH, false).withProperty(WEST, false));
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos)
|
||||
{ return AABB_BY_INDEX[getAABBIndex(getActualState(state, source, pos))]; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public void addCollisionBoxToList(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean isActualState)
|
||||
{ addCollisionBoxToList(pos, entityBox, collidingBoxes, CLIP_AABB_BY_INDEX[getAABBIndex(isActualState ? state : getActualState(state, world, pos))]); }
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public AxisAlignedBB getCollisionBoundingBox(IBlockState state, IBlockAccess world, BlockPos pos)
|
||||
{ return CLIP_AABB_BY_INDEX[getAABBIndex(getActualState(state, world, pos))]; }
|
||||
|
||||
private static int getAABBIndex(IBlockState state)
|
||||
{ return ((!(state.getValue(NORTH))) ? 0 : (1<<EnumFacing.NORTH.getHorizontalIndex()))
|
||||
| ((!(state.getValue( EAST))) ? 0 : (1<<EnumFacing.EAST.getHorizontalIndex()))
|
||||
| ((!(state.getValue(SOUTH))) ? 0 : (1<<EnumFacing.SOUTH.getHorizontalIndex()))
|
||||
| ((!(state.getValue( WEST))) ? 0 : (1<<EnumFacing.WEST.getHorizontalIndex()));
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isFullCube(IBlockState state)
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isPassable(IBlockAccess worldIn, BlockPos pos)
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isOpaqueCube(IBlockState state)
|
||||
{ return false; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public boolean isNormalCube(IBlockState state)
|
||||
{ return false; }
|
||||
|
||||
private boolean canConnectTo(IBlockAccess worldIn, BlockPos pos, EnumFacing p_176253_3_)
|
||||
{
|
||||
IBlockState iblockstate = worldIn.getBlockState(pos);
|
||||
Block block = iblockstate.getBlock();
|
||||
BlockFaceShape blockfaceshape = iblockstate.getBlockFaceShape(worldIn, pos, p_176253_3_);
|
||||
boolean flag = blockfaceshape == BlockFaceShape.MIDDLE_POLE_THICK || blockfaceshape == BlockFaceShape.MIDDLE_POLE && block instanceof BlockFenceGate;
|
||||
return !isExcepBlockForAttachWithPiston(block) && blockfaceshape == BlockFaceShape.SOLID || flag;
|
||||
}
|
||||
|
||||
protected static boolean isExcepBlockForAttachWithPiston(Block b)
|
||||
{ return Block.isExceptBlockForAttachWithPiston(b) || (b==Blocks.BARRIER) || (b==Blocks.MELON_BLOCK) || (b==Blocks.PUMPKIN) || (b==Blocks.LIT_PUMPKIN); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
@SideOnly(Side.CLIENT)
|
||||
public boolean shouldSideBeRendered(IBlockState blockState, IBlockAccess blockAccess, BlockPos pos, EnumFacing side)
|
||||
{ return (side!=EnumFacing.DOWN) || (super.shouldSideBeRendered(blockState, blockAccess, pos, side)); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState getStateFromMeta(int meta)
|
||||
{ return getDefaultState(); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public int getMetaFromState(IBlockState state)
|
||||
{ return 0; }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public IBlockState getActualState(IBlockState state, IBlockAccess worldIn, BlockPos pos)
|
||||
{
|
||||
boolean n = canWallConnectTo(worldIn, pos, EnumFacing.NORTH);
|
||||
boolean e = canWallConnectTo(worldIn, pos, EnumFacing.EAST);
|
||||
boolean s = canWallConnectTo(worldIn, pos, EnumFacing.SOUTH);
|
||||
boolean w = canWallConnectTo(worldIn, pos, EnumFacing.WEST);
|
||||
boolean straight = (n && !e && s && !w) || (!n && e && !s && w);
|
||||
return state.withProperty(UP,!straight).withProperty(NORTH, n).withProperty(EAST, e).withProperty(SOUTH, s).withProperty(WEST, w);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected BlockStateContainer createBlockState()
|
||||
{ return new BlockStateContainer(this, new IProperty[] {UP, NORTH, EAST, WEST, SOUTH}); }
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("deprecation")
|
||||
public BlockFaceShape getBlockFaceShape(IBlockAccess worldIn, IBlockState state, BlockPos pos, EnumFacing face)
|
||||
{ return ((face!=EnumFacing.UP) && (face!=EnumFacing.DOWN)) ? (BlockFaceShape.MIDDLE_POLE_THICK) : (BlockFaceShape.CENTER_BIG); }
|
||||
|
||||
@Override
|
||||
public boolean canBeConnectedTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
|
||||
{ return canConnectTo(world, pos.offset(facing), facing.getOpposite()); }
|
||||
|
||||
private boolean canWallConnectTo(IBlockAccess world, BlockPos pos, EnumFacing facing)
|
||||
{
|
||||
BlockPos other = pos.offset(facing);
|
||||
Block block = world.getBlockState(other).getBlock();
|
||||
return block.canBeConnectedTo(world, other, facing.getOpposite()) || canConnectTo(world, other, facing.getOpposite());
|
||||
}
|
||||
}
|
137
1.12/src/main/java/wile/engineersdecor/blocks/ModBlocks.java
Normal file
|
@ -0,0 +1,137 @@
|
|||
/*
|
||||
* @file ModBlocks.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2018 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Definition and initialisation of blocks of this
|
||||
* module, along with their tile entities if applicable.
|
||||
*
|
||||
* Note: Straight forward definition of different blocks/entities
|
||||
* to make recipes, models and texture definitions easier.
|
||||
*/
|
||||
package wile.engineersdecor.blocks;
|
||||
|
||||
import net.minecraft.block.SoundType;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.block.model.ModelResourceLocation;
|
||||
import net.minecraftforge.client.model.ModelLoader;
|
||||
import net.minecraftforge.fml.common.Loader;
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import wile.engineersdecor.detail.ModAuxiliaries;
|
||||
import wile.engineersdecor.detail.ModConfig;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.event.RegistryEvent;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Collections;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public class ModBlocks
|
||||
{
|
||||
public static final BlockDecorFull CLINKER_BRICK_BLOCK = new BlockDecorFull("clinker_brick_block", 0, Material.ROCK, 2f, 50f, SoundType.STONE);
|
||||
public static final BlockDecorStairs CLINKER_BRICK_STAIRS = new BlockDecorStairs("clinker_brick_stairs", CLINKER_BRICK_BLOCK.getDefaultState());
|
||||
|
||||
public static final BlockDecorFull SLAG_BRICK_BLOCK = new BlockDecorFull("slag_brick_block", 0, Material.ROCK, 2f, 50f, SoundType.STONE);
|
||||
public static final BlockDecorStairs SLAG_BRICK_STAIRS = new BlockDecorStairs("slag_brick_stairs", SLAG_BRICK_BLOCK.getDefaultState());
|
||||
|
||||
public static final BlockDecorFull IRON_SHEET_ROOF_FULLBLOCK = new BlockDecorFull("iron_sheet_roof_block", 0, Material.IRON, 1.8f, 25f, SoundType.METAL);
|
||||
|
||||
public static final BlockDecorLadder METAL_RUNG_LADDER = new BlockDecorLadder("metal_rung_ladder", 0, Material.IRON, 1.8f, 25f, SoundType.METAL);
|
||||
public static final BlockDecorLadder METAL_RUNG_STEPS = new BlockDecorLadder("metal_rung_steps", 0, Material.IRON, 1.8f, 25f, SoundType.METAL);
|
||||
public static final BlockDecorLadder TREATED_WOOD_LADDER = new BlockDecorLadder("treated_wood_ladder", 0, Material.WOOD, 1.0f, 15f, SoundType.WOOD);
|
||||
|
||||
public static final BlockDecorFull REBAR_CONCRETE_BLOCK = new BlockDecorFull("rebar_concrete", 0, Material.ROCK, 8f, 2000f, SoundType.STONE);
|
||||
public static final BlockDecorStairs REBAR_CONCRETE_STAIRS = new BlockDecorStairs("rebar_concrete_stairs", REBAR_CONCRETE_BLOCK.getDefaultState());
|
||||
public static final BlockDecorWall REBAR_CONCRETE_WALL = new BlockDecorWall("rebar_concrete_wall", BlockDecor.CFG_WALL_DOOR_CONNECTION, Material.ROCK, 8f, 2000f, SoundType.STONE);
|
||||
|
||||
public static final BlockDecorWall CONCRETE_WALL = new BlockDecorWall("concrete_wall", BlockDecor.CFG_WALL_DOOR_CONNECTION, Material.ROCK, 8f, 50f, SoundType.STONE);
|
||||
|
||||
public static final BlockDecorDirected TREATED_WOOD_POLE = new BlockDecorDirected(
|
||||
"treated_wood_pole",
|
||||
BlockDecor.CFG_CUTOUT,
|
||||
Material.WOOD, 1.0f, 15f, SoundType.WOOD,
|
||||
ModAuxiliaries.getPixeledAABB(5.8,5.8,0, 10.2,10.2,16)
|
||||
);
|
||||
|
||||
public static final BlockDecor TREATED_WOOD_TABLE = new BlockDecor(
|
||||
"treated_wood_table",
|
||||
BlockDecor.CFG_CUTOUT,
|
||||
Material.WOOD, 1.0f, 15f, SoundType.WOOD
|
||||
);
|
||||
|
||||
public static final BlockDecorStairs IRON_SHEET_ROOF = new BlockDecorStairs("iron_sheet_roof", IRON_SHEET_ROOF_FULLBLOCK.getDefaultState());
|
||||
|
||||
private static final Block modBlocks[] = {
|
||||
SLAG_BRICK_BLOCK,
|
||||
CLINKER_BRICK_BLOCK,
|
||||
METAL_RUNG_LADDER,
|
||||
METAL_RUNG_STEPS,
|
||||
TREATED_WOOD_LADDER,
|
||||
CLINKER_BRICK_STAIRS,
|
||||
SLAG_BRICK_STAIRS,
|
||||
TREATED_WOOD_POLE,
|
||||
TREATED_WOOD_TABLE,
|
||||
REBAR_CONCRETE_BLOCK,
|
||||
REBAR_CONCRETE_STAIRS,
|
||||
REBAR_CONCRETE_WALL,
|
||||
};
|
||||
|
||||
private static final Block ieDependentBlocks[] = {
|
||||
CONCRETE_WALL
|
||||
};
|
||||
|
||||
private static final Block devBlocks[] = {
|
||||
IRON_SHEET_ROOF, // model looks not good enough yet
|
||||
};
|
||||
|
||||
private static ArrayList<Block> registeredBlocks = new ArrayList<>();
|
||||
|
||||
@Nonnull
|
||||
public static List getRegisteredBlocks()
|
||||
{ return Collections.unmodifiableList(registeredBlocks); }
|
||||
|
||||
// Invoked from CommonProxy.registerBlocks()
|
||||
public static final void registerBlocks(RegistryEvent.Register<Block> event)
|
||||
{
|
||||
// Config based registry selection
|
||||
ArrayList<Block> allBlocks = new ArrayList<>();
|
||||
Collections.addAll(allBlocks, modBlocks);
|
||||
if(Loader.isModLoaded("immersiveengineering")) {
|
||||
ModEngineersDecor.logger.info("Immersive Engineering installed, registering dependent blocks...");
|
||||
Collections.addAll(allBlocks, ieDependentBlocks);
|
||||
}
|
||||
if(ModConfig.zmisc.with_experimental) Collections.addAll(allBlocks, devBlocks);
|
||||
for(Block e:allBlocks) registeredBlocks.add(e);
|
||||
for(Block e:registeredBlocks) event.getRegistry().register(e);
|
||||
ModEngineersDecor.logger.info("Registered " + Integer.toString(registeredBlocks.size()) + " blocks.");
|
||||
}
|
||||
|
||||
// Invoked from ClientProxy.registerModels()
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static final void initModels()
|
||||
{
|
||||
for(Block e:registeredBlocks) {
|
||||
ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(e), 0, new ModelResourceLocation(e.getRegistryName(), "inventory"));
|
||||
}
|
||||
}
|
||||
|
||||
// Invoked from CommonProxy.registerItems()
|
||||
public static final void registerItemBlocks(RegistryEvent.Register<Item> event)
|
||||
{
|
||||
int n = 0;
|
||||
for(Block e:registeredBlocks) {
|
||||
ResourceLocation rl = e.getRegistryName();
|
||||
if(rl == null) continue;
|
||||
event.getRegistry().register(new ItemBlock(e).setRegistryName(rl));
|
||||
++n;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* @file ClientProxy.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2018 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Client side only initialisation.
|
||||
*/
|
||||
package wile.engineersdecor.detail;
|
||||
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import net.minecraftforge.client.model.obj.OBJLoader;
|
||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||
|
||||
public class ClientProxy implements ModEngineersDecor.IProxy
|
||||
{
|
||||
public void preInit(FMLPreInitializationEvent e)
|
||||
{ OBJLoader.INSTANCE.addDomain(ModEngineersDecor.MODID); }
|
||||
|
||||
public void init(FMLInitializationEvent e)
|
||||
{}
|
||||
|
||||
public void postInit(FMLPostInitializationEvent e)
|
||||
{}
|
||||
}
|
|
@ -0,0 +1,147 @@
|
|||
/*
|
||||
* @file ModAuxiliaries.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2018 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* General commonly used functionality.
|
||||
*/
|
||||
package wile.engineersdecor.detail;
|
||||
|
||||
import net.minecraft.util.EnumFacing;
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.client.util.ITooltipFlag;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.util.text.TextComponentTranslation;
|
||||
import net.minecraft.util.text.TextFormatting;
|
||||
import net.minecraftforge.fml.relauncher.Side;
|
||||
import net.minecraft.util.math.AxisAlignedBB;
|
||||
import net.minecraftforge.fml.relauncher.SideOnly;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
import javax.annotation.Nullable;
|
||||
import java.util.*;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public class ModAuxiliaries
|
||||
{
|
||||
/**
|
||||
* Text localisation wrapper, implicitly prepends `ModEngineersDecor.MODID` to the
|
||||
* translation keys. Forces formatting argument, nullable if no special formatting shall be applied..
|
||||
*/
|
||||
public static TextComponentTranslation localizable(String modtrkey, @Nullable TextFormatting color, Object... args)
|
||||
{
|
||||
TextComponentTranslation tr = new TextComponentTranslation(ModEngineersDecor.MODID+"."+modtrkey, args);
|
||||
if(color!=null) tr.getStyle().setColor(color);
|
||||
return tr;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static String localize(String translationKey, Object... args)
|
||||
{
|
||||
TextComponentTranslation tr = new TextComponentTranslation(translationKey, args);
|
||||
tr.getStyle().setColor(TextFormatting.RESET);
|
||||
final String ft = tr.getFormattedText();
|
||||
if(ft.contains("${")) {
|
||||
// Non-recursive, non-argument lang file entry cross referencing.
|
||||
Pattern pt = Pattern.compile("\\$\\{([\\w\\.]+)\\}");
|
||||
Matcher mt = pt.matcher(ft);
|
||||
StringBuffer sb = new StringBuffer();
|
||||
while(mt.find()) mt.appendReplacement(sb, (new TextComponentTranslation(mt.group(1))).getFormattedText().trim());
|
||||
mt.appendTail(sb);
|
||||
return sb.toString();
|
||||
} else {
|
||||
return ft;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if a given key is translated for the current language.
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static boolean hasTranslation(String key)
|
||||
{ return net.minecraft.client.resources.I18n.hasKey(key); }
|
||||
|
||||
public static final class Tooltip
|
||||
{
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static boolean extendedTipCondition()
|
||||
{ return (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)||Keyboard.isKeyDown(Keyboard.KEY_RSHIFT)); }
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static boolean helpCondition()
|
||||
{ return extendedTipCondition() && ((Keyboard.isKeyDown(Keyboard.KEY_LCONTROL)||Keyboard.isKeyDown(Keyboard.KEY_RCONTROL))); }
|
||||
|
||||
/**
|
||||
* Adds an extended tooltip or help tooltip depending on the key states of CTRL and SHIFT.
|
||||
* Returns true if the localisable help/tip was added, false if not (either not CTL/SHIFT or
|
||||
* no translation found).
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static boolean addInformation(@Nullable String advancedTooltipTranslationKey, @Nullable String helpTranslationKey, List<String> tooltip, ITooltipFlag flag, boolean addAdvancedTooltipHints)
|
||||
{
|
||||
// Note: intentionally not using keybinding here, this must be `control` or `shift`. MC uses lwjgl Keyboard,
|
||||
// so using this also here should be ok.
|
||||
final boolean help_available = (helpTranslationKey != null) && ModAuxiliaries.hasTranslation(helpTranslationKey + ".help");
|
||||
final boolean tip_available = (advancedTooltipTranslationKey != null) && ModAuxiliaries.hasTranslation(helpTranslationKey + ".tip");
|
||||
if((!help_available) && (!tip_available)) return false;
|
||||
if(helpCondition()) {
|
||||
if(!help_available) return false;
|
||||
String s = localize(helpTranslationKey + ".help");
|
||||
if(s.isEmpty()) return false;
|
||||
tooltip.add(s);
|
||||
return true;
|
||||
} else if(extendedTipCondition()) {
|
||||
if(!tip_available) return false;
|
||||
String s = localize(advancedTooltipTranslationKey + ".tip");
|
||||
if(s.isEmpty()) return false;
|
||||
tooltip.add(s);
|
||||
return true;
|
||||
} else if(addAdvancedTooltipHints) {
|
||||
String s = "";
|
||||
if(tip_available) s += localize(ModEngineersDecor.MODID + ".tooltip.hint.extended") + (help_available ? " " : "");
|
||||
if(help_available) s += localize(ModEngineersDecor.MODID + ".tooltip.hint.help");
|
||||
tooltip.add(s);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds an extended tooltip or help tooltip for a given stack depending on the key states of CTRL and SHIFT.
|
||||
* Format in the lang file is (e.g. for items): "item.MODID.REGISTRYNAME.tip" and "item.MODID.REGISTRYNAME.help".
|
||||
* Return value see method pattern above.
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
public static boolean addInformation(ItemStack stack, @Nullable World world, List<String> tooltip, ITooltipFlag flag, boolean addAdvancedTooltipHints)
|
||||
{ return addInformation(stack.getTranslationKey(), stack.getTranslationKey(), tooltip, flag, addAdvancedTooltipHints); }
|
||||
}
|
||||
|
||||
public static final AxisAlignedBB getPixeledAABB(double x0, double y0, double z0, double x1, double y1, double z1)
|
||||
{ return new AxisAlignedBB(x0/16.0, y0/16.0, z0/16.0, x1/16.0, y1/16.0, z1/16.0); }
|
||||
|
||||
public static final AxisAlignedBB getRotatedAABB(AxisAlignedBB bb, EnumFacing new_facing, boolean horizontal_rotation)
|
||||
{
|
||||
if(!horizontal_rotation) {
|
||||
switch(new_facing.getIndex()) {
|
||||
case 0: return new AxisAlignedBB(1-bb.maxX, 1-bb.maxZ, 1-bb.maxY, 1-bb.minX, 1-bb.minZ, 1-bb.minY); // D
|
||||
case 1: return new AxisAlignedBB(1-bb.maxX, bb.minZ, bb.minY, 1-bb.minX, bb.maxZ, bb.maxY); // U
|
||||
case 2: return new AxisAlignedBB(1-bb.maxX, bb.minY, 1-bb.maxZ, 1-bb.minX, bb.maxY, 1-bb.minZ); // N
|
||||
case 3: return new AxisAlignedBB( bb.minX, bb.minY, bb.minZ, bb.maxX, bb.maxY, bb.maxZ); // S --> bb
|
||||
case 4: return new AxisAlignedBB(1-bb.maxZ, bb.minY, bb.minX, 1-bb.minZ, bb.maxY, bb.maxX); // W
|
||||
case 5: return new AxisAlignedBB( bb.minZ, bb.minY, 1-bb.maxX, bb.maxZ, bb.maxY, 1-bb.minX); // E
|
||||
}
|
||||
} else {
|
||||
switch(new_facing.getIndex()) {
|
||||
case 0: return new AxisAlignedBB( bb.minX, bb.minY, bb.minZ, bb.maxX, bb.maxY, bb.maxZ); // D --> bb
|
||||
case 1: return new AxisAlignedBB( bb.minX, bb.minY, bb.minZ, bb.maxX, bb.maxY, bb.maxZ); // U --> bb
|
||||
case 2: return new AxisAlignedBB( bb.minX, bb.minY, bb.minZ, bb.maxX, bb.maxY, bb.maxZ); // N --> bb
|
||||
case 3: return new AxisAlignedBB(1-bb.maxX, bb.minY, 1-bb.maxZ, 1-bb.minX, bb.maxY, 1-bb.minZ); // S
|
||||
case 4: return new AxisAlignedBB( bb.minZ, bb.minY, 1-bb.maxX, bb.maxZ, bb.maxY, 1-bb.minX); // W
|
||||
case 5: return new AxisAlignedBB(1-bb.maxZ, bb.minY, bb.minX, 1-bb.minZ, bb.maxY, bb.maxX); // E
|
||||
}
|
||||
}
|
||||
return bb;
|
||||
}
|
||||
}
|
52
1.12/src/main/java/wile/engineersdecor/detail/ModConfig.java
Normal file
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* @file ModConfig.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2018 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Main class for module settings. Handles reading and
|
||||
* saving the config file.
|
||||
*/
|
||||
package wile.engineersdecor.detail;
|
||||
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import net.minecraftforge.common.config.Config;
|
||||
import net.minecraftforge.common.config.ConfigManager;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||
import net.minecraftforge.fml.client.event.ConfigChangedEvent;
|
||||
|
||||
@Config(modid = ModEngineersDecor.MODID)
|
||||
@Config.LangKey("engineersdecor.config.title")
|
||||
public class ModConfig
|
||||
{
|
||||
@Config.Comment({
|
||||
"Settings for beta testing and trouble shooting. Some of the settings " +
|
||||
"may be moved to other categories after testing."
|
||||
})
|
||||
@Config.Name("Miscellaneous")
|
||||
public static final SettingsZTesting zmisc = new SettingsZTesting();
|
||||
public static final class SettingsZTesting
|
||||
{
|
||||
@Config.Comment({ "Enables experimental features. Use at own risk." })
|
||||
@Config.Name("With experimental")
|
||||
public boolean with_experimental = false;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@Mod.EventBusSubscriber(modid=ModEngineersDecor.MODID)
|
||||
private static final class EventHandler
|
||||
{
|
||||
@SubscribeEvent
|
||||
public static void onConfigChanged(final ConfigChangedEvent.OnConfigChangedEvent event) {
|
||||
if(!event.getModID().equals(ModEngineersDecor.MODID)) return;
|
||||
ConfigManager.sync(ModEngineersDecor.MODID, Config.Type.INSTANCE);
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public static final void onPostInit(FMLPostInitializationEvent event)
|
||||
{}
|
||||
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
* @file RecipeCondRegistered.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2018 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Recipe condition to enable opt'ing out JSON based recipes, referenced
|
||||
* in assets/engineersdecor/recipes/_factories.json with full path (therefore
|
||||
* I had to make a separate file for that instead of a few lines in
|
||||
* ModAuxiliaries).
|
||||
*/
|
||||
package wile.engineersdecor.detail;
|
||||
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.common.crafting.IConditionFactory;
|
||||
import net.minecraftforge.common.crafting.JsonContext;
|
||||
import net.minecraftforge.registries.IForgeRegistry;
|
||||
import net.minecraftforge.fml.common.registry.ForgeRegistries;
|
||||
|
||||
import com.google.gson.*;
|
||||
import java.util.function.BooleanSupplier;
|
||||
|
||||
|
||||
public class RecipeCondModSpecific implements IConditionFactory
|
||||
{
|
||||
public static final BooleanSupplier RECIPE_INCLUDE = ()->true;
|
||||
public static final BooleanSupplier RECIPE_EXCLUDE = ()->false;
|
||||
|
||||
@Override
|
||||
public BooleanSupplier parse(JsonContext context, JsonObject json) {
|
||||
try {
|
||||
final IForgeRegistry<Block> block_registry = ForgeRegistries.BLOCKS;
|
||||
final IForgeRegistry<Item> item_registry = ForgeRegistries.ITEMS;
|
||||
final JsonArray items = json.getAsJsonArray("required");
|
||||
if(items!=null) {
|
||||
for(JsonElement e: items) {
|
||||
if(!e.isJsonPrimitive()) continue;
|
||||
final ResourceLocation rl = new ResourceLocation(((JsonPrimitive)e).getAsString());
|
||||
if((!block_registry.containsKey(rl)) && (!item_registry.containsKey(rl))) return RECIPE_EXCLUDE; // required item not registered
|
||||
}
|
||||
}
|
||||
final JsonPrimitive result = json.getAsJsonPrimitive("result");
|
||||
if(result != null) {
|
||||
final ResourceLocation rl = new ResourceLocation(result.getAsString());
|
||||
if((!block_registry.containsKey(rl)) && (!item_registry.containsKey(rl))) return RECIPE_EXCLUDE; // required result not registered
|
||||
}
|
||||
final JsonArray missing = json.getAsJsonArray("missing");
|
||||
if((missing!=null) && (missing.size() > 0)) {
|
||||
for(JsonElement e: missing) {
|
||||
if(!e.isJsonPrimitive()) continue;
|
||||
final ResourceLocation rl = new ResourceLocation(((JsonPrimitive)e).getAsString());
|
||||
// At least one item missing, enable this recipe as alternative recipe for another one that check the missing item as required item.
|
||||
// --> e.g. if IE not installed there is no slag. One recipe requires slag, and another one (for the same result) is used if there
|
||||
// is no slag.
|
||||
if((!block_registry.containsKey(rl)) && (!item_registry.containsKey(rl))) return RECIPE_INCLUDE;
|
||||
}
|
||||
return RECIPE_EXCLUDE; // all required there, but there is no item missing, so another recipe
|
||||
} else {
|
||||
return RECIPE_INCLUDE; // no missing given, means include if result and required are all there.
|
||||
}
|
||||
} catch(Throwable ex) {
|
||||
ModEngineersDecor.logger.error("rsgauges::ResultRegisteredCondition failed: " + ex.toString());
|
||||
}
|
||||
return RECIPE_EXCLUDE; // skip on exception.
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* @file ServerProxy.java
|
||||
* @author Stefan Wilhelm (wile)
|
||||
* @copyright (C) 2018 Stefan Wilhelm
|
||||
* @license MIT (see https://opensource.org/licenses/MIT)
|
||||
*
|
||||
* Module initialisation event handling, server side only.
|
||||
*/
|
||||
package wile.engineersdecor.detail;
|
||||
|
||||
import wile.engineersdecor.ModEngineersDecor;
|
||||
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
|
||||
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
|
||||
|
||||
public class ServerProxy implements ModEngineersDecor.IProxy
|
||||
{
|
||||
public void preInit(FMLPreInitializationEvent e)
|
||||
{}
|
||||
|
||||
public void init(FMLInitializationEvent e)
|
||||
{}
|
||||
|
||||
public void postInit(FMLPostInitializationEvent e)
|
||||
{}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:decor_full_block_model",
|
||||
"textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0" }
|
||||
},
|
||||
"variants": {
|
||||
"normal": [
|
||||
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture1" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture2" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture3" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture4" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture5" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture6" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture7" } }
|
||||
],
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:stairs/decor_straight_stairs_model",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
||||
"bottom": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
||||
"top": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
||||
"side": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}],
|
||||
"facing=east,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model" },
|
||||
"facing=west,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model" },
|
||||
"facing=west,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model" },
|
||||
"facing=north,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model" },
|
||||
"facing=west,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model" },
|
||||
"facing=north,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 270, "uvlock": true }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:wall/concrete_wall_default",
|
||||
"textures": {
|
||||
"wall": "immersiveengineering:blocks/stone_decoration_concrete",
|
||||
"particle": "immersiveengineering:blocks/stone_decoration_concrete"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"inventory": { "model": "engineersdecor:wall/concrete_wall_inventory" },
|
||||
"up" : { "false":{}, "true": {"submodel": {"concrete_wall_up" : {"model": "engineersdecor:wall/concrete_wall_post" }}} },
|
||||
"north": { "false":{}, "true": {"submodel": {"concrete_wall_north" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 0 }}} },
|
||||
"east" : { "false":{}, "true": {"submodel": {"concrete_wall_east" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 90 }}} },
|
||||
"south": { "false":{}, "true": {"submodel": {"concrete_wall_south" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 180 }}} },
|
||||
"west" : { "false":{}, "true": {"submodel": {"concrete_wall_west" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 270 }}} }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:stairs/decor_straight_roof_model",
|
||||
"textures": {
|
||||
"bottom": "engineersdecor:blocks/iestyle/ironsheet_roof_top",
|
||||
"side": "engineersdecor:blocks/iestyle/ironsheet_roof",
|
||||
"top": "engineersdecor:blocks/iestyle/ironsheet_roof_top"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}],
|
||||
"facing=east,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_roof_model" },
|
||||
"facing=west,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_roof_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_roof_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_roof_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_roof_model" },
|
||||
"facing=west,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_roof_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_roof_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_roof_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_roof_model", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_roof_model", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_roof_model" },
|
||||
"facing=north,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_roof_model", "y": 180, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_roof_model" },
|
||||
"facing=west,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_roof_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_roof_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_roof_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_roof_model", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_roof_model", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_roof_model" },
|
||||
"facing=north,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_roof_model", "y": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_roof_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_roof_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_roof_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_roof_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_roof_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_roof_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_roof_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_roof_model", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_roof_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_roof_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_roof_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_roof_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_roof_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_roof_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_roof_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_roof_model", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_roof_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_roof_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_roof_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_roof_model", "x": 180, "y": 270, "uvlock": true }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:decor_full_block_model",
|
||||
"textures": { "all": "engineersdecor:blocks/iestyle/ironsheet_roof" }
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": { "model": "engineersdecor:ladder/metal_rung_ladder_model" },
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"facing": { "north":{"y":0}, "south":{"y":180}, "west":{"y":270}, "east":{"y":90}, "up": {"x":0}, "down": {"x":0} },
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": { "model": "engineersdecor:ladder/metal_rung_steps_model" },
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"facing": { "north":{"y":0}, "south":{"y":180}, "west":{"y":270}, "east":{"y":90}, "up": {"x":0}, "down": {"x":0} },
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:decor_full_block_model",
|
||||
"textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture0" }
|
||||
},
|
||||
"variants": {
|
||||
"normal": [
|
||||
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture0" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture1" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture2" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture3" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture4" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture5" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture6" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/concrete/rebar_concrete_texture7" } }
|
||||
],
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:stairs/decor_straight_stairs_model",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/concrete/rebar_concrete_texture0",
|
||||
"bottom": "engineersdecor:blocks/concrete/rebar_concrete_texture0",
|
||||
"top": "engineersdecor:blocks/concrete/rebar_concrete_texture0",
|
||||
"side": "engineersdecor:blocks/concrete/rebar_concrete_texture0"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}],
|
||||
"facing=east,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model" },
|
||||
"facing=west,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model" },
|
||||
"facing=west,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model" },
|
||||
"facing=north,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model" },
|
||||
"facing=west,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model" },
|
||||
"facing=north,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 270, "uvlock": true }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:wall/concrete_wall_default",
|
||||
"textures": {
|
||||
"wall": "engineersdecor:blocks/concrete/rebar_concrete_texture0",
|
||||
"particle": "engineersdecor:blocks/concrete/rebar_concrete_texture0"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"inventory": { "model": "engineersdecor:wall/concrete_wall_inventory" },
|
||||
"up" : { "false":{}, "true": {"submodel": {"concrete_wall_up" : {"model": "engineersdecor:wall/concrete_wall_post" }}} },
|
||||
"north": { "false":{}, "true": {"submodel": {"concrete_wall_north" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 0 }}} },
|
||||
"east" : { "false":{}, "true": {"submodel": {"concrete_wall_east" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 90 }}} },
|
||||
"south": { "false":{}, "true": {"submodel": {"concrete_wall_south" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 180 }}} },
|
||||
"west" : { "false":{}, "true": {"submodel": {"concrete_wall_west" : {"model": "engineersdecor:wall/concrete_wall_side", "uvlock": true, "y": 270 }}} }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:decor_full_block_model",
|
||||
"textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture0" }
|
||||
},
|
||||
"variants": {
|
||||
"normal": [
|
||||
{ "textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture0" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture1" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture2" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture3" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture4" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture5" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture6" } },
|
||||
{ "textures": { "all": "engineersdecor:blocks/slag_brick/slag_brick_texture7" } }
|
||||
],
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:stairs/decor_straight_stairs_model",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/slag_brick/slag_brick_texture0",
|
||||
"bottom": "engineersdecor:blocks/slag_brick/slag_brick_texture0",
|
||||
"top" : "engineersdecor:blocks/slag_brick/slag_brick_texture0",
|
||||
"side" : "engineersdecor:blocks/slag_brick/slag_brick_texture0"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}],
|
||||
"facing=east,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model" },
|
||||
"facing=west,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model" },
|
||||
"facing=west,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model" },
|
||||
"facing=north,half=bottom,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model" },
|
||||
"facing=west,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=north,half=bottom,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=east,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 270, "uvlock": true },
|
||||
"facing=west,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 90, "uvlock": true },
|
||||
"facing=south,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model" },
|
||||
"facing=north,half=bottom,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "y": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=straight": { "model": "engineersdecor:stairs/decor_straight_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_right": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=outer_left": { "model": "engineersdecor:stairs/decor_outer_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 270, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_right": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=east,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "uvlock": true },
|
||||
"facing=west,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 180, "uvlock": true },
|
||||
"facing=south,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 90, "uvlock": true },
|
||||
"facing=north,half=top,shape=inner_left": { "model": "engineersdecor:stairs/decor_inner_stairs_model", "x": 180, "y": 270, "uvlock": true }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": { "model": "engineersdecor:ladder/treated_wood_ladder_model" },
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"facing": { "north":{"y":0}, "south":{"y":180}, "west":{"y":270}, "east":{"y":90}, "up": {"x":0}, "down": {"x":0} },
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": {
|
||||
"model": "engineersdecor:pole/straight_pole_model",
|
||||
"x":-90,
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/pole/treated_wood_pole_side_texture",
|
||||
"side": "engineersdecor:blocks/pole/treated_wood_pole_side_texture",
|
||||
"top": "engineersdecor:blocks/pole/treated_wood_pole_top_texture"
|
||||
}
|
||||
},
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"facing": { "north": {"y":0}, "south": {"y":0}, "west": {"y":90}, "east": {"y":90}, "up": {"x":90}, "down": {"x":90} },
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"forge_marker": 1,
|
||||
"defaults": { "model": "engineersdecor:furniture/treated_wood_table_model" },
|
||||
"variants": {
|
||||
"normal": [{}],
|
||||
"inventory": [{}]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
#
|
||||
# Engineer's Decor lang file
|
||||
#
|
||||
#PARSE_ESCAPES
|
||||
#
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
itemGroup.tabengineersdecor=Engineer's Decor
|
||||
engineersdecor.config.title=Engineer's Decor config
|
||||
engineersdecor.tooltip.hint.extended=§6[§9SHIFT§r More info§6]§r
|
||||
engineersdecor.tooltip.hint.help=§6[§9CTRL-SHIFT§r Help§6]§r
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
# Stone/"ceramic material" based blocks
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.clinker_brick_block.name=Clinker brick
|
||||
tile.engineersdecor.clinker_brick_block.help=§6A brick block with position dependent texture variations.§r\nLooks slightly darker and more color intensive than the vanilla brick block.
|
||||
tile.engineersdecor.slag_brick_block.name=Slag brick
|
||||
tile.engineersdecor.slag_brick_block.help=§6A gray-brown brick block with position dependent texture variations.
|
||||
tile.engineersdecor.rebar_concrete.name=Rebar concrete
|
||||
tile.engineersdecor.rebar_concrete.help=§6Steel reinforced concrete block.§r Expensive but Creeper-proof like obsidian.
|
||||
tile.engineersdecor.rebar_concrete_wall.name=Rebar concrete wall
|
||||
tile.engineersdecor.rebar_concrete_wall.help=§6Steel reinforced concrete wall.§r Expensive but Creeper-proof like obsidian.
|
||||
tile.engineersdecor.concrete_wall.name=Concrete wall
|
||||
tile.engineersdecor.concrete_wall.help=§6Wall made of solid concrete.
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
# Ladder blocks
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.metal_rung_ladder.name=Metal rung ladder
|
||||
tile.engineersdecor.metal_rung_ladder.help=§6Typical industrial wall ladder, consisting of horizontal metal rod rungs.
|
||||
tile.engineersdecor.metal_rung_steps.name=Staggered metal steps
|
||||
tile.engineersdecor.metal_rung_steps.help=§6Staggered rod rungs affixed to a wall, allowing to climb up, fall down, and so on.
|
||||
tile.engineersdecor.treated_wood_ladder.name=Treated wood ladder
|
||||
tile.engineersdecor.treated_wood_ladder.help=§6Weather-proof wooden ladder.
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
# Stairs and roofs
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.clinker_brick_stairs.name=Clinker brick stairs
|
||||
tile.engineersdecor.clinker_brick_stairs.help=§6Looks slightly darker and more color intensive than the vanilla brick block.
|
||||
tile.engineersdecor.slag_brick_stairs.name=Clinker brick stairs
|
||||
tile.engineersdecor.slag_brick_stairs.help=§6Looks slightly darker and more color intensive than the vanilla brick block.
|
||||
tile.engineersdecor.rebar_concrete_stairs.name=Rebar concrete stairs
|
||||
tile.engineersdecor.rebar_concrete_stairs.help=§6Steel reinforced concrete stairs.§r Expensive but Creeper-proof like obsidian.
|
||||
|
||||
tile.engineersdecor.iron_sheet_roof.name=Iron sheet metal roof
|
||||
tile.engineersdecor.iron_sheet_roof.help=§6Well, it's a roof.
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
# Poles and supports
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.treated_wood_pole.name=Straight treated wood pole
|
||||
tile.engineersdecor.treated_wood_pole.help=§6Straight pole fragment with the diameter of a wire relay.§r\n\
|
||||
Can be useful as alternative to the wire posts if special special lengths are needed, \
|
||||
or as support for structures.
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
# Furniture
|
||||
#-----------------------------------------------------------------------------------------------------------
|
||||
tile.engineersdecor.treated_wood_table.name=Treated wood table
|
||||
tile.engineersdecor.treated_wood_table.help=§6Robust four-legged wood table.
|
||||
|
||||
# EOF
|
||||
#-----------------------------------------------------------------------------------------------------------
|
BIN
1.12/src/main/resources/assets/engineersdecor/logo.png
Normal file
After Width: | Height: | Size: 122 KiB |
|
@ -0,0 +1 @@
|
|||
{ "parent": "block/cube_all", "textures": { "all": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0" } }
|
|
@ -0,0 +1,190 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"o": "engineersdecor:blocks/iestyle/treated_wood_framed_texture",
|
||||
"particle": "engineersdecor:blocks/iestyle/treated_wood_framed_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [1, 0, 1],
|
||||
"to": [3, 14, 3],
|
||||
"faces": {
|
||||
"north": {"uv": [13, 2, 15, 16], "texture": "#o"},
|
||||
"east": {"uv": [13, 2, 15, 16], "texture": "#o"},
|
||||
"south": {"uv": [1, 2, 3, 16], "texture": "#o"},
|
||||
"west": {"uv": [1, 2, 3, 16], "texture": "#o"},
|
||||
"up": {"uv": [1, 1, 3, 3], "texture": "#o"},
|
||||
"down": {"uv": [1, 13, 3, 15], "texture": "#o", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [13, 0, 1],
|
||||
"to": [15, 14, 3],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 2, 3, 16], "texture": "#o"},
|
||||
"east": {"uv": [13, 2, 15, 16], "texture": "#o"},
|
||||
"south": {"uv": [13, 2, 15, 16], "texture": "#o"},
|
||||
"west": {"uv": [1, 2, 3, 16], "texture": "#o"},
|
||||
"up": {"uv": [13, 1, 15, 3], "texture": "#o"},
|
||||
"down": {"uv": [13, 13, 15, 15], "texture": "#o", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [13, 0, 13],
|
||||
"to": [15, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 2, 3, 16], "texture": "#o"},
|
||||
"east": {"uv": [1, 2, 3, 16], "texture": "#o"},
|
||||
"south": {"uv": [13, 2, 15, 16], "texture": "#o"},
|
||||
"west": {"uv": [13, 2, 15, 16], "texture": "#o"},
|
||||
"up": {"uv": [13, 13, 15, 15], "texture": "#o"},
|
||||
"down": {"uv": [13, 1, 15, 3], "texture": "#o", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 0, 13],
|
||||
"to": [3, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [13, 2, 15, 16], "texture": "#o"},
|
||||
"east": {"uv": [1, 2, 3, 16], "texture": "#o"},
|
||||
"south": {"uv": [1, 2, 3, 16], "texture": "#o"},
|
||||
"west": {"uv": [13, 2, 15, 16], "texture": "#o"},
|
||||
"up": {"uv": [1, 13, 3, 15], "texture": "#o"},
|
||||
"down": {"uv": [1, 1, 3, 3], "texture": "#o", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 14, 0],
|
||||
"to": [16, 15.875, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0.125, 16, 2], "texture": "#o"},
|
||||
"east": {"uv": [0, 0.125, 16, 2], "texture": "#o"},
|
||||
"south": {"uv": [0, 0.125, 16, 2], "texture": "#o"},
|
||||
"west": {"uv": [0, 0.125, 16, 2], "texture": "#o"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#o"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0.125, 15.875, 0.125],
|
||||
"to": [15.875, 16, 15.875],
|
||||
"faces": {
|
||||
"north": {"uv": [0.25, 0, 15.75, 0.125], "texture": "#o"},
|
||||
"east": {"uv": [0.25, 0, 15.75, 0.125], "texture": "#o"},
|
||||
"south": {"uv": [0.25, 0, 15.75, 0.125], "texture": "#o"},
|
||||
"west": {"uv": [0.25, 0, 15.75, 0.125], "texture": "#o"},
|
||||
"up": {"uv": [0.25, 0.25, 15.75, 15.75], "texture": "#o"},
|
||||
"down": {"uv": [0.25, 0.25, 15.75, 15.75], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [13, 13.5, 3],
|
||||
"to": [15, 14, 5],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 2, 3, 2.5], "texture": "#o"},
|
||||
"east": {"uv": [11, 2, 13, 2.5], "texture": "#o"},
|
||||
"south": {"uv": [13, 2, 15, 2.5], "texture": "#o"},
|
||||
"west": {"uv": [3, 2, 5, 2.5], "texture": "#o"},
|
||||
"up": {"uv": [13, 3, 15, 5], "texture": "#o"},
|
||||
"down": {"uv": [13, 11, 15, 13], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [13, 13.5, 11],
|
||||
"to": [15, 14, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 2, 3, 2.5], "texture": "#o"},
|
||||
"east": {"uv": [3, 2, 5, 2.5], "texture": "#o"},
|
||||
"south": {"uv": [13, 2, 15, 2.5], "texture": "#o"},
|
||||
"west": {"uv": [11, 2, 13, 2.5], "texture": "#o"},
|
||||
"up": {"uv": [13, 11, 15, 13], "texture": "#o"},
|
||||
"down": {"uv": [13, 3, 15, 5], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 13.5, 11],
|
||||
"to": [3, 14, 13],
|
||||
"faces": {
|
||||
"north": {"uv": [13, 2, 15, 2.5], "texture": "#o"},
|
||||
"east": {"uv": [3, 2, 5, 2.5], "texture": "#o"},
|
||||
"south": {"uv": [1, 2, 3, 2.5], "texture": "#o"},
|
||||
"west": {"uv": [11, 2, 13, 2.5], "texture": "#o"},
|
||||
"up": {"uv": [1, 11, 3, 13], "texture": "#o"},
|
||||
"down": {"uv": [1, 3, 3, 5], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [1, 13.5, 3],
|
||||
"to": [3, 14, 5],
|
||||
"faces": {
|
||||
"north": {"uv": [13, 2, 15, 2.5], "texture": "#o"},
|
||||
"east": {"uv": [11, 2, 13, 2.5], "texture": "#o"},
|
||||
"south": {"uv": [1, 2, 3, 2.5], "texture": "#o"},
|
||||
"west": {"uv": [3, 2, 5, 2.5], "texture": "#o"},
|
||||
"up": {"uv": [1, 3, 3, 5], "texture": "#o"},
|
||||
"down": {"uv": [1, 11, 3, 13], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11, 13.5, 1],
|
||||
"to": [13, 14, 3],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 2, 5, 2.5], "texture": "#o"},
|
||||
"east": {"uv": [13, 2, 15, 2.5], "texture": "#o"},
|
||||
"south": {"uv": [11, 2, 13, 2.5], "texture": "#o"},
|
||||
"west": {"uv": [1, 2, 3, 2.5], "texture": "#o"},
|
||||
"up": {"uv": [11, 1, 13, 3], "texture": "#o"},
|
||||
"down": {"uv": [11, 13, 13, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 13.5, 1],
|
||||
"to": [5, 14, 3],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 2, 13, 2.5], "texture": "#o"},
|
||||
"east": {"uv": [13, 2, 15, 2.5], "texture": "#o"},
|
||||
"south": {"uv": [3, 2, 5, 2.5], "texture": "#o"},
|
||||
"west": {"uv": [1, 2, 3, 2.5], "texture": "#o"},
|
||||
"up": {"uv": [3, 1, 5, 3], "texture": "#o"},
|
||||
"down": {"uv": [3, 13, 5, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [11, 13.5, 13],
|
||||
"to": [13, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 2, 5, 2.5], "texture": "#o"},
|
||||
"east": {"uv": [1, 2, 3, 2.5], "texture": "#o"},
|
||||
"south": {"uv": [11, 2, 13, 2.5], "texture": "#o"},
|
||||
"west": {"uv": [13, 2, 15, 2.5], "texture": "#o"},
|
||||
"up": {"uv": [11, 13, 13, 15], "texture": "#o"},
|
||||
"down": {"uv": [11, 1, 13, 3], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 13.5, 13],
|
||||
"to": [5, 14, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 2, 13, 2.5], "texture": "#o"},
|
||||
"east": {"uv": [1, 2, 3, 2.5], "texture": "#o"},
|
||||
"south": {"uv": [3, 2, 5, 2.5], "texture": "#o"},
|
||||
"west": {"uv": [13, 2, 15, 2.5], "texture": "#o"},
|
||||
"up": {"uv": [3, 13, 5, 15], "texture": "#o"},
|
||||
"down": {"uv": [3, 1, 5, 3], "texture": "#o"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,159 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/iestyle/steel_texture",
|
||||
"o": "engineersdecor:blocks/iestyle/steel_texture"
|
||||
},
|
||||
"display": {
|
||||
"gui": { "rotation": [ 30, 225, 0 ], "scale": [0.625, 0.625, 0.625] },
|
||||
"fixed": { "scale": [0.5, 0.5, 0.5] },
|
||||
"ground": { "scale": [0.2, 0.2, 0.2] }
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [3, 2, 14],
|
||||
"to": [13, 3, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 13, 16, 15], "texture": "#o"},
|
||||
"east": {"uv": [12, 13, 14, 15], "texture": "#o"},
|
||||
"south": {"uv": [1, 13, 16, 15], "texture": "#o"},
|
||||
"west": {"uv": [13, 11, 15, 13], "texture": "#o"},
|
||||
"up": {"uv": [1, 11, 16, 13], "texture": "#o"},
|
||||
"down": {"uv": [1, 13, 16, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 6, 14],
|
||||
"to": [13, 7, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 13, 16, 15], "texture": "#o"},
|
||||
"east": {"uv": [6, 14, 8, 16], "texture": "#o"},
|
||||
"south": {"uv": [3, 13, 16, 15], "texture": "#o"},
|
||||
"west": {"uv": [7, 9, 9, 11], "texture": "#o"},
|
||||
"up": {"uv": [0, 13, 13, 15], "texture": "#o"},
|
||||
"down": {"uv": [3, 13, 16, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 14, 14],
|
||||
"to": [13, 15, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [2, 6, 16, 8], "texture": "#o"},
|
||||
"east": {"uv": [7, 3, 9, 5], "texture": "#o"},
|
||||
"south": {"uv": [2, 6, 16, 8], "texture": "#o"},
|
||||
"west": {"uv": [2, 6, 4, 8], "texture": "#o"},
|
||||
"up": {"uv": [0, 4, 14, 6], "texture": "#o"},
|
||||
"down": {"uv": [2, 6, 16, 8], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 10, 14],
|
||||
"to": [13, 11, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 11, 13, 13], "texture": "#o"},
|
||||
"east": {"uv": [1, 13, 3, 15], "texture": "#o"},
|
||||
"south": {"uv": [0, 11, 13, 13], "texture": "#o"},
|
||||
"west": {"uv": [0, 11, 2, 13], "texture": "#o"},
|
||||
"up": {"uv": [0, 9, 13, 11], "texture": "#o"},
|
||||
"down": {"uv": [0, 11, 13, 13], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 2, 15],
|
||||
"to": [13.25, 3, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [7, 9, 9, 11], "texture": "#o"},
|
||||
"south": {"uv": [1, 12, 4.25, 14], "texture": "#o"},
|
||||
"west": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"up": {"uv": [13, 4, 16, 6], "texture": "#o"},
|
||||
"down": {"uv": [1, 12, 4, 14], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.75, 2, 15],
|
||||
"to": [4, 3, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"south": {"uv": [11, 1, 14.25, 3], "texture": "#o"},
|
||||
"west": {"uv": [11, 9, 13, 11], "texture": "#o"},
|
||||
"up": {"uv": [12, 11, 15, 13], "texture": "#o"},
|
||||
"down": {"uv": [7, 3, 10, 5], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.75, 10, 15],
|
||||
"to": [4, 11, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"south": {"uv": [12, 14, 15.25, 16], "texture": "#o"},
|
||||
"west": {"uv": [7, 10, 9, 12], "texture": "#o"},
|
||||
"up": {"uv": [5, 12, 8, 14], "texture": "#o"},
|
||||
"down": {"uv": [4, 14, 7, 16], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 10, 15],
|
||||
"to": [13.25, 11, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1.25], "texture": "#o"},
|
||||
"east": {"uv": [2, 4, 5, 6.25], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 13, 12], "texture": "#o"},
|
||||
"west": {"uv": [0, 0, 1, 1.25], "texture": "#o"},
|
||||
"up": {"uv": [7, 11, 9, 13], "texture": "#o"},
|
||||
"down": {"uv": [8, 0, 11, 2], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.75, 6, 15],
|
||||
"to": [4, 7, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"south": {"uv": [4, 7, 7.25, 9], "texture": "#o"},
|
||||
"west": {"uv": [11, 9, 13, 11], "texture": "#o"},
|
||||
"up": {"uv": [0, 13, 3, 15], "texture": "#o"},
|
||||
"down": {"uv": [4, 7, 7, 9], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 6, 15],
|
||||
"to": [13.25, 7, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [8, 9, 10, 11], "texture": "#o"},
|
||||
"south": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"west": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"up": {"uv": [5, 13, 8, 15], "texture": "#o"},
|
||||
"down": {"uv": [8, 14, 11, 16], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.75, 14, 15],
|
||||
"to": [4, 15, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"south": {"uv": [3, 11, 6, 13], "texture": "#o"},
|
||||
"west": {"uv": [14, 7, 16, 9], "texture": "#o"},
|
||||
"up": {"uv": [7, 12, 10, 14], "texture": "#o"},
|
||||
"down": {"uv": [12, 7, 15, 9], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 14, 15],
|
||||
"to": [13.25, 15, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1.25], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 3, 2.25], "texture": "#o"},
|
||||
"south": {"uv": [0, 13, 3, 15], "texture": "#o"},
|
||||
"west": {"uv": [0, 0, 1, 1.25], "texture": "#o"},
|
||||
"up": {"uv": [3, 7, 5.25, 9], "texture": "#o"},
|
||||
"down": {"uv": [0, 0, 1.25, 1], "texture": "#o"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,166 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"o": "engineersdecor:blocks/iestyle/steel_texture",
|
||||
"particle": "engineersdecor:blocks/iestyle/steel_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [3, 2, 14],
|
||||
"to": [7, 3, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 13, 9, 15], "texture": "#o"},
|
||||
"east": {"uv": [12, 13, 14, 15], "texture": "#o"},
|
||||
"south": {"uv": [4, 10, 11, 12], "texture": "#o"},
|
||||
"west": {"uv": [13, 11, 15, 13], "texture": "#o"},
|
||||
"up": {"uv": [1, 11, 9, 13], "texture": "#o"},
|
||||
"down": {"uv": [7, 2, 14, 4], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9, 6, 14],
|
||||
"to": [13, 7, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 13, 9, 15], "texture": "#o"},
|
||||
"east": {"uv": [6, 14, 8, 16], "texture": "#o"},
|
||||
"south": {"uv": [4, 10, 11, 12], "texture": "#o"},
|
||||
"west": {"uv": [7, 9, 9, 11], "texture": "#o"},
|
||||
"up": {"uv": [6, 11, 13, 13], "texture": "#o"},
|
||||
"down": {"uv": [9, 12, 16, 14], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [9, 14, 14],
|
||||
"to": [13, 15, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [2, 6, 9, 8], "texture": "#o"},
|
||||
"east": {"uv": [7, 3, 9, 5], "texture": "#o"},
|
||||
"south": {"uv": [5, 13, 13, 15], "texture": "#o"},
|
||||
"west": {"uv": [2, 6, 4, 8], "texture": "#o"},
|
||||
"up": {"uv": [6, 9, 13, 11], "texture": "#o"},
|
||||
"down": {"uv": [4, 10, 11, 12], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [3, 10, 14],
|
||||
"to": [7, 11, 15],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 11, 6, 13], "texture": "#o"},
|
||||
"east": {"uv": [1, 13, 3, 15], "texture": "#o"},
|
||||
"south": {"uv": [4, 6, 12, 8], "texture": "#o"},
|
||||
"west": {"uv": [0, 11, 2, 13], "texture": "#o"},
|
||||
"up": {"uv": [3, 5, 11, 7], "texture": "#o"},
|
||||
"down": {"uv": [5, 7, 12, 9], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 2, 15],
|
||||
"to": [7.25, 3, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [7, 9, 9, 11], "texture": "#o"},
|
||||
"south": {"uv": [1, 12, 4.25, 14], "texture": "#o"},
|
||||
"west": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"up": {"uv": [13, 4, 16, 6], "texture": "#o"},
|
||||
"down": {"uv": [1, 12, 4, 14], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.75, 2, 15],
|
||||
"to": [4, 3, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"south": {"uv": [11, 1, 14.25, 3], "texture": "#o"},
|
||||
"west": {"uv": [11, 9, 13, 11], "texture": "#o"},
|
||||
"up": {"uv": [12, 11, 15, 13], "texture": "#o"},
|
||||
"down": {"uv": [7, 3, 10, 5], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.75, 10, 15],
|
||||
"to": [4, 11, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"south": {"uv": [12, 14, 15.25, 16], "texture": "#o"},
|
||||
"west": {"uv": [7, 10, 9, 12], "texture": "#o"},
|
||||
"up": {"uv": [5, 12, 8, 14], "texture": "#o"},
|
||||
"down": {"uv": [4, 14, 7, 16], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 10, 15],
|
||||
"to": [7.25, 11, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1.25], "texture": "#o"},
|
||||
"east": {"uv": [2, 4, 5, 6.25], "texture": "#o"},
|
||||
"south": {"uv": [10, 10, 13, 12], "texture": "#o"},
|
||||
"west": {"uv": [0, 0, 1, 1.25], "texture": "#o"},
|
||||
"up": {"uv": [7, 11, 9, 13], "texture": "#o"},
|
||||
"down": {"uv": [8, 0, 11, 2], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.75, 6, 15],
|
||||
"to": [10, 7, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"south": {"uv": [4, 7, 7.25, 9], "texture": "#o"},
|
||||
"west": {"uv": [11, 9, 13, 11], "texture": "#o"},
|
||||
"up": {"uv": [0, 13, 3, 15], "texture": "#o"},
|
||||
"down": {"uv": [4, 7, 7, 9], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 6, 15],
|
||||
"to": [13.25, 7, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [8, 9, 10, 11], "texture": "#o"},
|
||||
"south": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"west": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"up": {"uv": [5, 13, 8, 15], "texture": "#o"},
|
||||
"down": {"uv": [8, 14, 11, 16], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8.75, 14, 15],
|
||||
"to": [10, 15, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 1, 1], "texture": "#o"},
|
||||
"south": {"uv": [3, 11, 6, 13], "texture": "#o"},
|
||||
"west": {"uv": [14, 7, 16, 9], "texture": "#o"},
|
||||
"up": {"uv": [7, 12, 10, 14], "texture": "#o"},
|
||||
"down": {"uv": [12, 7, 15, 9], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 14, 15],
|
||||
"to": [13.25, 15, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 1.25, 1.25], "texture": "#o"},
|
||||
"east": {"uv": [0, 0, 3, 2.25], "texture": "#o"},
|
||||
"south": {"uv": [0, 13, 3, 15], "texture": "#o"},
|
||||
"west": {"uv": [0, 0, 1, 1.25], "texture": "#o"},
|
||||
"up": {"uv": [3, 7, 5.25, 9], "texture": "#o"},
|
||||
"down": {"uv": [0, 0, 1.25, 1], "texture": "#o"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"o": "engineersdecor:blocks/iestyle/treated_wood_rough_texture",
|
||||
"particle": "engineersdecor:blocks/iestyle/treated_wood_rough_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [4, 2, 14.625],
|
||||
"to": [12, 3, 15.625],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 11, 15, 13], "texture": "#o"},
|
||||
"east": {"uv": [12, 13, 14, 15], "texture": "#o"},
|
||||
"south": {"uv": [1, 13, 16, 15], "texture": "#o"},
|
||||
"west": {"uv": [13, 11, 15, 13], "texture": "#o"},
|
||||
"up": {"uv": [1, 11, 16, 13], "texture": "#o"},
|
||||
"down": {"uv": [1, 13, 16, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 6, 14.625],
|
||||
"to": [12, 7, 15.625],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 6, 14, 8], "texture": "#o"},
|
||||
"east": {"uv": [6, 14, 8, 16], "texture": "#o"},
|
||||
"south": {"uv": [3, 13, 16, 15], "texture": "#o"},
|
||||
"west": {"uv": [7, 9, 9, 11], "texture": "#o"},
|
||||
"up": {"uv": [0, 13, 13, 15], "texture": "#o"},
|
||||
"down": {"uv": [3, 13, 16, 15], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 14, 14.625],
|
||||
"to": [12, 15, 15.625],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 4, 14, 6], "texture": "#o"},
|
||||
"east": {"uv": [7, 3, 9, 5], "texture": "#o"},
|
||||
"south": {"uv": [2, 6, 16, 8], "texture": "#o"},
|
||||
"west": {"uv": [2, 6, 4, 8], "texture": "#o"},
|
||||
"up": {"uv": [0, 4, 14, 6], "texture": "#o"},
|
||||
"down": {"uv": [2, 6, 16, 8], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 10, 14.625],
|
||||
"to": [12, 11, 15.625],
|
||||
"faces": {
|
||||
"north": {"uv": [3, 5, 16, 7], "texture": "#o"},
|
||||
"east": {"uv": [1, 13, 3, 15], "texture": "#o"},
|
||||
"south": {"uv": [0, 11, 13, 13], "texture": "#o"},
|
||||
"west": {"uv": [0, 11, 2, 13], "texture": "#o"},
|
||||
"up": {"uv": [0, 9, 13, 11], "texture": "#o"},
|
||||
"down": {"uv": [0, 11, 13, 13], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2.75, 0, 14.5],
|
||||
"to": [4, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [2, 0, 4, 16], "texture": "#o"},
|
||||
"east": {"uv": [2, 0, 4, 16], "texture": "#o"},
|
||||
"south": {"uv": [5, 0, 7, 16], "texture": "#o"},
|
||||
"west": {"uv": [8, 0, 11, 16], "texture": "#o"},
|
||||
"up": {"uv": [11, 9, 13, 12], "texture": "#o"},
|
||||
"down": {"uv": [13, 9, 15, 12], "texture": "#o"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 0, 14.5],
|
||||
"to": [13.25, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [1, 0, 3, 16], "texture": "#o"},
|
||||
"east": {"uv": [5, 0, 7, 16], "texture": "#o"},
|
||||
"south": {"uv": [13, 0, 15, 16], "texture": "#o"},
|
||||
"west": {"uv": [1, 0, 3, 16], "texture": "#o"},
|
||||
"up": {"uv": [6, 6, 8, 9], "texture": "#o"},
|
||||
"down": {"uv": [8, 5, 10, 8], "texture": "#o"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/cube",
|
||||
"textures": {
|
||||
"side": "engineersdecor:blocks/pole/treated_wood_pole_side_texture",
|
||||
"particle": "engineersdecor:blocks/pole/treated_wood_pole_side_texture",
|
||||
"top": "engineersdecor:blocks/pole/treated_wood_pole_top_texture"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [5.75, 5.75, 0],
|
||||
"to": [10.25, 10.25, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [5.25, 5.25, 10.75, 10.75], "texture": "#top", "cullface": "north"},
|
||||
"south": {"uv": [5.25, 5.25, 10.75, 10.75], "texture": "#top", "cullface": "south"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.75, 10.25, 0],
|
||||
"to": [10.25, 10.5, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [5.25, 10.75, 10.75, 11], "texture": "#top", "cullface": "north"},
|
||||
"east": {"uv": [10.75, 0, 11, 16], "rotation": 90, "texture": "#side"},
|
||||
"south": {"uv": [5.25, 5, 10.75, 5.25], "texture": "#top", "cullface": "south"},
|
||||
"west": {"uv": [5, 0, 5.25, 16], "rotation": 90, "texture": "#side"},
|
||||
"up": {"uv": [5.25, 0, 10.75, 16], "texture": "#side"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.75, 5.5, 0],
|
||||
"to": [10.25, 5.75, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [5.25, 5, 10.75, 5.25], "texture": "#top", "cullface": "north"},
|
||||
"east": {"uv": [5, 0, 5.25, 16], "rotation": 90, "texture": "#side"},
|
||||
"south": {"uv": [5.25, 10.75, 10.75, 11], "texture": "#top", "cullface": "south"},
|
||||
"west": {"uv": [10.75, 0, 11, 16], "rotation": 90, "texture": "#side"},
|
||||
"down": {"uv": [5.25, 0, 10.75, 16], "rotation": 180, "texture": "#side"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [10.25, 5.75, 0],
|
||||
"to": [10.5, 10.25, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [10.75, 5.25, 11, 10.75], "texture": "#top", "cullface": "north"},
|
||||
"east": {"uv": [5.25, 0, 10.75, 16], "rotation": 90, "texture": "#side"},
|
||||
"south": {"uv": [10.75, 5.25, 11, 10.75], "texture": "#top", "cullface": "south"},
|
||||
"up": {"uv": [5, 0, 5.25, 16], "texture": "#side"},
|
||||
"down": {"uv": [10.75, 0, 11, 16], "rotation": 180, "texture": "#side"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [5.5, 5.75, 0],
|
||||
"to": [5.75, 10.25, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [5, 5.25, 5.25, 10.75], "texture": "#top", "cullface": "north"},
|
||||
"south": {"uv": [5, 5.25, 5.25, 10.75], "texture": "#top", "cullface": "south"},
|
||||
"west": {"uv": [5.25, 0, 10.75, 16], "rotation": 90, "texture": "#side"},
|
||||
"up": {"uv": [10.75, 0, 11, 16], "texture": "#side"},
|
||||
"down": {"uv": [5, 0, 5.25, 16], "rotation": 180, "texture": "#side"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"ground": {
|
||||
"scale": [0.2, 0.2, 0.2]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 225, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,163 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"textures": {
|
||||
"side": "engineersdecor:blocks/iestyle/ironsheet_roof",
|
||||
"particle": "engineersdecor:blocks/iestyle/ironsheet_roof",
|
||||
"top": "engineersdecor:blocks/iestyle/ironsheet_roof_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [6, 0, 0],
|
||||
"to": [8, 8, 8],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 0, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top", "cullface": "up"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 14],
|
||||
"to": [14, 16, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"rotation": 270, "texture": "#top", "cullface": "up"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [10, 0, 0],
|
||||
"to": [12, 12, 12],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 10],
|
||||
"to": [10, 12, 12],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"rotation": 90, "texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 6],
|
||||
"to": [6, 8, 8],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [2, 2, 2],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 0, 0],
|
||||
"to": [14, 14, 14],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 12],
|
||||
"to": [12, 14, 14],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"rotation": 270, "texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 0, 0],
|
||||
"to": [10, 10, 10],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 8],
|
||||
"to": [8, 10, 10],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"rotation": 90, "texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 0, 0],
|
||||
"to": [6, 6, 4],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 4],
|
||||
"to": [6, 6, 6],
|
||||
"faces": {
|
||||
"north": {"texture": "#side"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 2],
|
||||
"to": [4, 4, 4],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"west": {"texture": "#side", "cullface": "west"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 0, 0],
|
||||
"to": [4, 4, 2],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
||||
"side" : "engineersdecor:blocks/clinker_brick/clinker_brick_texture0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#side"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 8, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 0, 16, 8], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 0, 16, 8], "texture": "#side"},
|
||||
"up": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "up"},
|
||||
"down": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 8, 8],
|
||||
"to": [8, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [8, 0, 16, 8], "texture": "#side"},
|
||||
"east": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "west"},
|
||||
"up": {"uv": [0, 8, 8, 16], "texture": "#side", "cullface": "up"},
|
||||
"down": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/iestyle/ironsheet_roof",
|
||||
"side": "engineersdecor:blocks/iestyle/ironsheet_roof",
|
||||
"top": "engineersdecor:blocks/iestyle/ironsheet_roof_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#top", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top", "cullface": "west"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [2, 2, 2],
|
||||
"to": [16, 4, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 4, 4],
|
||||
"to": [16, 6, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 6, 6],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 8, 8],
|
||||
"to": [16, 10, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [10, 10, 10],
|
||||
"to": [16, 12, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 12, 12],
|
||||
"to": [16, 14, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 14, 14],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#top"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
||||
"side" : "engineersdecor:blocks/clinker_brick/clinker_brick_texture0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#side"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 8, 8],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 8, 8], "texture": "#side"},
|
||||
"east": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [8, 0, 16, 8], "texture": "#side"},
|
||||
"up": {"uv": [8, 8, 16, 16], "texture": "#side", "cullface": "up"},
|
||||
"down": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,114 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"side": "engineersdecor:blocks/iestyle/ironsheet_roof",
|
||||
"particle": "engineersdecor:blocks/iestyle/ironsheet_roof",
|
||||
"top": "engineersdecor:blocks/iestyle/ironsheet_roof_top"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [2, 2, 0],
|
||||
"to": [16, 4, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [14, 14, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top", "cullface": "up"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 2, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top", "cullface": "west"},
|
||||
"up": {"texture": "#top"},
|
||||
"down": {"texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [4, 4, 0],
|
||||
"to": [16, 6, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [6, 6, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [12, 12, 0],
|
||||
"to": [16, 14, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [10, 10, 0],
|
||||
"to": [16, 12, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 8, 0],
|
||||
"to": [16, 10, 16],
|
||||
"faces": {
|
||||
"north": {"texture": "#side", "cullface": "north"},
|
||||
"east": {"texture": "#side", "cullface": "east"},
|
||||
"south": {"texture": "#side", "cullface": "south"},
|
||||
"west": {"texture": "#top"},
|
||||
"up": {"texture": "#top"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -135, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, -90, 0]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/block",
|
||||
"textures": {
|
||||
"particle": "engineersdecor:blocks/clinker_brick/clinker_brick_texture0",
|
||||
"side" : "engineersdecor:blocks/clinker_brick/clinker_brick_texture0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"from": [0, 0, 0],
|
||||
"to": [16, 8, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 8, 16, 16], "texture": "#side", "cullface": "west"},
|
||||
"up": {"uv": [0, 0, 16, 16], "texture": "#side"},
|
||||
"down": {"uv": [0, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"from": [8, 8, 0],
|
||||
"to": [16, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [0, 0, 8, 8], "texture": "#side", "cullface": "north"},
|
||||
"east": {"uv": [0, 0, 16, 8], "texture": "#side", "cullface": "east"},
|
||||
"south": {"uv": [8, 0, 16, 8], "texture": "#side", "cullface": "south"},
|
||||
"west": {"uv": [0, 0, 16, 8], "texture": "#side"},
|
||||
"up": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "up"},
|
||||
"down": {"uv": [8, 0, 16, 16], "texture": "#side", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"thirdperson_lefthand": {
|
||||
"rotation": [75, -135, 0],
|
||||
"translation": [0, 2.5, 0],
|
||||
"scale": [0.375, 0.375, 0.375]
|
||||
},
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"head": {
|
||||
"rotation": [0, -90, 0]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"textures": {
|
||||
"wall": "engineersdecor:blocks/concrete/rebar_concrete_texture0",
|
||||
"particle": "engineersdecor:blocks/concrete/rebar_concrete_texture0"
|
||||
},
|
||||
"elements": [{
|
||||
"from": [7.9, 7.9, 7.9], "to": [8, 8, 8], "faces": { "down": {"texture": "#wall"} }
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,164 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"parent": "block/block",
|
||||
"ambientocclusion": false,
|
||||
"textures": {
|
||||
"wall": "engineersdecor:blocks/concrete/rebar_concrete_texture0",
|
||||
"particle": "engineersdecor:blocks/concrete/rebar_concrete_texture0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Center post",
|
||||
"from": [4, 0, 4],
|
||||
"to": [12, 16, 12],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 12, 16], "texture": "#wall"},
|
||||
"east": {"uv": [4, 0, 12, 16], "texture": "#wall"},
|
||||
"south": {"uv": [4, 0, 12, 16], "texture": "#wall"},
|
||||
"west": {"uv": [4, 0, 12, 16], "texture": "#wall"},
|
||||
"up": {"uv": [4, 4, 12, 12], "texture": "#wall"},
|
||||
"down": {"uv": [4, 4, 12, 12], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [5, 0, 12],
|
||||
"to": [11, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [5, 1, 11, 16], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [0, 1, 4, 16], "texture": "#wall"},
|
||||
"south": {"uv": [5, 1, 11, 16], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [12, 1, 16, 16], "texture": "#wall"},
|
||||
"up": {"uv": [5, 12, 11, 16], "texture": "#wall"},
|
||||
"down": {"uv": [5, 0, 11, 4], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [11, 0, 12],
|
||||
"to": [12, 1, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 15, 5, 16], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [0, 15, 4, 16], "texture": "#wall"},
|
||||
"south": {"uv": [11, 15, 12, 16], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [12, 15, 16, 16], "texture": "#wall"},
|
||||
"up": {"uv": [11, 12, 12, 16], "texture": "#wall"},
|
||||
"down": {"uv": [11, 0, 12, 4], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [5, 0, 0],
|
||||
"to": [11, 16, 4],
|
||||
"faces": {
|
||||
"north": {"uv": [5, 1, 11, 16], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [12, 1, 16, 16], "texture": "#wall"},
|
||||
"south": {"uv": [5, 1, 11, 16], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [0, 1, 4, 16], "texture": "#wall"},
|
||||
"up": {"uv": [5, 0, 11, 4], "texture": "#wall"},
|
||||
"down": {"uv": [5, 12, 11, 16], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [11, 0, 0],
|
||||
"to": [12, 1, 4],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 15, 5, 16], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [12, 15, 16, 16], "texture": "#wall"},
|
||||
"south": {"uv": [11, 15, 12, 16], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [0, 15, 4, 16], "texture": "#wall"},
|
||||
"up": {"uv": [11, 0, 12, 4], "texture": "#wall"},
|
||||
"down": {"uv": [11, 12, 12, 16], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [11, 14, 12],
|
||||
"to": [12, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 5, 2], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [0, 0, 4, 2], "texture": "#wall"},
|
||||
"south": {"uv": [11, 0, 12, 2], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [12, 0, 16, 2], "texture": "#wall"},
|
||||
"up": {"uv": [11, 12, 12, 16], "texture": "#wall"},
|
||||
"down": {"uv": [11, 0, 12, 4], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [11, 14, 0],
|
||||
"to": [12, 16, 4],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 5, 2], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [12, 0, 16, 2], "texture": "#wall"},
|
||||
"south": {"uv": [11, 0, 12, 2], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [0, 0, 4, 2], "texture": "#wall"},
|
||||
"up": {"uv": [11, 0, 12, 4], "texture": "#wall"},
|
||||
"down": {"uv": [11, 12, 12, 16], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [4, 0, 12],
|
||||
"to": [5, 1, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 15, 12, 16], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [0, 15, 4, 16], "texture": "#wall"},
|
||||
"south": {"uv": [4, 15, 5, 16], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [12, 15, 16, 16], "texture": "#wall"},
|
||||
"up": {"uv": [4, 12, 5, 16], "texture": "#wall"},
|
||||
"down": {"uv": [4, 0, 5, 4], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [4, 0, 0],
|
||||
"to": [5, 1, 4],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 15, 12, 16], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [12, 15, 16, 16], "texture": "#wall"},
|
||||
"south": {"uv": [4, 15, 5, 16], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [0, 15, 4, 16], "texture": "#wall"},
|
||||
"up": {"uv": [4, 0, 5, 4], "texture": "#wall"},
|
||||
"down": {"uv": [4, 12, 5, 16], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [4, 14, 0],
|
||||
"to": [5, 16, 4],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 0, 12, 2], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [12, 0, 16, 2], "texture": "#wall"},
|
||||
"south": {"uv": [4, 0, 5, 2], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [0, 0, 4, 2], "texture": "#wall"},
|
||||
"up": {"uv": [4, 0, 5, 4], "texture": "#wall"},
|
||||
"down": {"uv": [4, 12, 5, 16], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Full wall",
|
||||
"from": [4, 14, 12],
|
||||
"to": [5, 16, 16],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 0, 12, 2], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [0, 0, 4, 2], "texture": "#wall"},
|
||||
"south": {"uv": [4, 0, 5, 2], "texture": "#wall", "cullface": "south"},
|
||||
"west": {"uv": [12, 0, 16, 2], "texture": "#wall"},
|
||||
"up": {"uv": [4, 12, 5, 16], "texture": "#wall"},
|
||||
"down": {"uv": [4, 0, 5, 4], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
],
|
||||
"display": {
|
||||
"gui": {
|
||||
"rotation": [30, 135, 0],
|
||||
"scale": [0.625, 0.625, 0.625]
|
||||
},
|
||||
"fixed": {
|
||||
"rotation": [0, 90, 0],
|
||||
"scale": [0.5, 0.5, 0.5]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"textures": {
|
||||
"wall": "engineersdecor:blocks/concrete/rebar_concrete_texture0",
|
||||
"particle": "engineersdecor:blocks/concrete/rebar_concrete_texture0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "Center post",
|
||||
"from": [4, 0, 4],
|
||||
"to": [12, 16, 12],
|
||||
"faces": {
|
||||
"north": {"uv": [4, 0, 12, 16], "texture": "#wall"},
|
||||
"east": {"uv": [4, 0, 12, 16], "texture": "#wall"},
|
||||
"south": {"uv": [4, 0, 12, 16], "texture": "#wall"},
|
||||
"west": {"uv": [4, 0, 12, 16], "texture": "#wall"},
|
||||
"up": {"uv": [4, 4, 12, 12], "texture": "#wall", "cullface": "up"},
|
||||
"down": {"uv": [4, 4, 12, 12], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,65 @@
|
|||
{
|
||||
"credit": "I made this with the Blockbench",
|
||||
"textures": {
|
||||
"wall": "engineersdecor:blocks/concrete/rebar_concrete_texture0",
|
||||
"particle": "engineersdecor:blocks/concrete/rebar_concrete_texture0"
|
||||
},
|
||||
"elements": [
|
||||
{
|
||||
"name": "wall",
|
||||
"from": [5, 0, 0],
|
||||
"to": [11, 16, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [5, 0, 11, 16], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [8, 0, 16, 16], "texture": "#wall"},
|
||||
"west": {"uv": [0, 0, 8, 16], "texture": "#wall"},
|
||||
"up": {"uv": [5, 0, 11, 8], "texture": "#wall"},
|
||||
"down": {"uv": [5, 8, 11, 16], "texture": "#wall"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wall",
|
||||
"from": [11, 14, 0],
|
||||
"to": [11.875, 16, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [4.25, 0, 5, 1.875], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [8, 0, 16, 1.875], "texture": "#wall"},
|
||||
"up": {"uv": [11, 0, 11.75, 8], "texture": "#wall"},
|
||||
"down": {"uv": [11, 8, 11.75, 16], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wall",
|
||||
"from": [11, 0, 0],
|
||||
"to": [11.875, 1, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [4.125, 15, 5, 16], "texture": "#wall", "cullface": "north"},
|
||||
"east": {"uv": [8, 15, 16, 16], "texture": "#wall"},
|
||||
"up": {"uv": [11, 0, 11.875, 8], "texture": "#wall"},
|
||||
"down": {"uv": [11, 8, 11.875, 16], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wall",
|
||||
"from": [4.125, 14, 0],
|
||||
"to": [5, 16, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [11, 0, 11.75, 1.875], "texture": "#wall", "cullface": "north"},
|
||||
"west": {"uv": [0, 0, 8, 1.875], "texture": "#wall"},
|
||||
"up": {"uv": [4.25, 0, 5, 8], "texture": "#wall"},
|
||||
"down": {"uv": [4.25, 8, 5, 16], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wall",
|
||||
"from": [4.125, 0, 0],
|
||||
"to": [5, 1, 8],
|
||||
"faces": {
|
||||
"north": {"uv": [10.875, 15, 11.75, 16], "texture": "#wall", "cullface": "north"},
|
||||
"west": {"uv": [0, 15, 8, 16], "texture": "#wall"},
|
||||
"up": {"uv": [4.25, 0, 5.125, 8], "texture": "#wall"},
|
||||
"down": {"uv": [4.25, 8, 5.125, 16], "texture": "#wall", "cullface": "down"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,138 @@
|
|||
[
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "itemSlag"
|
||||
},
|
||||
"name": "itemSlag"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "plankTreatedWood"
|
||||
},
|
||||
"name": "plankTreatedWood"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "slabTreatedWood"
|
||||
},
|
||||
"name": "slabTreatedWood"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "stickTreatedWood"
|
||||
},
|
||||
"name": "stickTreatedWood"
|
||||
},
|
||||
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "plateSteel"
|
||||
},
|
||||
"name": "plateSteel"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "stickSteel"
|
||||
},
|
||||
"name": "stickSteel"
|
||||
},
|
||||
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "stickIron"
|
||||
},
|
||||
"name": "stickIron"
|
||||
},
|
||||
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "plankWood"
|
||||
},
|
||||
"name": "plankWood"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "stickWood"
|
||||
},
|
||||
"name": "stickWood"
|
||||
},
|
||||
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "sand"
|
||||
},
|
||||
"name": "sand"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "sandstone"
|
||||
},
|
||||
"name": "sandstone"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "bricksStone"
|
||||
},
|
||||
"name": "bricksStone"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "ingotBrick"
|
||||
},
|
||||
"name": "ingotBrick"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "ingotBrickNether"
|
||||
},
|
||||
"name": "ingotBrickNether"
|
||||
},
|
||||
{
|
||||
"ingredient": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "ingotBrick"
|
||||
},
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "ingotBrickNether"
|
||||
}
|
||||
],
|
||||
"name": "ingotAnyBrick"
|
||||
},
|
||||
{
|
||||
"ingredient": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "stickIron"
|
||||
},
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "stickSteel"
|
||||
}
|
||||
],
|
||||
"name": "stickFerroMetal"
|
||||
},
|
||||
{
|
||||
"ingredient": {
|
||||
"item": "immersiveengineering:stone_decoration",
|
||||
"data": 5
|
||||
},
|
||||
"name": "blockConcreteIe"
|
||||
}
|
||||
|
||||
]
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"conditions": {
|
||||
"grc": "wile.engineersdecor.detail.RecipeCondModSpecific"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:clinker_brick_block"
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"BBB",
|
||||
"BNB",
|
||||
"BBB"
|
||||
],
|
||||
"key": {
|
||||
"B": {
|
||||
"item": "#ingotAnyBrick",
|
||||
"data": 0
|
||||
},
|
||||
"N": {
|
||||
"item": "minecraft:brick_block",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:clinker_brick_block",
|
||||
"count": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:clinker_brick_stairs"
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"C ",
|
||||
"CC ",
|
||||
"CCC"
|
||||
],
|
||||
"key": {
|
||||
"C": {
|
||||
"item": "engineersdecor:clinker_brick_block",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:clinker_brick_stairs",
|
||||
"count": 9
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:clinker_brick_block"
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"SS",
|
||||
"SS"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "engineersdecor:clinker_brick_stairs",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:clinker_brick_block",
|
||||
"count": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:concrete_wall",
|
||||
"required": ["immersiveengineering:stone_decoration"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" ",
|
||||
"CCC",
|
||||
"CCC"
|
||||
],
|
||||
"key": {
|
||||
"C": {
|
||||
"item": "#blockConcreteIe",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:concrete_wall",
|
||||
"count": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:metal_rung_ladder",
|
||||
"required": ["immersiveengineering:material"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"S S",
|
||||
"SSS",
|
||||
" "
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "#stickFerroMetal",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:metal_rung_ladder",
|
||||
"count": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:metal_rung_steps",
|
||||
"required": ["immersiveengineering:material"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" SS",
|
||||
"SS ",
|
||||
" SS"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "#stickFerroMetal",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:metal_rung_steps",
|
||||
"count": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:rebar_concrete",
|
||||
"required": ["immersiveengineering:stone_decoration"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"SCS",
|
||||
"CSC",
|
||||
"SCS"
|
||||
],
|
||||
"key": {
|
||||
"C": {
|
||||
"item": "#blockConcreteIe",
|
||||
"data": 0
|
||||
},
|
||||
"S": {
|
||||
"item": "#stickSteel",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:rebar_concrete",
|
||||
"count": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:rebar_concrete_stairs"
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"C ",
|
||||
"CC ",
|
||||
"CCC"
|
||||
],
|
||||
"key": {
|
||||
"C": {
|
||||
"item": "engineersdecor:rebar_concrete",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:rebar_concrete_stairs",
|
||||
"count": 9
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:rebar_concrete_wall"
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" ",
|
||||
"CCC",
|
||||
"CCC"
|
||||
],
|
||||
"key": {
|
||||
"C": {
|
||||
"item": "engineersdecor:rebar_concrete",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:rebar_concrete_wall",
|
||||
"count": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:clinker_brick_block",
|
||||
"required": ["immersiveengineering:material"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"BBB",
|
||||
"BSB",
|
||||
"BBB"
|
||||
],
|
||||
"key": {
|
||||
"B": {
|
||||
"item": "#ingotBrick",
|
||||
"data": 0
|
||||
},
|
||||
"S": {
|
||||
"item": "#itemSlag",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:slag_brick_block",
|
||||
"count": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:clinker_brick_block",
|
||||
"missing": ["immersiveengineering:material"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"BBB",
|
||||
"BSB",
|
||||
"BBB"
|
||||
],
|
||||
"key": {
|
||||
"B": {
|
||||
"item": "#ingotBrick",
|
||||
"data": 0
|
||||
},
|
||||
"S": {
|
||||
"item": "minecraft:nether_brick",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:slag_brick_block",
|
||||
"count": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:slag_brick_stairs"
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"C ",
|
||||
"CC ",
|
||||
"CCC"
|
||||
],
|
||||
"key": {
|
||||
"C": {
|
||||
"item": "engineersdecor:slag_brick_block",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:slag_brick_stairs",
|
||||
"count": 9
|
||||
}
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:treated_wood_ladder",
|
||||
"required": ["immersiveengineering:material"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"S S",
|
||||
"SSS",
|
||||
"S S"
|
||||
],
|
||||
"key": {
|
||||
"S": {
|
||||
"item": "#stickTreatedWood",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:treated_wood_ladder",
|
||||
"count": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:treated_wood_pole",
|
||||
"required": ["immersiveengineering:material"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" S ",
|
||||
" W ",
|
||||
" W "
|
||||
],
|
||||
"key": {
|
||||
"W": {
|
||||
"item": "#plankTreatedWood",
|
||||
"data": 0
|
||||
},
|
||||
"S": {
|
||||
"item": "#slabTreatedWood",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:treated_wood_pole",
|
||||
"count": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"conditions": [
|
||||
{
|
||||
"type": "engineersdecor:grc",
|
||||
"result": "engineersdecor:treated_wood_table",
|
||||
"required": ["immersiveengineering:material"]
|
||||
}
|
||||
],
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"WWW",
|
||||
"S S",
|
||||
"S S"
|
||||
],
|
||||
"key": {
|
||||
"W": {
|
||||
"item": "#slabTreatedWood",
|
||||
"data": 0
|
||||
},
|
||||
"S": {
|
||||
"item": "engineersdecor:treated_wood_pole",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "engineersdecor:treated_wood_table",
|
||||
"count": 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 748 B |
After Width: | Height: | Size: 736 B |
After Width: | Height: | Size: 731 B |
After Width: | Height: | Size: 728 B |
After Width: | Height: | Size: 746 B |
After Width: | Height: | Size: 724 B |
After Width: | Height: | Size: 740 B |
After Width: | Height: | Size: 739 B |
After Width: | Height: | Size: 607 B |
After Width: | Height: | Size: 623 B |
After Width: | Height: | Size: 639 B |
After Width: | Height: | Size: 618 B |
After Width: | Height: | Size: 612 B |
After Width: | Height: | Size: 619 B |
After Width: | Height: | Size: 611 B |
After Width: | Height: | Size: 615 B |
After Width: | Height: | Size: 415 B |
After Width: | Height: | Size: 509 B |
After Width: | Height: | Size: 527 B |
After Width: | Height: | Size: 535 B |
After Width: | Height: | Size: 584 B |
After Width: | Height: | Size: 563 B |
After Width: | Height: | Size: 596 B |
After Width: | Height: | Size: 565 B |
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 197 B |
After Width: | Height: | Size: 734 B |