SHA256
first commit
This commit is contained in:
commit
1744fcefa0
390 files changed
+5835
No files matched your search
@@ -0,0 +1,3 @@
|
|||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mp4 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ogg filter=lfs diff=lfs merge=lfs -text
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
run/
|
||||||
|
/models/
|
||||||
|
gradle/
|
||||||
|
build/
|
||||||
|
/elements/
|
||||||
|
.idea/
|
||||||
|
*.class
|
||||||
|
*.log
|
||||||
|
*.ctxt
|
||||||
|
.mtj.tmp/
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.nar
|
||||||
|
*.ear
|
||||||
|
*.zip
|
||||||
|
*.tar.gz
|
||||||
|
*.rar
|
||||||
|
hs_err_pid*
|
||||||
|
replay_pid*
|
||||||
|
.gradle/
|
||||||
|
.mcreator/
|
||||||
|
.vscode/
|
||||||
|
*.mcreator
|
||||||
|
mcreator.gradle
|
||||||
|
.eclipse/
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
plugins {
|
||||||
|
id 'eclipse'
|
||||||
|
id 'net.neoforged.moddev' version '2.0.141'
|
||||||
|
}
|
||||||
|
|
||||||
|
version = '1.0'
|
||||||
|
base.archivesName = "modid"
|
||||||
|
|
||||||
|
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
|
||||||
|
|
||||||
|
neoForge {
|
||||||
|
version = "21.1.234"
|
||||||
|
|
||||||
|
runs {
|
||||||
|
client {
|
||||||
|
client()
|
||||||
|
|
||||||
|
programArgument "--username"
|
||||||
|
programArgument "chillcog"
|
||||||
|
|
||||||
|
def mcreatorJvmOptions = System.getenv('MCREATOR_JVM_OPTIONS')
|
||||||
|
if (mcreatorJvmOptions) {
|
||||||
|
mcreatorJvmOptions.split("\\s+").findAll { it.trim() }.each { arg ->
|
||||||
|
jvmArgument(arg)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
server {
|
||||||
|
server()
|
||||||
|
}
|
||||||
|
|
||||||
|
configureEach {
|
||||||
|
systemProperty 'forge.logging.markers', 'REGISTRIES'
|
||||||
|
logLevel = org.slf4j.event.Level.DEBUG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mods {
|
||||||
|
mcreator {
|
||||||
|
sourceSet sourceSets.main
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks.withType(JavaCompile).configureEach {
|
||||||
|
options.encoding = 'UTF-8'
|
||||||
|
}
|
||||||
|
|
||||||
|
apply from: 'mcreator.gradle'
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
org.gradle.jvmargs=-Xmx1G
|
||||||
|
org.gradle.daemon=true
|
||||||
|
org.gradle.parallel=true
|
||||||
|
org.gradle.caching=true
|
||||||
|
org.gradle.configuration-cache=true
|
||||||
@@ -0,0 +1,248 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copyright © 2015 the original authors.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
#
|
||||||
|
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# Gradle start up script for POSIX generated by Gradle.
|
||||||
|
#
|
||||||
|
# Important for running:
|
||||||
|
#
|
||||||
|
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||||
|
# noncompliant, but you have some other compliant shell such as ksh or
|
||||||
|
# bash, then to run this script, type that shell name before the whole
|
||||||
|
# command line, like:
|
||||||
|
#
|
||||||
|
# ksh Gradle
|
||||||
|
#
|
||||||
|
# Busybox and similar reduced shells will NOT work, because this script
|
||||||
|
# requires all of these POSIX shell features:
|
||||||
|
# * functions;
|
||||||
|
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||||
|
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||||
|
# * compound commands having a testable exit status, especially «case»;
|
||||||
|
# * various built-in commands including «command», «set», and «ulimit».
|
||||||
|
#
|
||||||
|
# Important for patching:
|
||||||
|
#
|
||||||
|
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||||
|
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||||
|
#
|
||||||
|
# The "traditional" practice of packing multiple parameters into a
|
||||||
|
# space-separated string is a well documented source of bugs and security
|
||||||
|
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||||
|
# options in "$@", and eventually passing that to Java.
|
||||||
|
#
|
||||||
|
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||||
|
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||||
|
# see the in-line comments for details.
|
||||||
|
#
|
||||||
|
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||||
|
# Darwin, MinGW, and NonStop.
|
||||||
|
#
|
||||||
|
# (3) This script is generated from the Groovy template
|
||||||
|
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||||
|
# within the Gradle project.
|
||||||
|
#
|
||||||
|
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
# Attempt to set APP_HOME
|
||||||
|
|
||||||
|
# Resolve links: $0 may be a link
|
||||||
|
app_path=$0
|
||||||
|
|
||||||
|
# Need this for daisy-chained symlinks.
|
||||||
|
while
|
||||||
|
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||||
|
[ -h "$app_path" ]
|
||||||
|
do
|
||||||
|
ls=$( ls -ld "$app_path" )
|
||||||
|
link=${ls#*' -> '}
|
||||||
|
case $link in #(
|
||||||
|
/*) app_path=$link ;; #(
|
||||||
|
*) app_path=$APP_HOME$link ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# This is normally unused
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
APP_BASE_NAME=${0##*/}
|
||||||
|
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||||
|
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
|
||||||
|
|
||||||
|
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||||
|
MAX_FD=maximum
|
||||||
|
|
||||||
|
warn () {
|
||||||
|
echo "$*"
|
||||||
|
} >&2
|
||||||
|
|
||||||
|
die () {
|
||||||
|
echo
|
||||||
|
echo "$*"
|
||||||
|
echo
|
||||||
|
exit 1
|
||||||
|
} >&2
|
||||||
|
|
||||||
|
# OS specific support (must be 'true' or 'false').
|
||||||
|
cygwin=false
|
||||||
|
msys=false
|
||||||
|
darwin=false
|
||||||
|
nonstop=false
|
||||||
|
case "$( uname )" in #(
|
||||||
|
CYGWIN* ) cygwin=true ;; #(
|
||||||
|
Darwin* ) darwin=true ;; #(
|
||||||
|
MSYS* | MINGW* ) msys=true ;; #(
|
||||||
|
NONSTOP* ) nonstop=true ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Determine the Java command to use to start the JVM.
|
||||||
|
if [ -n "$JAVA_HOME" ] ; then
|
||||||
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||||
|
# IBM's JDK on AIX uses strange locations for the executables
|
||||||
|
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||||
|
else
|
||||||
|
JAVACMD=$JAVA_HOME/bin/java
|
||||||
|
fi
|
||||||
|
if [ ! -x "$JAVACMD" ] ; then
|
||||||
|
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
location of your Java installation."
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
JAVACMD=java
|
||||||
|
if ! command -v java >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
|
|
||||||
|
Please set the JAVA_HOME variable in your environment to match the
|
||||||
|
location of your Java installation."
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Increase the maximum file descriptors if we can.
|
||||||
|
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||||
|
case $MAX_FD in #(
|
||||||
|
max*)
|
||||||
|
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||||
|
# shellcheck disable=SC2039,SC3045
|
||||||
|
MAX_FD=$( ulimit -H -n ) ||
|
||||||
|
warn "Could not query maximum file descriptor limit"
|
||||||
|
esac
|
||||||
|
case $MAX_FD in #(
|
||||||
|
'' | soft) :;; #(
|
||||||
|
*)
|
||||||
|
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||||
|
# shellcheck disable=SC2039,SC3045
|
||||||
|
ulimit -n "$MAX_FD" ||
|
||||||
|
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Collect all arguments for the java command, stacking in reverse order:
|
||||||
|
# * args from the command line
|
||||||
|
# * the main class name
|
||||||
|
# * -classpath
|
||||||
|
# * -D...appname settings
|
||||||
|
# * --module-path (only if needed)
|
||||||
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||||
|
|
||||||
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
|
if "$cygwin" || "$msys" ; then
|
||||||
|
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||||
|
|
||||||
|
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||||
|
|
||||||
|
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||||
|
for arg do
|
||||||
|
if
|
||||||
|
case $arg in #(
|
||||||
|
-*) false ;; # don't mess with options #(
|
||||||
|
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||||
|
[ -e "$t" ] ;; #(
|
||||||
|
*) false ;;
|
||||||
|
esac
|
||||||
|
then
|
||||||
|
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||||
|
fi
|
||||||
|
# Roll the args list around exactly as many times as the number of
|
||||||
|
# args, so each arg winds up back in the position where it started, but
|
||||||
|
# possibly modified.
|
||||||
|
#
|
||||||
|
# NB: a `for` loop captures its iteration list before it begins, so
|
||||||
|
# changing the positional parameters here affects neither the number of
|
||||||
|
# iterations, nor the values presented in `arg`.
|
||||||
|
shift # remove old arg
|
||||||
|
set -- "$@" "$arg" # push replacement arg
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||||
|
|
||||||
|
# Collect all arguments for the java command:
|
||||||
|
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||||
|
# and any embedded shellness will be escaped.
|
||||||
|
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||||
|
# treated as '${Hostname}' itself on the command line.
|
||||||
|
|
||||||
|
set -- \
|
||||||
|
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||||
|
-jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
|
||||||
|
"$@"
|
||||||
|
|
||||||
|
# Stop when "xargs" is not available.
|
||||||
|
if ! command -v xargs >/dev/null 2>&1
|
||||||
|
then
|
||||||
|
die "xargs is not available"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Use "xargs" to parse quoted args.
|
||||||
|
#
|
||||||
|
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||||
|
#
|
||||||
|
# In Bash we could simply go:
|
||||||
|
#
|
||||||
|
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||||
|
# set -- "${ARGS[@]}" "$@"
|
||||||
|
#
|
||||||
|
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||||
|
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||||
|
# character that might be a shell metacharacter, then use eval to reverse
|
||||||
|
# that process (while maintaining the separation between arguments), and wrap
|
||||||
|
# the whole thing up as a single "set" statement.
|
||||||
|
#
|
||||||
|
# This will of course break if any of these variables contains a newline or
|
||||||
|
# an unmatched quote.
|
||||||
|
#
|
||||||
|
|
||||||
|
eval "set -- $(
|
||||||
|
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||||
|
xargs -n1 |
|
||||||
|
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||||
|
tr '\n' ' '
|
||||||
|
)" '"$@"'
|
||||||
|
|
||||||
|
exec "$JAVACMD" "$@"
|
||||||
Vendored
+93
@@ -0,0 +1,93 @@
|
|||||||
|
@rem
|
||||||
|
@rem Copyright 2015 the original author or authors.
|
||||||
|
@rem
|
||||||
|
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@rem you may not use this file except in compliance with the License.
|
||||||
|
@rem You may obtain a copy of the License at
|
||||||
|
@rem
|
||||||
|
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
@rem
|
||||||
|
@rem Unless required by applicable law or agreed to in writing, software
|
||||||
|
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
@rem See the License for the specific language governing permissions and
|
||||||
|
@rem limitations under the License.
|
||||||
|
@rem
|
||||||
|
@rem SPDX-License-Identifier: Apache-2.0
|
||||||
|
@rem
|
||||||
|
|
||||||
|
@if "%DEBUG%"=="" @echo off
|
||||||
|
@rem ##########################################################################
|
||||||
|
@rem
|
||||||
|
@rem Gradle startup script for Windows
|
||||||
|
@rem
|
||||||
|
@rem ##########################################################################
|
||||||
|
|
||||||
|
@rem Set local scope for the variables with windows NT shell
|
||||||
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
|
|
||||||
|
set DIRNAME=%~dp0
|
||||||
|
if "%DIRNAME%"=="" set DIRNAME=.
|
||||||
|
@rem This is normally unused
|
||||||
|
set APP_BASE_NAME=%~n0
|
||||||
|
set APP_HOME=%DIRNAME%
|
||||||
|
|
||||||
|
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||||
|
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||||
|
|
||||||
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
|
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||||
|
|
||||||
|
@rem Find java.exe
|
||||||
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
|
|
||||||
|
set JAVA_EXE=java.exe
|
||||||
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
|
echo. 1>&2
|
||||||
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||||
|
echo. 1>&2
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
|
goto fail
|
||||||
|
|
||||||
|
:findJavaFromJavaHome
|
||||||
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
|
echo. 1>&2
|
||||||
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||||
|
echo. 1>&2
|
||||||
|
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||||
|
echo location of your Java installation. 1>&2
|
||||||
|
|
||||||
|
goto fail
|
||||||
|
|
||||||
|
:execute
|
||||||
|
@rem Setup the command line
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@rem Execute Gradle
|
||||||
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
|
||||||
|
|
||||||
|
:end
|
||||||
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||||
|
|
||||||
|
:fail
|
||||||
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||||
|
rem the _cmd.exe /c_ return code!
|
||||||
|
set EXIT_CODE=%ERRORLEVEL%
|
||||||
|
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||||
|
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||||
|
exit /b %EXIT_CODE%
|
||||||
|
|
||||||
|
:mainEnd
|
||||||
|
if "%OS%"=="Windows_NT" endlocal
|
||||||
|
|
||||||
|
:omega
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
pluginManagement {
|
||||||
|
repositories {
|
||||||
|
mavenLocal()
|
||||||
|
gradlePluginPortal()
|
||||||
|
maven { url = 'https://maven.neoforged.net/releases' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
|
||||||
|
}
|
||||||
@@ -0,0 +1,92 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
|
||||||
|
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
|
||||||
|
import net.neoforged.neoforge.network.handling.IPayloadHandler;
|
||||||
|
import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent;
|
||||||
|
import net.neoforged.neoforge.event.tick.ServerTickEvent;
|
||||||
|
import net.neoforged.neoforge.common.NeoForge;
|
||||||
|
import net.neoforged.fml.util.thread.SidedThreadGroups;
|
||||||
|
import net.neoforged.fml.common.Mod;
|
||||||
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
|
import net.neoforged.bus.api.IEventBus;
|
||||||
|
|
||||||
|
import net.minecraft.server.TickTask;
|
||||||
|
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
||||||
|
import net.minecraft.network.codec.StreamCodec;
|
||||||
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
|
|
||||||
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
|
import java.util.Queue;
|
||||||
|
import java.util.PriorityQueue;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Comparator;
|
||||||
|
|
||||||
|
import it.unimi.dsi.fastutil.ints.IntObjectPair;
|
||||||
|
import it.unimi.dsi.fastutil.ints.IntObjectImmutablePair;
|
||||||
|
|
||||||
|
import com.chillcog.chillcogsbackrooms.init.ChillcogsBackroomsModTabs;
|
||||||
|
import com.chillcog.chillcogsbackrooms.init.ChillcogsBackroomsModItems;
|
||||||
|
import com.chillcog.chillcogsbackrooms.init.ChillcogsBackroomsModBlocks;
|
||||||
|
|
||||||
|
@Mod("chillcogs_backrooms")
|
||||||
|
public class ChillcogsBackroomsMod {
|
||||||
|
public static final Logger LOGGER = LogManager.getLogger(ChillcogsBackroomsMod.class);
|
||||||
|
public static final String MODID = "chillcogs_backrooms";
|
||||||
|
|
||||||
|
public ChillcogsBackroomsMod(IEventBus modEventBus) {
|
||||||
|
// Start of user code block mod constructor
|
||||||
|
// End of user code block mod constructor
|
||||||
|
NeoForge.EVENT_BUS.register(this);
|
||||||
|
modEventBus.addListener(this::registerNetworking);
|
||||||
|
ChillcogsBackroomsModBlocks.REGISTRY.register(modEventBus);
|
||||||
|
ChillcogsBackroomsModItems.REGISTRY.register(modEventBus);
|
||||||
|
ChillcogsBackroomsModTabs.REGISTRY.register(modEventBus);
|
||||||
|
// Start of user code block mod init
|
||||||
|
// End of user code block mod init
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start of user code block mod methods
|
||||||
|
// End of user code block mod methods
|
||||||
|
private static boolean networkingRegistered = false;
|
||||||
|
private static final Map<CustomPacketPayload.Type<?>, NetworkMessage<?>> MESSAGES = new HashMap<>();
|
||||||
|
|
||||||
|
private record NetworkMessage<T extends CustomPacketPayload>(StreamCodec<? extends FriendlyByteBuf, T> reader, IPayloadHandler<T> handler) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T extends CustomPacketPayload> void addNetworkMessage(CustomPacketPayload.Type<T> id, StreamCodec<? extends FriendlyByteBuf, T> reader, IPayloadHandler<T> handler) {
|
||||||
|
if (networkingRegistered)
|
||||||
|
throw new IllegalStateException("Cannot register new network messages after networking has been registered");
|
||||||
|
MESSAGES.put(id, new NetworkMessage<>(reader, handler));
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings({"rawtypes", "unchecked"})
|
||||||
|
private void registerNetworking(final RegisterPayloadHandlersEvent event) {
|
||||||
|
final PayloadRegistrar registrar = event.registrar(MODID);
|
||||||
|
MESSAGES.forEach((id, networkMessage) -> registrar.playBidirectional(id, ((NetworkMessage) networkMessage).reader(), ((NetworkMessage) networkMessage).handler()));
|
||||||
|
networkingRegistered = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final Queue<IntObjectPair<Runnable>> workToBeScheduled = new ConcurrentLinkedQueue<>();
|
||||||
|
private static final PriorityQueue<TickTask> workQueue = new PriorityQueue<>(Comparator.comparingInt(TickTask::getTick));
|
||||||
|
|
||||||
|
public static void queueServerWork(int delay, Runnable action) {
|
||||||
|
if (Thread.currentThread().getThreadGroup() == SidedThreadGroups.SERVER)
|
||||||
|
workToBeScheduled.add(new IntObjectImmutablePair<>(delay, action));
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public void tick(ServerTickEvent.Post event) {
|
||||||
|
int currentTick = event.getServer().getTickCount();
|
||||||
|
IntObjectPair<Runnable> work;
|
||||||
|
while ((work = workToBeScheduled.poll()) != null) {
|
||||||
|
workQueue.add(new TickTask(currentTick + work.leftInt(), work.right()));
|
||||||
|
}
|
||||||
|
while (!workQueue.isEmpty() && currentTick >= workQueue.peek().getTick()) {
|
||||||
|
workQueue.poll().run();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class BallpitBlock extends Block {
|
||||||
|
public BallpitBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000).noCollission());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.material.PushReaction;
|
||||||
|
import net.minecraft.world.level.block.state.properties.BlockSetType;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.DoorBlock;
|
||||||
|
|
||||||
|
public class BlackDoorBlock extends DoorBlock {
|
||||||
|
public BlackDoorBlock() {
|
||||||
|
super(BlockSetType.IRON, BlockBehaviour.Properties.of().sound(SoundType.METAL).strength(1f, 10f).pushReaction(PushReaction.DESTROY));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class CarpetBlock extends Block {
|
||||||
|
public CarpetBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class CarpetLevel4Block extends Block {
|
||||||
|
public CarpetLevel4Block() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class CeilingBlock extends Block {
|
||||||
|
public CeilingBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ConcreteBlock extends Block {
|
||||||
|
public ConcreteBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ConcretePillarBlock extends Block {
|
||||||
|
public ConcretePillarBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class CrateBlock extends Block {
|
||||||
|
public CrateBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(5f, 10f));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class DarkPoolTilesBlock extends Block {
|
||||||
|
public DarkPoolTilesBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.BONE_BLOCK).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class DarkenedConcreteBlock extends Block {
|
||||||
|
public DarkenedConcreteBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import org.checkerframework.checker.units.qual.s;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class FakeCloudsBlock extends Block {
|
||||||
|
public FakeCloudsBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.AMETHYST).strength(-1, 3600000).lightLevel(s -> 15));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import org.checkerframework.checker.units.qual.s;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class FalseStarsBlock extends Block {
|
||||||
|
public FalseStarsBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.AMETHYST).strength(-1, 3600000).lightLevel(s -> 8));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class FunFlooringBlock extends Block {
|
||||||
|
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public FunFlooringBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().strength(-1, 3600000));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||||
|
return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class FunGreenWoolBlock extends Block {
|
||||||
|
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public FunGreenWoolBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||||
|
return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class HotelCarpetBlock extends Block {
|
||||||
|
public HotelCarpetBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class HotelCarpetCorner2Block extends Block {
|
||||||
|
public HotelCarpetCorner2Block() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.GRAVEL).strength(1f, 10f));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class HotelCarpetCornerBlock extends Block {
|
||||||
|
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public HotelCarpetCornerBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||||
|
return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class HotelCarpetEdge2Block extends Block {
|
||||||
|
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public HotelCarpetEdge2Block() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||||
|
return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class HotelCarpetEdgeBlock extends Block {
|
||||||
|
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public HotelCarpetEdgeBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(1f, 10f));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||||
|
return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class HotelCarpetInnerCornerBlock extends Block {
|
||||||
|
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public HotelCarpetInnerCornerBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||||
|
return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class HotelCarpetMiddleBlock extends Block {
|
||||||
|
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public HotelCarpetMiddleBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||||
|
return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class Level4CeilingBlock extends Block {
|
||||||
|
public Level4CeilingBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class Level4WallBlock extends Block {
|
||||||
|
public Level4WallBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import org.checkerframework.checker.units.qual.s;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class LightBlock extends Block {
|
||||||
|
public LightBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.GLASS).strength(-1, 3600000).lightLevel(s -> 15).hasPostProcess((bs, br, bp) -> true).emissiveRendering((bs, br, bp) -> true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class LightOffBlock extends Block {
|
||||||
|
public LightOffBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.GLASS).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class LightScarletWallBlock extends Block {
|
||||||
|
public LightScarletWallBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ManilaCarpetBlock extends Block {
|
||||||
|
public ManilaCarpetBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ManilaCeilingBlock extends Block {
|
||||||
|
public ManilaCeilingBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ManilaWallpaperBlock extends Block {
|
||||||
|
public ManilaWallpaperBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ParadisalGrassBlock extends Block {
|
||||||
|
public ParadisalGrassBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.GRAVEL).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
||||||
|
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.RotatedPillarBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class ParadisalLogBlock extends Block {
|
||||||
|
public static final EnumProperty<Direction.Axis> AXIS = BlockStateProperties.AXIS;
|
||||||
|
|
||||||
|
public ParadisalLogBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(-1, 3600000));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(AXIS, Direction.Axis.Y));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(AXIS);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(AXIS, context.getClickedFace().getAxis());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return RotatedPillarBlock.rotatePillar(state, rot);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class PoolTilesBlock extends Block {
|
||||||
|
public PoolTilesBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.BONE_BLOCK).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.material.PushReaction;
|
||||||
|
import net.minecraft.world.level.block.state.properties.BlockSetType;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.DoorBlock;
|
||||||
|
|
||||||
|
public class RedDoorBlock extends DoorBlock {
|
||||||
|
public RedDoorBlock() {
|
||||||
|
super(BlockSetType.OAK, BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(1f, 10f).noOcclusion().pushReaction(PushReaction.DESTROY).isRedstoneConductor((bs, br, bp) -> false));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
|
import net.minecraft.world.phys.shapes.Shapes;
|
||||||
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.level.BlockGetter;
|
||||||
|
import net.minecraft.core.BlockPos;
|
||||||
|
|
||||||
|
public class RedFunCarpetBlock extends Block {
|
||||||
|
public RedFunCarpetBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000).noOcclusion().isRedstoneConductor((bs, br, bp) -> false));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean propagatesSkylightDown(BlockState state, BlockGetter reader, BlockPos pos) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLightBlock(BlockState state, BlockGetter worldIn, BlockPos pos) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VoxelShape getVisualShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
|
||||||
|
return Shapes.empty();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class ScarletCarpetBlock extends Block {
|
||||||
|
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public ScarletCarpetBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOL).strength(-1, 3600000));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||||
|
return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ScarletCeilingBlock extends Block {
|
||||||
|
public ScarletCeilingBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import org.checkerframework.checker.units.qual.s;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ScarletLightBlock extends Block {
|
||||||
|
public ScarletLightBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.GLASS).strength(-1, 3600000).lightLevel(s -> 15).hasPostProcess((bs, br, bp) -> true).emissiveRendering((bs, br, bp) -> true));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ScarletLightOffBlock extends Block {
|
||||||
|
public ScarletLightOffBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.GLASS).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class ScarletWallBlock extends Block {
|
||||||
|
public ScarletWallBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.properties.DirectionProperty;
|
||||||
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Rotation;
|
||||||
|
import net.minecraft.world.level.block.Mirror;
|
||||||
|
import net.minecraft.world.level.block.HorizontalDirectionalBlock;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
|
|
||||||
|
public class ShadowCeilingBlock extends Block {
|
||||||
|
public static final DirectionProperty FACING = HorizontalDirectionalBlock.FACING;
|
||||||
|
|
||||||
|
public ShadowCeilingBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(-1, 3600000));
|
||||||
|
this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void createBlockStateDefinition(StateDefinition.Builder<Block, BlockState> builder) {
|
||||||
|
super.createBlockStateDefinition(builder);
|
||||||
|
builder.add(FACING);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BlockState getStateForPlacement(BlockPlaceContext context) {
|
||||||
|
return super.getStateForPlacement(context).setValue(FACING, context.getHorizontalDirection().getOpposite());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState rotate(BlockState state, Rotation rot) {
|
||||||
|
return state.setValue(FACING, rot.rotate(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BlockState mirror(BlockState state, Mirror mirrorIn) {
|
||||||
|
return state.rotate(mirrorIn.getRotation(state.getValue(FACING)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class WallpaperBlock extends Block {
|
||||||
|
public WallpaperBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class WallpaperTrimBlock extends Block {
|
||||||
|
public WallpaperTrimBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.WOOD).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.IronBarsBlock;
|
||||||
|
|
||||||
|
public class WeatheredBarsBlock extends IronBarsBlock {
|
||||||
|
public WeatheredBarsBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.METAL).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class WeatheredBricksBlock extends Block {
|
||||||
|
public WeatheredBricksBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.DEEPSLATE_BRICKS).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class WeatheredCeilingBlock extends Block {
|
||||||
|
public WeatheredCeilingBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.DEEPSLATE_BRICKS).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.block;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
|
import net.minecraft.world.level.block.SoundType;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
public class WeatheredFlooringBlock extends Block {
|
||||||
|
public WeatheredFlooringBlock() {
|
||||||
|
super(BlockBehaviour.Properties.of().sound(SoundType.DEEPSLATE_BRICKS).strength(-1, 3600000));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,102 @@
|
|||||||
|
/*
|
||||||
|
* MCreator note: This file will be REGENERATED on each build.
|
||||||
|
*/
|
||||||
|
package com.chillcog.chillcogsbackrooms.init;
|
||||||
|
|
||||||
|
import net.neoforged.neoforge.event.server.ServerAboutToStartEvent;
|
||||||
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.levelgen.placement.CaveSurface;
|
||||||
|
import net.minecraft.world.level.levelgen.SurfaceRules;
|
||||||
|
import net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator;
|
||||||
|
import net.minecraft.world.level.dimension.LevelStem;
|
||||||
|
import net.minecraft.world.level.dimension.DimensionType;
|
||||||
|
import net.minecraft.world.level.dimension.BuiltinDimensionTypes;
|
||||||
|
import net.minecraft.world.level.chunk.ChunkGenerator;
|
||||||
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
import net.minecraft.world.level.block.Blocks;
|
||||||
|
import net.minecraft.world.level.biome.MultiNoiseBiomeSource;
|
||||||
|
import net.minecraft.world.level.biome.FeatureSorter;
|
||||||
|
import net.minecraft.world.level.biome.Climate;
|
||||||
|
import net.minecraft.world.level.biome.Biome;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.resources.ResourceKey;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
import net.minecraft.core.Registry;
|
||||||
|
import net.minecraft.core.Holder;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import com.mojang.datafixers.util.Pair;
|
||||||
|
|
||||||
|
import com.google.common.base.Suppliers;
|
||||||
|
|
||||||
|
@EventBusSubscriber
|
||||||
|
public class ChillcogsBackroomsModBiomes {
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onServerAboutToStart(ServerAboutToStartEvent event) {
|
||||||
|
MinecraftServer server = event.getServer();
|
||||||
|
Registry<LevelStem> levelStemTypeRegistry = server.registryAccess().registryOrThrow(Registries.LEVEL_STEM);
|
||||||
|
Registry<Biome> biomeRegistry = server.registryAccess().registryOrThrow(Registries.BIOME);
|
||||||
|
for (LevelStem levelStem : levelStemTypeRegistry.stream().toList()) {
|
||||||
|
Holder<DimensionType> dimensionType = levelStem.type();
|
||||||
|
if (dimensionType.is(BuiltinDimensionTypes.OVERWORLD)) {
|
||||||
|
ChunkGenerator chunkGenerator = levelStem.generator();
|
||||||
|
// Inject biomes to biome source
|
||||||
|
if (chunkGenerator.getBiomeSource() instanceof MultiNoiseBiomeSource noiseSource) {
|
||||||
|
List<Pair<Climate.ParameterPoint, Holder<Biome>>> parameters = new ArrayList<>(noiseSource.parameters().values());
|
||||||
|
addParameterPoint(parameters, new Pair<>(new Climate.ParameterPoint(Climate.Parameter.span(-0.5f, 0.5f), Climate.Parameter.span(-0.5f, 0.5f), Climate.Parameter.span(0.3f, 1f), Climate.Parameter.span(-0.5f, 0.5f),
|
||||||
|
Climate.Parameter.point(0.0f), Climate.Parameter.span(-1f, 1f), 0), biomeRegistry.getHolderOrThrow(ResourceKey.create(Registries.BIOME, ResourceLocation.fromNamespaceAndPath("chillcogs_backrooms", "backrooms")))));
|
||||||
|
addParameterPoint(parameters, new Pair<>(new Climate.ParameterPoint(Climate.Parameter.span(-0.5f, 0.5f), Climate.Parameter.span(-0.5f, 0.5f), Climate.Parameter.span(0.3f, 1f), Climate.Parameter.span(-0.5f, 0.5f),
|
||||||
|
Climate.Parameter.point(1.0f), Climate.Parameter.span(-1f, 1f), 0), biomeRegistry.getHolderOrThrow(ResourceKey.create(Registries.BIOME, ResourceLocation.fromNamespaceAndPath("chillcogs_backrooms", "backrooms")))));
|
||||||
|
chunkGenerator.biomeSource = MultiNoiseBiomeSource.createFromList(new Climate.ParameterList<>(parameters));
|
||||||
|
chunkGenerator.featuresPerStep = Suppliers
|
||||||
|
.memoize(() -> FeatureSorter.buildFeaturesPerStep(List.copyOf(chunkGenerator.biomeSource.possibleBiomes()), biome -> chunkGenerator.generationSettingsGetter.apply(biome).features(), true));
|
||||||
|
}
|
||||||
|
if (chunkGenerator instanceof NoiseBasedChunkGenerator noiseGenerator) {
|
||||||
|
((ChillcogsBackroomsModNoiseGeneratorSettings) (Object) noiseGenerator.settings.value()).setchillcogs_backroomsDimensionTypeReference(dimensionType);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SurfaceRules.RuleSource adaptSurfaceRule(SurfaceRules.RuleSource currentRuleSource, Holder<DimensionType> dimensionType) {
|
||||||
|
if (dimensionType.is(BuiltinDimensionTypes.OVERWORLD))
|
||||||
|
return injectOverworldSurfaceRules(currentRuleSource);
|
||||||
|
return currentRuleSource;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static SurfaceRules.RuleSource injectOverworldSurfaceRules(SurfaceRules.RuleSource currentRuleSource) {
|
||||||
|
List<SurfaceRules.RuleSource> customSurfaceRules = new ArrayList<>();
|
||||||
|
customSurfaceRules.add(preliminarySurfaceRule(ResourceKey.create(Registries.BIOME, ResourceLocation.fromNamespaceAndPath("chillcogs_backrooms", "backrooms")), Blocks.GRASS_BLOCK.defaultBlockState(), Blocks.DIRT.defaultBlockState(),
|
||||||
|
Blocks.GRAVEL.defaultBlockState()));
|
||||||
|
if (currentRuleSource instanceof SurfaceRules.SequenceRuleSource sequenceRuleSource) {
|
||||||
|
customSurfaceRules.addAll(sequenceRuleSource.sequence());
|
||||||
|
return SurfaceRules.sequence(customSurfaceRules.toArray(SurfaceRules.RuleSource[]::new));
|
||||||
|
} else {
|
||||||
|
customSurfaceRules.add(currentRuleSource);
|
||||||
|
return SurfaceRules.sequence(customSurfaceRules.toArray(SurfaceRules.RuleSource[]::new));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static SurfaceRules.RuleSource preliminarySurfaceRule(ResourceKey<Biome> biomeKey, BlockState groundBlock, BlockState undergroundBlock, BlockState underwaterBlock) {
|
||||||
|
return SurfaceRules.ifTrue(SurfaceRules.isBiome(biomeKey),
|
||||||
|
SurfaceRules.ifTrue(SurfaceRules.abovePreliminarySurface(),
|
||||||
|
SurfaceRules.sequence(
|
||||||
|
SurfaceRules.ifTrue(SurfaceRules.stoneDepthCheck(0, false, 0, CaveSurface.FLOOR),
|
||||||
|
SurfaceRules.sequence(SurfaceRules.ifTrue(SurfaceRules.waterBlockCheck(-1, 0), SurfaceRules.state(groundBlock)), SurfaceRules.state(underwaterBlock))),
|
||||||
|
SurfaceRules.ifTrue(SurfaceRules.stoneDepthCheck(0, true, 0, CaveSurface.FLOOR), SurfaceRules.state(undergroundBlock)))));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void addParameterPoint(List<Pair<Climate.ParameterPoint, Holder<Biome>>> parameters, Pair<Climate.ParameterPoint, Holder<Biome>> point) {
|
||||||
|
if (!parameters.contains(point))
|
||||||
|
parameters.add(point);
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface ChillcogsBackroomsModNoiseGeneratorSettings {
|
||||||
|
void setchillcogs_backroomsDimensionTypeReference(Holder<DimensionType> dimensionType);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,112 @@
|
|||||||
|
/*
|
||||||
|
* MCreator note: This file will be REGENERATED on each build.
|
||||||
|
*/
|
||||||
|
package com.chillcog.chillcogsbackrooms.init;
|
||||||
|
|
||||||
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
|
import net.neoforged.neoforge.registries.DeferredBlock;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
|
||||||
|
import com.chillcog.chillcogsbackrooms.block.*;
|
||||||
|
import com.chillcog.chillcogsbackrooms.ChillcogsBackroomsMod;
|
||||||
|
|
||||||
|
public class ChillcogsBackroomsModBlocks {
|
||||||
|
public static final DeferredRegister.Blocks REGISTRY = DeferredRegister.createBlocks(ChillcogsBackroomsMod.MODID);
|
||||||
|
public static final DeferredBlock<Block> WALLPAPER;
|
||||||
|
public static final DeferredBlock<Block> CARPET;
|
||||||
|
public static final DeferredBlock<Block> BALLPIT;
|
||||||
|
public static final DeferredBlock<Block> RED_FUN_CARPET;
|
||||||
|
public static final DeferredBlock<Block> BLACK_DOOR;
|
||||||
|
public static final DeferredBlock<Block> RED_DOOR;
|
||||||
|
public static final DeferredBlock<Block> WALLPAPER_TRIM;
|
||||||
|
public static final DeferredBlock<Block> LIGHT;
|
||||||
|
public static final DeferredBlock<Block> LIGHT_OFF;
|
||||||
|
public static final DeferredBlock<Block> CRATE;
|
||||||
|
public static final DeferredBlock<Block> HOTEL_CARPET_EDGE;
|
||||||
|
public static final DeferredBlock<Block> HOTEL_CARPET_CORNER;
|
||||||
|
public static final DeferredBlock<Block> HOTEL_CARPET_MIDDLE;
|
||||||
|
public static final DeferredBlock<Block> HOTEL_CARPET_INNER_CORNER;
|
||||||
|
public static final DeferredBlock<Block> HOTEL_CARPET_EDGE_2;
|
||||||
|
public static final DeferredBlock<Block> HOTEL_CARPET_CORNER_2;
|
||||||
|
public static final DeferredBlock<Block> CEILING;
|
||||||
|
public static final DeferredBlock<Block> SHADOW_CEILING;
|
||||||
|
public static final DeferredBlock<Block> FALSE_CLOUDS;
|
||||||
|
public static final DeferredBlock<Block> SCARLET_CARPET;
|
||||||
|
public static final DeferredBlock<Block> FUN_FLOORING;
|
||||||
|
public static final DeferredBlock<Block> FUN_GREEN_WOOL;
|
||||||
|
public static final DeferredBlock<Block> POOL_TILES;
|
||||||
|
public static final DeferredBlock<Block> DARK_POOL_TILES;
|
||||||
|
public static final DeferredBlock<Block> FALSE_STARS;
|
||||||
|
public static final DeferredBlock<Block> CARPET_LEVEL_4;
|
||||||
|
public static final DeferredBlock<Block> HOTEL_CARPET;
|
||||||
|
public static final DeferredBlock<Block> LEVEL_4_CEILING;
|
||||||
|
public static final DeferredBlock<Block> LEVEL_4_WALL;
|
||||||
|
public static final DeferredBlock<Block> WEATHERED_BARS;
|
||||||
|
public static final DeferredBlock<Block> WEATHERED_BRICKS;
|
||||||
|
public static final DeferredBlock<Block> WEATHERED_FLOORING;
|
||||||
|
public static final DeferredBlock<Block> WEATHERED_CEILING;
|
||||||
|
public static final DeferredBlock<Block> CONCRETE;
|
||||||
|
public static final DeferredBlock<Block> DARKENED_CONCRETE;
|
||||||
|
public static final DeferredBlock<Block> CONCRETE_PILLAR;
|
||||||
|
public static final DeferredBlock<Block> SCARLET_WALL;
|
||||||
|
public static final DeferredBlock<Block> LIGHT_SCARLET_WALL;
|
||||||
|
public static final DeferredBlock<Block> SCARLET_CEILING;
|
||||||
|
public static final DeferredBlock<Block> SCARLET_LIGHT;
|
||||||
|
public static final DeferredBlock<Block> SCARLET_LIGHT_OFF;
|
||||||
|
public static final DeferredBlock<Block> MANILA_WALLPAPER;
|
||||||
|
public static final DeferredBlock<Block> MANILA_CARPET;
|
||||||
|
public static final DeferredBlock<Block> MANILA_CEILING;
|
||||||
|
public static final DeferredBlock<Block> PARADISAL_GRASS;
|
||||||
|
public static final DeferredBlock<Block> PARADISAL_LOG;
|
||||||
|
static {
|
||||||
|
WALLPAPER = REGISTRY.register("wallpaper", WallpaperBlock::new);
|
||||||
|
CARPET = REGISTRY.register("carpet", CarpetBlock::new);
|
||||||
|
BALLPIT = REGISTRY.register("ballpit", BallpitBlock::new);
|
||||||
|
RED_FUN_CARPET = REGISTRY.register("red_fun_carpet", RedFunCarpetBlock::new);
|
||||||
|
BLACK_DOOR = REGISTRY.register("black_door", BlackDoorBlock::new);
|
||||||
|
RED_DOOR = REGISTRY.register("red_door", RedDoorBlock::new);
|
||||||
|
WALLPAPER_TRIM = REGISTRY.register("wallpaper_trim", WallpaperTrimBlock::new);
|
||||||
|
LIGHT = REGISTRY.register("light", LightBlock::new);
|
||||||
|
LIGHT_OFF = REGISTRY.register("light_off", LightOffBlock::new);
|
||||||
|
CRATE = REGISTRY.register("crate", CrateBlock::new);
|
||||||
|
HOTEL_CARPET_EDGE = REGISTRY.register("hotel_carpet_edge", HotelCarpetEdgeBlock::new);
|
||||||
|
HOTEL_CARPET_CORNER = REGISTRY.register("hotel_carpet_corner", HotelCarpetCornerBlock::new);
|
||||||
|
HOTEL_CARPET_MIDDLE = REGISTRY.register("hotel_carpet_middle", HotelCarpetMiddleBlock::new);
|
||||||
|
HOTEL_CARPET_INNER_CORNER = REGISTRY.register("hotel_carpet_inner_corner", HotelCarpetInnerCornerBlock::new);
|
||||||
|
HOTEL_CARPET_EDGE_2 = REGISTRY.register("hotel_carpet_edge_2", HotelCarpetEdge2Block::new);
|
||||||
|
HOTEL_CARPET_CORNER_2 = REGISTRY.register("hotel_carpet_corner_2", HotelCarpetCorner2Block::new);
|
||||||
|
CEILING = REGISTRY.register("ceiling", CeilingBlock::new);
|
||||||
|
SHADOW_CEILING = REGISTRY.register("shadow_ceiling", ShadowCeilingBlock::new);
|
||||||
|
FALSE_CLOUDS = REGISTRY.register("false_clouds", FakeCloudsBlock::new);
|
||||||
|
SCARLET_CARPET = REGISTRY.register("scarlet_carpet", ScarletCarpetBlock::new);
|
||||||
|
FUN_FLOORING = REGISTRY.register("fun_flooring", FunFlooringBlock::new);
|
||||||
|
FUN_GREEN_WOOL = REGISTRY.register("fun_green_wool", FunGreenWoolBlock::new);
|
||||||
|
POOL_TILES = REGISTRY.register("pool_tiles", PoolTilesBlock::new);
|
||||||
|
DARK_POOL_TILES = REGISTRY.register("dark_pool_tiles", DarkPoolTilesBlock::new);
|
||||||
|
FALSE_STARS = REGISTRY.register("false_stars", FalseStarsBlock::new);
|
||||||
|
CARPET_LEVEL_4 = REGISTRY.register("carpet_level_4", CarpetLevel4Block::new);
|
||||||
|
HOTEL_CARPET = REGISTRY.register("hotel_carpet", HotelCarpetBlock::new);
|
||||||
|
LEVEL_4_CEILING = REGISTRY.register("level_4_ceiling", Level4CeilingBlock::new);
|
||||||
|
LEVEL_4_WALL = REGISTRY.register("level_4_wall", Level4WallBlock::new);
|
||||||
|
WEATHERED_BARS = REGISTRY.register("weathered_bars", WeatheredBarsBlock::new);
|
||||||
|
WEATHERED_BRICKS = REGISTRY.register("weathered_bricks", WeatheredBricksBlock::new);
|
||||||
|
WEATHERED_FLOORING = REGISTRY.register("weathered_flooring", WeatheredFlooringBlock::new);
|
||||||
|
WEATHERED_CEILING = REGISTRY.register("weathered_ceiling", WeatheredCeilingBlock::new);
|
||||||
|
CONCRETE = REGISTRY.register("concrete", ConcreteBlock::new);
|
||||||
|
DARKENED_CONCRETE = REGISTRY.register("darkened_concrete", DarkenedConcreteBlock::new);
|
||||||
|
CONCRETE_PILLAR = REGISTRY.register("concrete_pillar", ConcretePillarBlock::new);
|
||||||
|
SCARLET_WALL = REGISTRY.register("scarlet_wall", ScarletWallBlock::new);
|
||||||
|
LIGHT_SCARLET_WALL = REGISTRY.register("light_scarlet_wall", LightScarletWallBlock::new);
|
||||||
|
SCARLET_CEILING = REGISTRY.register("scarlet_ceiling", ScarletCeilingBlock::new);
|
||||||
|
SCARLET_LIGHT = REGISTRY.register("scarlet_light", ScarletLightBlock::new);
|
||||||
|
SCARLET_LIGHT_OFF = REGISTRY.register("scarlet_light_off", ScarletLightOffBlock::new);
|
||||||
|
MANILA_WALLPAPER = REGISTRY.register("manila_wallpaper", ManilaWallpaperBlock::new);
|
||||||
|
MANILA_CARPET = REGISTRY.register("manila_carpet", ManilaCarpetBlock::new);
|
||||||
|
MANILA_CEILING = REGISTRY.register("manila_ceiling", ManilaCeilingBlock::new);
|
||||||
|
PARADISAL_GRASS = REGISTRY.register("paradisal_grass", ParadisalGrassBlock::new);
|
||||||
|
PARADISAL_LOG = REGISTRY.register("paradisal_log", ParadisalLogBlock::new);
|
||||||
|
}
|
||||||
|
// Start of user code block custom blocks
|
||||||
|
// End of user code block custom blocks
|
||||||
|
}
|
||||||
@@ -0,0 +1,144 @@
|
|||||||
|
/*
|
||||||
|
* MCreator note: This file will be REGENERATED on each build.
|
||||||
|
*/
|
||||||
|
package com.chillcog.chillcogsbackrooms.init;
|
||||||
|
|
||||||
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
|
import net.neoforged.neoforge.registries.DeferredItem;
|
||||||
|
import net.neoforged.neoforge.registries.DeferredHolder;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.Rarity;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.item.DoubleHighBlockItem;
|
||||||
|
import net.minecraft.world.item.BlockItem;
|
||||||
|
|
||||||
|
import com.chillcog.chillcogsbackrooms.item.PlankItem;
|
||||||
|
import com.chillcog.chillcogsbackrooms.item.LiquidPainItem;
|
||||||
|
import com.chillcog.chillcogsbackrooms.item.KillStickItem;
|
||||||
|
import com.chillcog.chillcogsbackrooms.item.AlmondWaterItem;
|
||||||
|
import com.chillcog.chillcogsbackrooms.ChillcogsBackroomsMod;
|
||||||
|
|
||||||
|
public class ChillcogsBackroomsModItems {
|
||||||
|
public static final DeferredRegister.Items REGISTRY = DeferredRegister.createItems(ChillcogsBackroomsMod.MODID);
|
||||||
|
public static final DeferredItem<Item> WALLPAPER;
|
||||||
|
public static final DeferredItem<Item> CARPET;
|
||||||
|
public static final DeferredItem<Item> BALLPIT;
|
||||||
|
public static final DeferredItem<Item> RED_FUN_CARPET;
|
||||||
|
public static final DeferredItem<Item> BLACK_DOOR;
|
||||||
|
public static final DeferredItem<Item> RED_DOOR;
|
||||||
|
public static final DeferredItem<Item> WALLPAPER_TRIM;
|
||||||
|
public static final DeferredItem<Item> LIGHT;
|
||||||
|
public static final DeferredItem<Item> LIGHT_OFF;
|
||||||
|
public static final DeferredItem<Item> CRATE;
|
||||||
|
public static final DeferredItem<Item> HOTEL_CARPET_EDGE;
|
||||||
|
public static final DeferredItem<Item> HOTEL_CARPET_CORNER;
|
||||||
|
public static final DeferredItem<Item> HOTEL_CARPET_MIDDLE;
|
||||||
|
public static final DeferredItem<Item> HOTEL_CARPET_INNER_CORNER;
|
||||||
|
public static final DeferredItem<Item> HOTEL_CARPET_EDGE_2;
|
||||||
|
public static final DeferredItem<Item> HOTEL_CARPET_CORNER_2;
|
||||||
|
public static final DeferredItem<Item> CEILING;
|
||||||
|
public static final DeferredItem<Item> SHADOW_CEILING;
|
||||||
|
public static final DeferredItem<Item> ALMOND_WATER;
|
||||||
|
public static final DeferredItem<Item> LIQUID_PAIN;
|
||||||
|
public static final DeferredItem<Item> FALSE_CLOUDS;
|
||||||
|
public static final DeferredItem<Item> SCARLET_CARPET;
|
||||||
|
public static final DeferredItem<Item> FUN_FLOORING;
|
||||||
|
public static final DeferredItem<Item> FUN_GREEN_WOOL;
|
||||||
|
public static final DeferredItem<Item> POOL_TILES;
|
||||||
|
public static final DeferredItem<Item> DARK_POOL_TILES;
|
||||||
|
public static final DeferredItem<Item> FALSE_STARS;
|
||||||
|
public static final DeferredItem<Item> CARPET_LEVEL_4;
|
||||||
|
public static final DeferredItem<Item> HOTEL_CARPET;
|
||||||
|
public static final DeferredItem<Item> LEVEL_4_CEILING;
|
||||||
|
public static final DeferredItem<Item> LEVEL_4_WALL;
|
||||||
|
public static final DeferredItem<Item> WEATHERED_BARS;
|
||||||
|
public static final DeferredItem<Item> WEATHERED_BRICKS;
|
||||||
|
public static final DeferredItem<Item> WEATHERED_FLOORING;
|
||||||
|
public static final DeferredItem<Item> WEATHERED_CEILING;
|
||||||
|
public static final DeferredItem<Item> CONCRETE;
|
||||||
|
public static final DeferredItem<Item> DARKENED_CONCRETE;
|
||||||
|
public static final DeferredItem<Item> CONCRETE_PILLAR;
|
||||||
|
public static final DeferredItem<Item> SCARLET_WALL;
|
||||||
|
public static final DeferredItem<Item> LIGHT_SCARLET_WALL;
|
||||||
|
public static final DeferredItem<Item> SCARLET_CEILING;
|
||||||
|
public static final DeferredItem<Item> SCARLET_LIGHT;
|
||||||
|
public static final DeferredItem<Item> SCARLET_LIGHT_OFF;
|
||||||
|
public static final DeferredItem<Item> MANILA_WALLPAPER;
|
||||||
|
public static final DeferredItem<Item> MANILA_CARPET;
|
||||||
|
public static final DeferredItem<Item> MANILA_CEILING;
|
||||||
|
public static final DeferredItem<Item> PARADISAL_GRASS;
|
||||||
|
public static final DeferredItem<Item> PARADISAL_LOG;
|
||||||
|
public static final DeferredItem<Item> PLANK;
|
||||||
|
public static final DeferredItem<Item> KILL_STICK;
|
||||||
|
static {
|
||||||
|
WALLPAPER = block(ChillcogsBackroomsModBlocks.WALLPAPER);
|
||||||
|
CARPET = block(ChillcogsBackroomsModBlocks.CARPET);
|
||||||
|
BALLPIT = block(ChillcogsBackroomsModBlocks.BALLPIT);
|
||||||
|
RED_FUN_CARPET = block(ChillcogsBackroomsModBlocks.RED_FUN_CARPET);
|
||||||
|
BLACK_DOOR = doubleBlock(ChillcogsBackroomsModBlocks.BLACK_DOOR, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
RED_DOOR = doubleBlock(ChillcogsBackroomsModBlocks.RED_DOOR);
|
||||||
|
WALLPAPER_TRIM = block(ChillcogsBackroomsModBlocks.WALLPAPER_TRIM);
|
||||||
|
LIGHT = block(ChillcogsBackroomsModBlocks.LIGHT);
|
||||||
|
LIGHT_OFF = block(ChillcogsBackroomsModBlocks.LIGHT_OFF);
|
||||||
|
CRATE = block(ChillcogsBackroomsModBlocks.CRATE);
|
||||||
|
HOTEL_CARPET_EDGE = block(ChillcogsBackroomsModBlocks.HOTEL_CARPET_EDGE);
|
||||||
|
HOTEL_CARPET_CORNER = block(ChillcogsBackroomsModBlocks.HOTEL_CARPET_CORNER);
|
||||||
|
HOTEL_CARPET_MIDDLE = block(ChillcogsBackroomsModBlocks.HOTEL_CARPET_MIDDLE);
|
||||||
|
HOTEL_CARPET_INNER_CORNER = block(ChillcogsBackroomsModBlocks.HOTEL_CARPET_INNER_CORNER);
|
||||||
|
HOTEL_CARPET_EDGE_2 = block(ChillcogsBackroomsModBlocks.HOTEL_CARPET_EDGE_2);
|
||||||
|
HOTEL_CARPET_CORNER_2 = block(ChillcogsBackroomsModBlocks.HOTEL_CARPET_CORNER_2);
|
||||||
|
CEILING = block(ChillcogsBackroomsModBlocks.CEILING);
|
||||||
|
SHADOW_CEILING = block(ChillcogsBackroomsModBlocks.SHADOW_CEILING);
|
||||||
|
ALMOND_WATER = REGISTRY.register("almond_water", AlmondWaterItem::new);
|
||||||
|
LIQUID_PAIN = REGISTRY.register("liquid_pain", LiquidPainItem::new);
|
||||||
|
FALSE_CLOUDS = block(ChillcogsBackroomsModBlocks.FALSE_CLOUDS);
|
||||||
|
SCARLET_CARPET = block(ChillcogsBackroomsModBlocks.SCARLET_CARPET);
|
||||||
|
FUN_FLOORING = block(ChillcogsBackroomsModBlocks.FUN_FLOORING);
|
||||||
|
FUN_GREEN_WOOL = block(ChillcogsBackroomsModBlocks.FUN_GREEN_WOOL);
|
||||||
|
POOL_TILES = block(ChillcogsBackroomsModBlocks.POOL_TILES);
|
||||||
|
DARK_POOL_TILES = block(ChillcogsBackroomsModBlocks.DARK_POOL_TILES);
|
||||||
|
FALSE_STARS = block(ChillcogsBackroomsModBlocks.FALSE_STARS);
|
||||||
|
CARPET_LEVEL_4 = block(ChillcogsBackroomsModBlocks.CARPET_LEVEL_4);
|
||||||
|
HOTEL_CARPET = block(ChillcogsBackroomsModBlocks.HOTEL_CARPET);
|
||||||
|
LEVEL_4_CEILING = block(ChillcogsBackroomsModBlocks.LEVEL_4_CEILING);
|
||||||
|
LEVEL_4_WALL = block(ChillcogsBackroomsModBlocks.LEVEL_4_WALL);
|
||||||
|
WEATHERED_BARS = block(ChillcogsBackroomsModBlocks.WEATHERED_BARS);
|
||||||
|
WEATHERED_BRICKS = block(ChillcogsBackroomsModBlocks.WEATHERED_BRICKS);
|
||||||
|
WEATHERED_FLOORING = block(ChillcogsBackroomsModBlocks.WEATHERED_FLOORING);
|
||||||
|
WEATHERED_CEILING = block(ChillcogsBackroomsModBlocks.WEATHERED_CEILING);
|
||||||
|
CONCRETE = block(ChillcogsBackroomsModBlocks.CONCRETE);
|
||||||
|
DARKENED_CONCRETE = block(ChillcogsBackroomsModBlocks.DARKENED_CONCRETE);
|
||||||
|
CONCRETE_PILLAR = block(ChillcogsBackroomsModBlocks.CONCRETE_PILLAR);
|
||||||
|
SCARLET_WALL = block(ChillcogsBackroomsModBlocks.SCARLET_WALL);
|
||||||
|
LIGHT_SCARLET_WALL = block(ChillcogsBackroomsModBlocks.LIGHT_SCARLET_WALL);
|
||||||
|
SCARLET_CEILING = block(ChillcogsBackroomsModBlocks.SCARLET_CEILING);
|
||||||
|
SCARLET_LIGHT = block(ChillcogsBackroomsModBlocks.SCARLET_LIGHT);
|
||||||
|
SCARLET_LIGHT_OFF = block(ChillcogsBackroomsModBlocks.SCARLET_LIGHT_OFF);
|
||||||
|
MANILA_WALLPAPER = block(ChillcogsBackroomsModBlocks.MANILA_WALLPAPER);
|
||||||
|
MANILA_CARPET = block(ChillcogsBackroomsModBlocks.MANILA_CARPET);
|
||||||
|
MANILA_CEILING = block(ChillcogsBackroomsModBlocks.MANILA_CEILING);
|
||||||
|
PARADISAL_GRASS = block(ChillcogsBackroomsModBlocks.PARADISAL_GRASS);
|
||||||
|
PARADISAL_LOG = block(ChillcogsBackroomsModBlocks.PARADISAL_LOG);
|
||||||
|
PLANK = REGISTRY.register("plank", PlankItem::new);
|
||||||
|
KILL_STICK = REGISTRY.register("kill_stick", KillStickItem::new);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Start of user code block custom items
|
||||||
|
// End of user code block custom items
|
||||||
|
private static DeferredItem<Item> block(DeferredHolder<Block, Block> block) {
|
||||||
|
return block(block, new Item.Properties());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static DeferredItem<Item> block(DeferredHolder<Block, Block> block, Item.Properties properties) {
|
||||||
|
return REGISTRY.register(block.getId().getPath(), () -> new BlockItem(block.get(), properties));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static DeferredItem<Item> doubleBlock(DeferredHolder<Block, Block> block) {
|
||||||
|
return doubleBlock(block, new Item.Properties());
|
||||||
|
}
|
||||||
|
|
||||||
|
private static DeferredItem<Item> doubleBlock(DeferredHolder<Block, Block> block, Item.Properties properties) {
|
||||||
|
return REGISTRY.register(block.getId().getPath(), () -> new DoubleHighBlockItem(block.get(), properties));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
/*
|
||||||
|
* MCreator note: This file will be REGENERATED on each build.
|
||||||
|
*/
|
||||||
|
package com.chillcog.chillcogsbackrooms.init;
|
||||||
|
|
||||||
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
|
import net.neoforged.neoforge.registries.DeferredHolder;
|
||||||
|
import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent;
|
||||||
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
|
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.CreativeModeTabs;
|
||||||
|
import net.minecraft.world.item.CreativeModeTab;
|
||||||
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
|
||||||
|
import com.chillcog.chillcogsbackrooms.ChillcogsBackroomsMod;
|
||||||
|
|
||||||
|
@EventBusSubscriber
|
||||||
|
public class ChillcogsBackroomsModTabs {
|
||||||
|
public static final DeferredRegister<CreativeModeTab> REGISTRY = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, ChillcogsBackroomsMod.MODID);
|
||||||
|
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> CHILLCOGS_BACKROOMS = REGISTRY.register("chillcogs_backrooms",
|
||||||
|
() -> CreativeModeTab.builder().title(Component.translatable("item_group.chillcogs_backrooms.chillcogs_backrooms")).icon(() -> new ItemStack(ChillcogsBackroomsModBlocks.WALLPAPER.get())).displayItems((parameters, tabData) -> {
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.WALLPAPER.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.CARPET.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.WALLPAPER_TRIM.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.CEILING.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.SHADOW_CEILING.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.LIGHT.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.LIGHT_OFF.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.FALSE_STARS.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.FALSE_CLOUDS.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.BLACK_DOOR.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.CRATE.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.HOTEL_CARPET_EDGE.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.HOTEL_CARPET_CORNER.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.HOTEL_CARPET_MIDDLE.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.HOTEL_CARPET_INNER_CORNER.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.HOTEL_CARPET_EDGE_2.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.RED_FUN_CARPET.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.BALLPIT.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.FUN_FLOORING.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.FUN_GREEN_WOOL.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.POOL_TILES.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.DARK_POOL_TILES.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.CARPET_LEVEL_4.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.LEVEL_4_CEILING.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.LEVEL_4_WALL.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.WEATHERED_BARS.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.WEATHERED_BRICKS.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.WEATHERED_FLOORING.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.WEATHERED_CEILING.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.CONCRETE.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.DARKENED_CONCRETE.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.CONCRETE_PILLAR.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.SCARLET_WALL.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.LIGHT_SCARLET_WALL.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.SCARLET_CEILING.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.SCARLET_LIGHT.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.HOTEL_CARPET.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.RED_DOOR.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.SCARLET_CARPET.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.SCARLET_LIGHT_OFF.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.MANILA_WALLPAPER.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.MANILA_CARPET.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.MANILA_CEILING.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.PARADISAL_GRASS.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModBlocks.PARADISAL_LOG.get().asItem());
|
||||||
|
tabData.accept(ChillcogsBackroomsModItems.ALMOND_WATER.get());
|
||||||
|
tabData.accept(ChillcogsBackroomsModItems.LIQUID_PAIN.get());
|
||||||
|
tabData.accept(ChillcogsBackroomsModItems.PLANK.get());
|
||||||
|
tabData.accept(ChillcogsBackroomsModItems.KILL_STICK.get());
|
||||||
|
}).build());
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void buildTabContentsVanilla(BuildCreativeModeTabContentsEvent tabData) {
|
||||||
|
if (tabData.getTabKey() == CreativeModeTabs.TOOLS_AND_UTILITIES) {
|
||||||
|
tabData.accept(ChillcogsBackroomsModItems.KILL_STICK.get());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.item;
|
||||||
|
|
||||||
|
import net.minecraft.world.item.Rarity;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.food.FoodProperties;
|
||||||
|
|
||||||
|
public class AlmondWaterItem extends Item {
|
||||||
|
public AlmondWaterItem() {
|
||||||
|
super(new Item.Properties().rarity(Rarity.UNCOMMON).food((new FoodProperties.Builder()).nutrition(5).saturationModifier(3f).alwaysEdible().build()));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.item;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import net.minecraft.world.item.crafting.Ingredient;
|
||||||
|
import net.minecraft.world.item.Tier;
|
||||||
|
import net.minecraft.world.item.SwordItem;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.tags.TagKey;
|
||||||
|
import net.minecraft.tags.BlockTags;
|
||||||
|
|
||||||
|
public class KillStickItem extends SwordItem {
|
||||||
|
private static final Tier TOOL_TIER = new Tier() {
|
||||||
|
@Override
|
||||||
|
public int getUses() {
|
||||||
|
return 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getSpeed() {
|
||||||
|
return 69f;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getAttackDamageBonus() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TagKey<Block> getIncorrectBlocksForDrops() {
|
||||||
|
return BlockTags.INCORRECT_FOR_NETHERITE_TOOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getEnchantmentValue() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Ingredient getRepairIngredient() {
|
||||||
|
return Ingredient.of();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
public KillStickItem() {
|
||||||
|
super(TOOL_TIER, new Item.Properties().attributes(SwordItem.createAttributes(TOOL_TIER, 4999f, -4f)));
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.item;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.Level;
|
||||||
|
import net.minecraft.world.item.UseAnim;
|
||||||
|
import net.minecraft.world.item.Rarity;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.food.FoodProperties;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
|
||||||
|
import com.chillcog.chillcogsbackrooms.procedures.LiquidPainTriggerProcedure;
|
||||||
|
|
||||||
|
public class LiquidPainItem extends Item {
|
||||||
|
public LiquidPainItem() {
|
||||||
|
super(new Item.Properties().rarity(Rarity.RARE).food((new FoodProperties.Builder()).nutrition(2).saturationModifier(1f).alwaysEdible().build()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public UseAnim getUseAnimation(ItemStack itemstack) {
|
||||||
|
return UseAnim.DRINK;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getUseDuration(ItemStack itemstack, LivingEntity livingEntity) {
|
||||||
|
return 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack finishUsingItem(ItemStack itemstack, Level world, LivingEntity entity) {
|
||||||
|
ItemStack retval = super.finishUsingItem(itemstack, world, entity);
|
||||||
|
double x = entity.getX();
|
||||||
|
double y = entity.getY();
|
||||||
|
double z = entity.getZ();
|
||||||
|
LiquidPainTriggerProcedure.execute(world, entity);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.item;
|
||||||
|
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
|
||||||
|
public class PlankItem extends Item {
|
||||||
|
public PlankItem() {
|
||||||
|
super(new Item.Properties());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.mixin;
|
||||||
|
|
||||||
|
import org.spongepowered.asm.mixin.Unique;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.levelgen.SurfaceRules;
|
||||||
|
import net.minecraft.world.level.levelgen.NoiseGeneratorSettings;
|
||||||
|
import net.minecraft.world.level.dimension.DimensionType;
|
||||||
|
import net.minecraft.core.Holder;
|
||||||
|
|
||||||
|
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
|
||||||
|
import com.llamalad7.mixinextras.injector.wrapmethod.WrapMethod;
|
||||||
|
|
||||||
|
import com.chillcog.chillcogsbackrooms.init.ChillcogsBackroomsModBiomes;
|
||||||
|
|
||||||
|
@Mixin(NoiseGeneratorSettings.class)
|
||||||
|
public class NoiseGeneratorSettingsMixin implements ChillcogsBackroomsModBiomes.ChillcogsBackroomsModNoiseGeneratorSettings {
|
||||||
|
@Unique
|
||||||
|
private Holder<DimensionType> chillcogs_backrooms_dimensionTypeReference;
|
||||||
|
|
||||||
|
@WrapMethod(method = "surfaceRule")
|
||||||
|
public SurfaceRules.RuleSource surfaceRule(Operation<SurfaceRules.RuleSource> original) {
|
||||||
|
SurfaceRules.RuleSource retval = original.call();
|
||||||
|
if (this.chillcogs_backrooms_dimensionTypeReference != null) {
|
||||||
|
retval = ChillcogsBackroomsModBiomes.adaptSurfaceRule(retval, this.chillcogs_backrooms_dimensionTypeReference);
|
||||||
|
}
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setchillcogs_backroomsDimensionTypeReference(Holder<DimensionType> dimensionType) {
|
||||||
|
this.chillcogs_backrooms_dimensionTypeReference = dimensionType;
|
||||||
|
}
|
||||||
|
}
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
package com.chillcog.chillcogsbackrooms.procedures;
|
||||||
|
|
||||||
|
import net.minecraft.world.level.LevelAccessor;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.resources.ResourceKey;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
|
||||||
|
import com.chillcog.chillcogsbackrooms.ChillcogsBackroomsMod;
|
||||||
|
|
||||||
|
public class LiquidPainTriggerProcedure {
|
||||||
|
public static void execute(LevelAccessor world, Entity entity) {
|
||||||
|
if (entity == null)
|
||||||
|
return;
|
||||||
|
ChillcogsBackroomsMod.queueServerWork(100, () -> {
|
||||||
|
entity.hurt(new DamageSource(world.holderOrThrow(ResourceKey.create(Registries.DAMAGE_TYPE, ResourceLocation.parse("chillcogs_backrooms:drank_liquid_pain")))), 400);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
public net.minecraft.world.level.biome.MultiNoiseBiomeSource parameters()Lnet/minecraft/world/level/biome/Climate$ParameterList;
|
||||||
|
public-f net.minecraft.world.level.chunk.ChunkGenerator biomeSource
|
||||||
|
public-f net.minecraft.world.level.chunk.ChunkGenerator featuresPerStep
|
||||||
|
public-f net.minecraft.world.level.chunk.ChunkGenerator generationSettingsGetter
|
||||||
|
public-f net.minecraft.world.level.levelgen.NoiseBasedChunkGenerator settings
|
||||||
|
public net.minecraft.world.level.levelgen.SurfaceRules$SequenceRuleSource
|
||||||
|
public net.minecraft.world.level.levelgen.SurfaceRules$SequenceRuleSource <init>(Ljava/util/List;)V
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
modLoader="javafml"
|
||||||
|
loaderVersion="[4,)"
|
||||||
|
license="All Rights Reserved"
|
||||||
|
|
||||||
|
[[mods]]
|
||||||
|
modId="chillcogs_backrooms"
|
||||||
|
version="1.0.0"
|
||||||
|
displayName="Chillcog's Backrooms"
|
||||||
|
displayURL="https://chillcog.com"
|
||||||
|
credits="Created using mod maker MCreator - https://mcreator.net/about"
|
||||||
|
authors="Kyle Speight"
|
||||||
|
|
||||||
|
# Start of user code block mod configuration
|
||||||
|
# End of user code block mod configuration
|
||||||
|
|
||||||
|
[[mixins]]
|
||||||
|
config = "chillcogs_backrooms.mixins.json"
|
||||||
|
|
||||||
|
# Start of user code block custom mixins
|
||||||
|
# End of user code block custom mixins
|
||||||
|
|
||||||
|
[[dependencies.chillcogs_backrooms]]
|
||||||
|
modId="neoforge"
|
||||||
|
type="required"
|
||||||
|
versionRange="[21.1.190,)"
|
||||||
|
ordering="AFTER"
|
||||||
|
side="BOTH"
|
||||||
|
|
||||||
|
[[dependencies.chillcogs_backrooms]]
|
||||||
|
modId="minecraft"
|
||||||
|
type="required"
|
||||||
|
versionRange="[1.21.1]"
|
||||||
|
ordering="AFTER"
|
||||||
|
side="BOTH"
|
||||||
|
|
||||||
|
[[dependencies.chillcogs_backrooms]]
|
||||||
|
modId="sharky_lib"
|
||||||
|
type="required"
|
||||||
|
versionRange="[0,)"
|
||||||
|
ordering="NONE"
|
||||||
|
side="BOTH"
|
||||||
|
|
||||||
|
# Start of user code block dependencies configuration
|
||||||
|
# End of user code block dependencies configuration
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/ballpit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east,half=lower,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_left"
|
||||||
|
},
|
||||||
|
"facing=east,half=lower,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_left_open",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=east,half=lower,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_right"
|
||||||
|
},
|
||||||
|
"facing=east,half=lower,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_right_open",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,half=upper,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_left"
|
||||||
|
},
|
||||||
|
"facing=east,half=upper,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_left_open",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=east,half=upper,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_right"
|
||||||
|
},
|
||||||
|
"facing=east,half=upper,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_right_open",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=lower,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_left",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=lower,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_left_open"
|
||||||
|
},
|
||||||
|
"facing=north,half=lower,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_right",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=lower,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_right_open",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=north,half=upper,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_left",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=upper,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_left_open"
|
||||||
|
},
|
||||||
|
"facing=north,half=upper,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_right",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=upper,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_right_open",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=south,half=lower,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_left",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south,half=lower,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_left_open",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=south,half=lower,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_right",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south,half=lower,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_right_open"
|
||||||
|
},
|
||||||
|
"facing=south,half=upper,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_left",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south,half=upper,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_left_open",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=south,half=upper,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_right",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south,half=upper,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_right_open"
|
||||||
|
},
|
||||||
|
"facing=west,half=lower,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_left",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,half=lower,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_left_open",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=west,half=lower,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_right",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,half=lower,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_bottom_right_open",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=west,half=upper,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_left",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,half=upper,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_left_open",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=west,half=upper,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_right",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,half=upper,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/black_door_top_right_open",
|
||||||
|
"y": 90
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/carpet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/carpet_level_4"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/ceiling"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/concrete"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/concrete_pillar"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/crate"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/dark_pool_tiles"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/darkened_concrete"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/false_clouds"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/false_stars"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=north": {
|
||||||
|
"model": "chillcogs_backrooms:block/fun_flooring"
|
||||||
|
},
|
||||||
|
"facing=east": {
|
||||||
|
"model": "chillcogs_backrooms:block/fun_flooring",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south": {
|
||||||
|
"model": "chillcogs_backrooms:block/fun_flooring",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west": {
|
||||||
|
"model": "chillcogs_backrooms:block/fun_flooring",
|
||||||
|
"y": 270
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=north": {
|
||||||
|
"model": "chillcogs_backrooms:block/fun_green_wool"
|
||||||
|
},
|
||||||
|
"facing=east": {
|
||||||
|
"model": "chillcogs_backrooms:block/fun_green_wool",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south": {
|
||||||
|
"model": "chillcogs_backrooms:block/fun_green_wool",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west": {
|
||||||
|
"model": "chillcogs_backrooms:block/fun_green_wool",
|
||||||
|
"y": 270
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=north": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_corner"
|
||||||
|
},
|
||||||
|
"facing=east": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_corner",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_corner",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_corner",
|
||||||
|
"y": 270
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_corner_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=north": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_edge"
|
||||||
|
},
|
||||||
|
"facing=east": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_edge",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_edge",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_edge",
|
||||||
|
"y": 270
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=north": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_edge_2"
|
||||||
|
},
|
||||||
|
"facing=east": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_edge_2",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_edge_2",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_edge_2",
|
||||||
|
"y": 270
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=north": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_inner_corner"
|
||||||
|
},
|
||||||
|
"facing=east": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_inner_corner",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_inner_corner",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_inner_corner",
|
||||||
|
"y": 270
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=north": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_middle"
|
||||||
|
},
|
||||||
|
"facing=east": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_middle",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_middle",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west": {
|
||||||
|
"model": "chillcogs_backrooms:block/hotel_carpet_middle",
|
||||||
|
"y": 270
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/level_4_ceiling"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/level_4_wall"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/light"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/light_off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/light_scarlet_wall"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/manila_carpet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/manila_ceiling"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/manila_wallpaper"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/paradisal_grass"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"axis=x": {
|
||||||
|
"model": "chillcogs_backrooms:block/paradisal_log",
|
||||||
|
"x": 90,
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"axis=y": {
|
||||||
|
"model": "chillcogs_backrooms:block/paradisal_log"
|
||||||
|
},
|
||||||
|
"axis=z": {
|
||||||
|
"model": "chillcogs_backrooms:block/paradisal_log",
|
||||||
|
"x": 90
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/pool_tiles"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"facing=east,half=lower,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_left"
|
||||||
|
},
|
||||||
|
"facing=east,half=lower,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_left_open",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=east,half=lower,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_right"
|
||||||
|
},
|
||||||
|
"facing=east,half=lower,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_right_open",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=east,half=upper,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_left"
|
||||||
|
},
|
||||||
|
"facing=east,half=upper,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_left_open",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=east,half=upper,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_right"
|
||||||
|
},
|
||||||
|
"facing=east,half=upper,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_right_open",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=lower,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_left",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=lower,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_left_open"
|
||||||
|
},
|
||||||
|
"facing=north,half=lower,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_right",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=lower,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_right_open",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=north,half=upper,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_left",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=upper,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_left_open"
|
||||||
|
},
|
||||||
|
"facing=north,half=upper,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_right",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=north,half=upper,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_right_open",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=south,half=lower,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_left",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south,half=lower,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_left_open",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=south,half=lower,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_right",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south,half=lower,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_right_open"
|
||||||
|
},
|
||||||
|
"facing=south,half=upper,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_left",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south,half=upper,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_left_open",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=south,half=upper,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_right",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=south,half=upper,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_right_open"
|
||||||
|
},
|
||||||
|
"facing=west,half=lower,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_left",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,half=lower,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_left_open",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=west,half=lower,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_right",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,half=lower,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_bottom_right_open",
|
||||||
|
"y": 90
|
||||||
|
},
|
||||||
|
"facing=west,half=upper,hinge=left,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_left",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,half=upper,hinge=left,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_left_open",
|
||||||
|
"y": 270
|
||||||
|
},
|
||||||
|
"facing=west,half=upper,hinge=right,open=false": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_right",
|
||||||
|
"y": 180
|
||||||
|
},
|
||||||
|
"facing=west,half=upper,hinge=right,open=true": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_door_top_right_open",
|
||||||
|
"y": 90
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "chillcogs_backrooms:block/red_fun_carpet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loaded 100 of 390 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user