mirror of
https://github.com/TeamMidnightDust/ThisRocks.git
synced 2025-12-15 10:45:10 +01:00
This Rocks 1.4.0 - 1.17 and QOL
- Update to 1.17-pre1 and Java 16 - Make starfish items contain variations - Fix bugs
This commit is contained in:
4
.gitignore
vendored
Normal file → Executable file
4
.gitignore
vendored
Normal file → Executable file
@@ -1,5 +1,5 @@
|
|||||||
# gradle
|
# gradle
|
||||||
|
build/
|
||||||
.gradle/
|
.gradle/
|
||||||
out/
|
out/
|
||||||
classes/
|
classes/
|
||||||
@@ -21,4 +21,4 @@ bin/
|
|||||||
|
|
||||||
# fabric
|
# fabric
|
||||||
|
|
||||||
run/
|
run/
|
||||||
|
|||||||
61
build.gradle
Normal file → Executable file
61
build.gradle
Normal file → Executable file
@@ -1,66 +1,67 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'fabric-loom' version '0.4-SNAPSHOT'
|
id 'fabric-loom' version '0.8-SNAPSHOT'
|
||||||
id 'maven-publish'
|
id 'maven-publish'
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
sourceCompatibility = JavaVersion.VERSION_16
|
||||||
targetCompatibility = JavaVersion.VERSION_1_8
|
targetCompatibility = JavaVersion.VERSION_16
|
||||||
|
|
||||||
archivesBaseName = project.archives_base_name
|
archivesBaseName = project.archives_base_name
|
||||||
version = project.mod_version
|
version = project.mod_version
|
||||||
group = project.maven_group
|
group = project.maven_group
|
||||||
|
|
||||||
minecraft {
|
minecraft {
|
||||||
|
accessWidener = file("src/main/resources/thisrocks.accesswidener")
|
||||||
}
|
}
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
maven { url "https://maven.terraformersmc.com/releases" }
|
||||||
maven { url "https://jitpack.io" }
|
maven { url "https://jitpack.io" }
|
||||||
maven { url "https://maven.blamejared.com" }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
//to change the versions see the gradle.properties file
|
//to change the versions see the gradle.properties file
|
||||||
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
||||||
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
|
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
|
||||||
modCompile "net.fabricmc:fabric-loader:${project.loader_version}"
|
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
||||||
|
|
||||||
// Fabric API. This is technically optional, but you probably want it anyway.
|
// Fabric API. This is technically optional, but you probably want it anyway.
|
||||||
modCompile "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
||||||
|
|
||||||
modImplementation "eu.midnightdust:midnight-hats:${midnighthats_version}"
|
modImplementation "com.github.TeamMidnightDust:MidnightLib:${midnightlib_version}"
|
||||||
include "eu.midnightdust:midnight-hats:${midnighthats_version}"
|
include "com.github.TeamMidnightDust:MidnightLib:${midnightlib_version}"
|
||||||
}
|
}
|
||||||
|
|
||||||
processResources {
|
processResources {
|
||||||
inputs.property "version", project.version
|
inputs.property "version", project.version
|
||||||
|
|
||||||
from(sourceSets.main.resources.srcDirs) {
|
filesMatching("fabric.mod.json") {
|
||||||
include "fabric.mod.json"
|
|
||||||
expand "version": project.version
|
expand "version": project.version
|
||||||
}
|
}
|
||||||
|
|
||||||
from(sourceSets.main.resources.srcDirs) {
|
|
||||||
exclude "fabric.mod.json"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ensure that the encoding is set to UTF-8, no matter what the system default is
|
tasks.withType(JavaCompile).configureEach {
|
||||||
// this fixes some edge cases with special characters not displaying correctly
|
// ensure that the encoding is set to UTF-8, no matter what the system default is
|
||||||
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
|
// this fixes some edge cases with special characters not displaying correctly
|
||||||
tasks.withType(JavaCompile) {
|
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
|
||||||
options.encoding = "UTF-8"
|
// If Javadoc is generated, this must be specified in that task too.
|
||||||
|
it.options.encoding = "UTF-8"
|
||||||
|
|
||||||
|
// Minecraft 1.17 (21w19a) upwards uses Java 16.
|
||||||
|
it.options.release = 16
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
|
java {
|
||||||
// if it is present.
|
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
|
||||||
// If you remove this task, sources will not be generated.
|
// if it is present.
|
||||||
task sourcesJar(type: Jar, dependsOn: classes) {
|
// If you remove this line, sources will not be generated.
|
||||||
classifier = "sources"
|
withSourcesJar()
|
||||||
from sourceSets.main.allSource
|
|
||||||
}
|
}
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
from "LICENSE"
|
from("LICENSE") {
|
||||||
|
rename { "${it}_${project.archivesBaseName}"}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// configure the maven publication
|
// configure the maven publication
|
||||||
@@ -77,9 +78,11 @@ publishing {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// select the repositories you want to publish to
|
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
|
||||||
repositories {
|
repositories {
|
||||||
// uncomment to publish to the local maven
|
// Add repositories to publish to here.
|
||||||
// mavenLocal()
|
// Notice: This block does NOT have the same function as the block in the top level.
|
||||||
|
// The repositories here will be used for publishing your artifact, not for
|
||||||
|
// retrieving dependencies.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
12
gradle.properties
Normal file → Executable file
12
gradle.properties
Normal file → Executable file
@@ -3,16 +3,16 @@ org.gradle.jvmargs=-Xmx2G
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check these on https://fabricmc.net/use
|
# check these on https://fabricmc.net/use
|
||||||
minecraft_version=1.16.4
|
minecraft_version=1.17-pre1
|
||||||
yarn_mappings=1.16.4+build.7
|
yarn_mappings=1.17-pre1+build.9
|
||||||
loader_version=0.10.8
|
loader_version=0.11.3
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.3.1
|
mod_version = 1.4.0
|
||||||
maven_group = eu.midnightdust.motschen
|
maven_group = eu.midnightdust.motschen
|
||||||
archives_base_name = rocks
|
archives_base_name = rocks
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
|
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
|
||||||
fabric_version=0.17.2+build.396-1.16
|
fabric_version=0.34.8+1.17
|
||||||
midnighthats_version=2.0.1
|
midnightlib_version=v0.2.2
|
||||||
|
|||||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file → Executable file
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file → Executable file
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file → Executable file
2
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file → Executable file
@@ -1,5 +1,5 @@
|
|||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.1-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|||||||
35
gradlew
vendored
Normal file → Executable file
35
gradlew
vendored
Normal file → Executable file
@@ -82,6 +82,7 @@ esac
|
|||||||
|
|
||||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
# Determine the Java command to use to start the JVM.
|
# Determine the Java command to use to start the JVM.
|
||||||
if [ -n "$JAVA_HOME" ] ; then
|
if [ -n "$JAVA_HOME" ] ; then
|
||||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||||
@@ -125,10 +126,11 @@ if $darwin; then
|
|||||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# For Cygwin, switch paths to Windows format before running java
|
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||||
if $cygwin ; then
|
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||||
|
|
||||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||||
|
|
||||||
# We build the pattern for arguments to be converted via cygpath
|
# We build the pattern for arguments to be converted via cygpath
|
||||||
@@ -154,19 +156,19 @@ if $cygwin ; then
|
|||||||
else
|
else
|
||||||
eval `echo args$i`="\"$arg\""
|
eval `echo args$i`="\"$arg\""
|
||||||
fi
|
fi
|
||||||
i=$((i+1))
|
i=`expr $i + 1`
|
||||||
done
|
done
|
||||||
case $i in
|
case $i in
|
||||||
(0) set -- ;;
|
0) set -- ;;
|
||||||
(1) set -- "$args0" ;;
|
1) set -- "$args0" ;;
|
||||||
(2) set -- "$args0" "$args1" ;;
|
2) set -- "$args0" "$args1" ;;
|
||||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
3) set -- "$args0" "$args1" "$args2" ;;
|
||||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -175,14 +177,9 @@ save () {
|
|||||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||||
echo " "
|
echo " "
|
||||||
}
|
}
|
||||||
APP_ARGS=$(save "$@")
|
APP_ARGS=`save "$@"`
|
||||||
|
|
||||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||||
|
|
||||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
|
||||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
|
||||||
cd "$(dirname "$0")"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec "$JAVACMD" "$@"
|
exec "$JAVACMD" "$@"
|
||||||
|
|||||||
25
gradlew.bat
vendored
Normal file → Executable file
25
gradlew.bat
vendored
Normal file → Executable file
@@ -29,6 +29,9 @@ if "%DIRNAME%" == "" set DIRNAME=.
|
|||||||
set APP_BASE_NAME=%~n0
|
set APP_BASE_NAME=%~n0
|
||||||
set APP_HOME=%DIRNAME%
|
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.
|
@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"
|
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||||
|
|
||||||
@@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
|||||||
|
|
||||||
set JAVA_EXE=java.exe
|
set JAVA_EXE=java.exe
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if "%ERRORLEVEL%" == "0" goto init
|
if "%ERRORLEVEL%" == "0" goto execute
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
@@ -51,7 +54,7 @@ goto fail
|
|||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto init
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
@@ -61,28 +64,14 @@ echo location of your Java installation.
|
|||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
:init
|
|
||||||
@rem Get command-line arguments, handling Windows variants
|
|
||||||
|
|
||||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
|
||||||
|
|
||||||
:win9xME_args
|
|
||||||
@rem Slurp the command line arguments.
|
|
||||||
set CMD_LINE_ARGS=
|
|
||||||
set _SKIP=2
|
|
||||||
|
|
||||||
:win9xME_args_slurp
|
|
||||||
if "x%~1" == "x" goto execute
|
|
||||||
|
|
||||||
set CMD_LINE_ARGS=%*
|
|
||||||
|
|
||||||
:execute
|
:execute
|
||||||
@rem Setup the command line
|
@rem Setup the command line
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
@rem Execute Gradle
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||||
|
|
||||||
:end
|
:end
|
||||||
@rem End local scope for the variables with windows NT shell
|
@rem End local scope for the variables with windows NT shell
|
||||||
|
|||||||
0
settings.gradle
Normal file → Executable file
0
settings.gradle
Normal file → Executable file
14
src/main/java/eu/midnightdust/motschen/rocks/RocksClient.java
Executable file
14
src/main/java/eu/midnightdust/motschen/rocks/RocksClient.java
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
package eu.midnightdust.motschen.rocks;
|
||||||
|
|
||||||
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
|
import net.fabricmc.fabric.api.object.builder.v1.client.model.FabricModelPredicateProviderRegistry;
|
||||||
|
import net.minecraft.util.Identifier;
|
||||||
|
|
||||||
|
public class RocksClient implements ClientModInitializer {
|
||||||
|
@Override
|
||||||
|
public void onInitializeClient() {
|
||||||
|
FabricModelPredicateProviderRegistry.register(RocksMain.Starfish.asItem(), new Identifier("red"), (stack, world, entity, seed) -> (stack.getTag() != null && stack.getTag().getString("variation").equals("red")) ? 1 : 0);
|
||||||
|
FabricModelPredicateProviderRegistry.register(RocksMain.Starfish.asItem(), new Identifier("pink"), (stack, world, entity, seed) -> (stack.getTag() != null && stack.getTag().getString("variation").equals("pink")) ? 1 : 0);
|
||||||
|
FabricModelPredicateProviderRegistry.register(RocksMain.Starfish.asItem(), new Identifier("orange"), (stack, world, entity, seed) -> (stack.getTag() != null && stack.getTag().getString("variation").equals("orange")) ? 1 : 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
1
src/main/java/eu/midnightdust/motschen/rocks/RocksMain.java
Normal file → Executable file
1
src/main/java/eu/midnightdust/motschen/rocks/RocksMain.java
Normal file → Executable file
@@ -126,7 +126,6 @@ public class RocksMain implements ModInitializer {
|
|||||||
StickFeatures.init();
|
StickFeatures.init();
|
||||||
MiscFeatures.init();
|
MiscFeatures.init();
|
||||||
NetherFeatures.init();
|
NetherFeatures.init();
|
||||||
|
|
||||||
FeatureInjector.init();
|
FeatureInjector.init();
|
||||||
BlockEntityInit.init();
|
BlockEntityInit.init();
|
||||||
}
|
}
|
||||||
|
|||||||
28
src/main/java/eu/midnightdust/motschen/rocks/block/NetherGeyser.java
Normal file → Executable file
28
src/main/java/eu/midnightdust/motschen/rocks/block/NetherGeyser.java
Normal file → Executable file
@@ -1,9 +1,12 @@
|
|||||||
package eu.midnightdust.motschen.rocks.block;
|
package eu.midnightdust.motschen.rocks.block;
|
||||||
|
|
||||||
|
import eu.midnightdust.motschen.rocks.block.blockentity.BlockEntityInit;
|
||||||
import eu.midnightdust.motschen.rocks.block.blockentity.NetherGeyserBlockEntity;
|
import eu.midnightdust.motschen.rocks.block.blockentity.NetherGeyserBlockEntity;
|
||||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||||
import net.minecraft.block.*;
|
import net.minecraft.block.*;
|
||||||
import net.minecraft.block.entity.BlockEntity;
|
import net.minecraft.block.entity.BlockEntity;
|
||||||
|
import net.minecraft.block.entity.BlockEntityTicker;
|
||||||
|
import net.minecraft.block.entity.BlockEntityType;
|
||||||
import net.minecraft.item.ItemPlacementContext;
|
import net.minecraft.item.ItemPlacementContext;
|
||||||
import net.minecraft.sound.BlockSoundGroup;
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
import net.minecraft.state.StateManager;
|
import net.minecraft.state.StateManager;
|
||||||
@@ -12,9 +15,13 @@ import net.minecraft.util.math.BlockPos;
|
|||||||
import net.minecraft.util.math.Direction;
|
import net.minecraft.util.math.Direction;
|
||||||
import net.minecraft.util.shape.VoxelShape;
|
import net.minecraft.util.shape.VoxelShape;
|
||||||
import net.minecraft.world.BlockView;
|
import net.minecraft.world.BlockView;
|
||||||
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.WorldView;
|
import net.minecraft.world.WorldView;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class NetherGeyser extends Block implements BlockEntityProvider {
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class NetherGeyser extends BlockWithEntity implements BlockEntityProvider {
|
||||||
|
|
||||||
private static final VoxelShape SHAPE;
|
private static final VoxelShape SHAPE;
|
||||||
public static final BooleanProperty ACTIVE = BooleanProperty.of("active");
|
public static final BooleanProperty ACTIVE = BooleanProperty.of("active");
|
||||||
@@ -24,13 +31,20 @@ public class NetherGeyser extends Block implements BlockEntityProvider {
|
|||||||
this.setDefaultState(this.stateManager.getDefaultState().with(ACTIVE, false));
|
this.setDefaultState(this.stateManager.getDefaultState().with(ACTIVE, false));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public BlockEntity createBlockEntity(BlockView view) {
|
public BlockRenderType getRenderType(BlockState state) {
|
||||||
return new NetherGeyserBlockEntity();
|
return BlockRenderType.MODEL;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
|
||||||
|
return new NetherGeyserBlockEntity(pos, state);
|
||||||
|
}
|
||||||
|
@Nullable
|
||||||
|
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(World world, BlockState state, BlockEntityType<T> type) {
|
||||||
|
return checkType(type, BlockEntityInit.NETHER_GEYSER_BE, NetherGeyserBlockEntity::tick);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||||
return super.getPlacementState(itemPlacementContext)
|
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||||
.with(ACTIVE, false);
|
.with(ACTIVE, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -43,9 +57,7 @@ public class NetherGeyser extends Block implements BlockEntityProvider {
|
|||||||
return SHAPE;
|
return SHAPE;
|
||||||
}
|
}
|
||||||
static {
|
static {
|
||||||
VoxelShape shape = createCuboidShape(5, 0, 5, 11, 1, 11);
|
SHAPE = createCuboidShape(5, 0, 5, 11, 1, 11);
|
||||||
|
|
||||||
SHAPE = shape;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
||||||
|
|||||||
26
src/main/java/eu/midnightdust/motschen/rocks/block/OverworldGeyser.java
Normal file → Executable file
26
src/main/java/eu/midnightdust/motschen/rocks/block/OverworldGeyser.java
Normal file → Executable file
@@ -1,9 +1,12 @@
|
|||||||
package eu.midnightdust.motschen.rocks.block;
|
package eu.midnightdust.motschen.rocks.block;
|
||||||
|
|
||||||
|
import eu.midnightdust.motschen.rocks.block.blockentity.BlockEntityInit;
|
||||||
import eu.midnightdust.motschen.rocks.block.blockentity.OverworldGeyserBlockEntity;
|
import eu.midnightdust.motschen.rocks.block.blockentity.OverworldGeyserBlockEntity;
|
||||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||||
import net.minecraft.block.*;
|
import net.minecraft.block.*;
|
||||||
import net.minecraft.block.entity.BlockEntity;
|
import net.minecraft.block.entity.BlockEntity;
|
||||||
|
import net.minecraft.block.entity.BlockEntityTicker;
|
||||||
|
import net.minecraft.block.entity.BlockEntityType;
|
||||||
import net.minecraft.item.ItemPlacementContext;
|
import net.minecraft.item.ItemPlacementContext;
|
||||||
import net.minecraft.sound.BlockSoundGroup;
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
import net.minecraft.state.StateManager;
|
import net.minecraft.state.StateManager;
|
||||||
@@ -14,9 +17,13 @@ import net.minecraft.util.math.Direction;
|
|||||||
import net.minecraft.util.shape.VoxelShape;
|
import net.minecraft.util.shape.VoxelShape;
|
||||||
import net.minecraft.util.shape.VoxelShapes;
|
import net.minecraft.util.shape.VoxelShapes;
|
||||||
import net.minecraft.world.BlockView;
|
import net.minecraft.world.BlockView;
|
||||||
|
import net.minecraft.world.World;
|
||||||
import net.minecraft.world.WorldView;
|
import net.minecraft.world.WorldView;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public class OverworldGeyser extends Block implements BlockEntityProvider {
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class OverworldGeyser extends BlockWithEntity implements BlockEntityProvider {
|
||||||
|
|
||||||
private static final VoxelShape SHAPE;
|
private static final VoxelShape SHAPE;
|
||||||
private static final VoxelShape SNOWY_SHAPE;
|
private static final VoxelShape SNOWY_SHAPE;
|
||||||
@@ -28,13 +35,20 @@ public class OverworldGeyser extends Block implements BlockEntityProvider {
|
|||||||
this.setDefaultState(this.stateManager.getDefaultState().with(ACTIVE, false).with(SNOWY, false));
|
this.setDefaultState(this.stateManager.getDefaultState().with(ACTIVE, false).with(SNOWY, false));
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public BlockEntity createBlockEntity(BlockView view) {
|
public BlockRenderType getRenderType(BlockState state) {
|
||||||
return new OverworldGeyserBlockEntity();
|
return BlockRenderType.MODEL;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public BlockEntity createBlockEntity(BlockPos pos, BlockState state) {
|
||||||
|
return new OverworldGeyserBlockEntity(pos, state);
|
||||||
|
}
|
||||||
|
@Nullable
|
||||||
|
public <T extends BlockEntity> BlockEntityTicker<T> getTicker(World world, BlockState state, BlockEntityType<T> type) {
|
||||||
|
return checkType(type, BlockEntityInit.OVERWORLD_GEYSER_BE, OverworldGeyserBlockEntity::tick);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||||
return super.getPlacementState(itemPlacementContext)
|
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||||
.with(ACTIVE, false).with(SNOWY, false);
|
.with(ACTIVE, false).with(SNOWY, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -44,7 +58,7 @@ public class OverworldGeyser extends Block implements BlockEntityProvider {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) {
|
public VoxelShape getOutlineShape(BlockState state, BlockView view, BlockPos pos, ShapeContext context) {
|
||||||
if (state.get(SNOWY) == true) {return SNOWY_SHAPE;}
|
if (state.get(SNOWY)) {return SNOWY_SHAPE;}
|
||||||
else return SHAPE;
|
else return SHAPE;
|
||||||
}
|
}
|
||||||
static {
|
static {
|
||||||
|
|||||||
4
src/main/java/eu/midnightdust/motschen/rocks/block/Pinecone.java
Normal file → Executable file
4
src/main/java/eu/midnightdust/motschen/rocks/block/Pinecone.java
Normal file → Executable file
@@ -24,9 +24,7 @@ public class Pinecone extends Block {
|
|||||||
return SHAPE;
|
return SHAPE;
|
||||||
}
|
}
|
||||||
static {
|
static {
|
||||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 3, 16);
|
SHAPE = createCuboidShape(0, 0, 0, 16, 3, 16);
|
||||||
|
|
||||||
SHAPE = shape;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
||||||
|
|||||||
8
src/main/java/eu/midnightdust/motschen/rocks/block/Rock.java
Normal file → Executable file
8
src/main/java/eu/midnightdust/motschen/rocks/block/Rock.java
Normal file → Executable file
@@ -20,6 +20,8 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
import net.minecraft.world.WorldView;
|
import net.minecraft.world.WorldView;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class Rock extends Block {
|
public class Rock extends Block {
|
||||||
|
|
||||||
private static final VoxelShape SHAPE;
|
private static final VoxelShape SHAPE;
|
||||||
@@ -32,7 +34,7 @@ public class Rock extends Block {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||||
return super.getPlacementState(itemPlacementContext)
|
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||||
.with(ROCK_VARIATION, RockVariation.TINY);
|
.with(ROCK_VARIATION, RockVariation.TINY);
|
||||||
}
|
}
|
||||||
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
||||||
@@ -63,9 +65,7 @@ public class Rock extends Block {
|
|||||||
return SHAPE;
|
return SHAPE;
|
||||||
}
|
}
|
||||||
static {
|
static {
|
||||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 3, 16);
|
SHAPE = createCuboidShape(0, 0, 0, 16, 3, 16);
|
||||||
|
|
||||||
SHAPE = shape;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
||||||
|
|||||||
8
src/main/java/eu/midnightdust/motschen/rocks/block/Seashell.java
Normal file → Executable file
8
src/main/java/eu/midnightdust/motschen/rocks/block/Seashell.java
Normal file → Executable file
@@ -24,6 +24,8 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
import net.minecraft.world.WorldView;
|
import net.minecraft.world.WorldView;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class Seashell extends Block implements Waterloggable {
|
public class Seashell extends Block implements Waterloggable {
|
||||||
|
|
||||||
private static final VoxelShape SHAPE;
|
private static final VoxelShape SHAPE;
|
||||||
@@ -43,7 +45,7 @@ public class Seashell extends Block implements Waterloggable {
|
|||||||
@Override
|
@Override
|
||||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||||
FluidState fluidState = itemPlacementContext.getWorld().getFluidState(itemPlacementContext.getBlockPos());
|
FluidState fluidState = itemPlacementContext.getWorld().getFluidState(itemPlacementContext.getBlockPos());
|
||||||
return super.getPlacementState(itemPlacementContext)
|
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||||
.with(SEASHELL_VARIATION, SeashellVariation.PINK).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER);
|
.with(SEASHELL_VARIATION, SeashellVariation.PINK).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -72,9 +74,7 @@ public class Seashell extends Block implements Waterloggable {
|
|||||||
return SHAPE;
|
return SHAPE;
|
||||||
}
|
}
|
||||||
static {
|
static {
|
||||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 3, 16);
|
SHAPE = createCuboidShape(0, 0, 0, 16, 3, 16);
|
||||||
|
|
||||||
SHAPE = shape;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
||||||
|
|||||||
27
src/main/java/eu/midnightdust/motschen/rocks/block/Starfish.java
Normal file → Executable file
27
src/main/java/eu/midnightdust/motschen/rocks/block/Starfish.java
Normal file → Executable file
@@ -8,6 +8,10 @@ import net.minecraft.entity.player.PlayerEntity;
|
|||||||
import net.minecraft.fluid.FluidState;
|
import net.minecraft.fluid.FluidState;
|
||||||
import net.minecraft.fluid.Fluids;
|
import net.minecraft.fluid.Fluids;
|
||||||
import net.minecraft.item.ItemPlacementContext;
|
import net.minecraft.item.ItemPlacementContext;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.nbt.NbtCompound;
|
||||||
|
import net.minecraft.nbt.NbtElement;
|
||||||
|
import net.minecraft.nbt.NbtString;
|
||||||
import net.minecraft.sound.BlockSoundGroup;
|
import net.minecraft.sound.BlockSoundGroup;
|
||||||
import net.minecraft.state.StateManager;
|
import net.minecraft.state.StateManager;
|
||||||
import net.minecraft.state.property.BooleanProperty;
|
import net.minecraft.state.property.BooleanProperty;
|
||||||
@@ -24,6 +28,8 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
import net.minecraft.world.WorldView;
|
import net.minecraft.world.WorldView;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class Starfish extends Block implements Waterloggable {
|
public class Starfish extends Block implements Waterloggable {
|
||||||
|
|
||||||
private static final VoxelShape SHAPE;
|
private static final VoxelShape SHAPE;
|
||||||
@@ -42,9 +48,22 @@ public class Starfish extends Block implements Waterloggable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||||
|
ItemStack stack = itemPlacementContext.getStack();
|
||||||
|
StarfishVariation variation = StarfishVariation.RED;
|
||||||
|
if (stack.getTag() != null) {
|
||||||
|
var optionalVariation = STARFISH_VARIATION.parse(stack.getTag().getString("variation"));
|
||||||
|
if (optionalVariation.isPresent()) variation = optionalVariation.get();
|
||||||
|
}
|
||||||
FluidState fluidState = itemPlacementContext.getWorld().getFluidState(itemPlacementContext.getBlockPos());
|
FluidState fluidState = itemPlacementContext.getWorld().getFluidState(itemPlacementContext.getBlockPos());
|
||||||
return super.getPlacementState(itemPlacementContext)
|
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||||
.with(STARFISH_VARIATION, StarfishVariation.RED).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER);
|
.with(STARFISH_VARIATION, variation).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public ItemStack getPickStack(BlockView world, BlockPos pos, BlockState state) {
|
||||||
|
ItemStack stack = new ItemStack(this);
|
||||||
|
stack.getOrCreateTag().putString("variation", state.get(STARFISH_VARIATION).asString());
|
||||||
|
LOGGER.info(state.get(STARFISH_VARIATION).asString());
|
||||||
|
return stack;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
||||||
@@ -72,9 +91,7 @@ public class Starfish extends Block implements Waterloggable {
|
|||||||
return SHAPE;
|
return SHAPE;
|
||||||
}
|
}
|
||||||
static {
|
static {
|
||||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 1, 16);
|
SHAPE = createCuboidShape(0, 0, 0, 16, 1, 16);
|
||||||
|
|
||||||
SHAPE = shape;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
||||||
|
|||||||
8
src/main/java/eu/midnightdust/motschen/rocks/block/Stick.java
Normal file → Executable file
8
src/main/java/eu/midnightdust/motschen/rocks/block/Stick.java
Normal file → Executable file
@@ -20,6 +20,8 @@ import net.minecraft.world.World;
|
|||||||
import net.minecraft.world.WorldAccess;
|
import net.minecraft.world.WorldAccess;
|
||||||
import net.minecraft.world.WorldView;
|
import net.minecraft.world.WorldView;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
public class Stick extends Block {
|
public class Stick extends Block {
|
||||||
|
|
||||||
private static final VoxelShape SHAPE;
|
private static final VoxelShape SHAPE;
|
||||||
@@ -32,7 +34,7 @@ public class Stick extends Block {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||||
return super.getPlacementState(itemPlacementContext)
|
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||||
.with(STICK_VARIATION, StickVariation.SMALL);
|
.with(STICK_VARIATION, StickVariation.SMALL);
|
||||||
}
|
}
|
||||||
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
|
||||||
@@ -60,9 +62,7 @@ public class Stick extends Block {
|
|||||||
return SHAPE;
|
return SHAPE;
|
||||||
}
|
}
|
||||||
static {
|
static {
|
||||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 1, 16);
|
SHAPE = createCuboidShape(0, 0, 0, 16, 1, 16);
|
||||||
|
|
||||||
SHAPE = shape;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
|
||||||
|
|||||||
5
src/main/java/eu/midnightdust/motschen/rocks/block/blockentity/BlockEntityInit.java
Normal file → Executable file
5
src/main/java/eu/midnightdust/motschen/rocks/block/blockentity/BlockEntityInit.java
Normal file → Executable file
@@ -1,6 +1,7 @@
|
|||||||
package eu.midnightdust.motschen.rocks.block.blockentity;
|
package eu.midnightdust.motschen.rocks.block.blockentity;
|
||||||
|
|
||||||
import eu.midnightdust.motschen.rocks.RocksMain;
|
import eu.midnightdust.motschen.rocks.RocksMain;
|
||||||
|
import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
|
||||||
import net.minecraft.block.entity.BlockEntityType;
|
import net.minecraft.block.entity.BlockEntityType;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
@@ -10,7 +11,7 @@ public class BlockEntityInit {
|
|||||||
public static BlockEntityType<NetherGeyserBlockEntity> NETHER_GEYSER_BE;
|
public static BlockEntityType<NetherGeyserBlockEntity> NETHER_GEYSER_BE;
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
OVERWORLD_GEYSER_BE = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(RocksMain.MOD_ID,"overworld_geyser_blockentity"), BlockEntityType.Builder.create(OverworldGeyserBlockEntity::new, RocksMain.Geyser).build(null));
|
OVERWORLD_GEYSER_BE = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(RocksMain.MOD_ID,"overworld_geyser_blockentity"), FabricBlockEntityTypeBuilder.create(OverworldGeyserBlockEntity::new, RocksMain.Geyser).build(null));
|
||||||
NETHER_GEYSER_BE = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(RocksMain.MOD_ID,"nether_geyser_blockentity"), BlockEntityType.Builder.create(NetherGeyserBlockEntity::new, RocksMain.NetherGeyser).build(null));
|
NETHER_GEYSER_BE = Registry.register(Registry.BLOCK_ENTITY_TYPE, new Identifier(RocksMain.MOD_ID,"nether_geyser_blockentity"), FabricBlockEntityTypeBuilder.create(NetherGeyserBlockEntity::new, RocksMain.NetherGeyser).build(null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
28
src/main/java/eu/midnightdust/motschen/rocks/block/blockentity/NetherGeyserBlockEntity.java
Normal file → Executable file
28
src/main/java/eu/midnightdust/motschen/rocks/block/blockentity/NetherGeyserBlockEntity.java
Normal file → Executable file
@@ -7,22 +7,22 @@ import net.minecraft.block.entity.BlockEntity;
|
|||||||
import net.minecraft.entity.damage.DamageSource;
|
import net.minecraft.entity.damage.DamageSource;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.particle.ParticleTypes;
|
import net.minecraft.particle.ParticleTypes;
|
||||||
import net.minecraft.util.Tickable;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class NetherGeyserBlockEntity extends BlockEntity implements Tickable {
|
public class NetherGeyserBlockEntity extends BlockEntity {
|
||||||
private int countdown = 0;
|
private int countdown = 0;
|
||||||
|
|
||||||
public NetherGeyserBlockEntity() {
|
public NetherGeyserBlockEntity(BlockPos pos, BlockState state) {
|
||||||
super(BlockEntityInit.NETHER_GEYSER_BE);
|
super(BlockEntityInit.NETHER_GEYSER_BE, pos, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public static void tick(World world, BlockPos pos, BlockState state, NetherGeyserBlockEntity blockEntity) {
|
||||||
public void tick() {
|
assert world != null;
|
||||||
if (world.getBlockState(pos).getBlock() == RocksMain.NetherGeyser) {
|
if (world.getBlockState(pos).getBlock() == RocksMain.NetherGeyser) {
|
||||||
PlayerEntity player = this.world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true);
|
PlayerEntity player = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true);
|
||||||
PlayerEntity player2 = this.world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 1, true);
|
PlayerEntity player2 = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 1, true);
|
||||||
BlockState state = this.getCachedState();
|
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
world.setBlockState(pos, state.with(NetherGeyser.ACTIVE, true));
|
world.setBlockState(pos, state.with(NetherGeyser.ACTIVE, true));
|
||||||
@@ -31,17 +31,17 @@ public class NetherGeyserBlockEntity extends BlockEntity implements Tickable {
|
|||||||
if (player2 != null) {
|
if (player2 != null) {
|
||||||
player2.damage(DamageSource.ON_FIRE, 4);
|
player2.damage(DamageSource.ON_FIRE, 4);
|
||||||
}
|
}
|
||||||
countdown = 1000;
|
blockEntity.countdown = 1000;
|
||||||
} else {
|
} else {
|
||||||
if (countdown > 0) {
|
if (blockEntity.countdown > 0) {
|
||||||
countdown = countdown - 1;
|
blockEntity.countdown = blockEntity.countdown - 1;
|
||||||
}
|
}
|
||||||
if (countdown == 0) {
|
if (blockEntity.countdown == 0) {
|
||||||
world.setBlockState(pos, state.with(NetherGeyser.ACTIVE, false));
|
world.setBlockState(pos, state.with(NetherGeyser.ACTIVE, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Boolean.TRUE.equals(state.get(NetherGeyser.ACTIVE))) {
|
if (state.get(NetherGeyser.ACTIVE)) {
|
||||||
world.addParticle(ParticleTypes.LAVA, pos.getX() + 0.5, pos.getY() + 0.1, pos.getZ() + 0.5, 1, 1.5, 1);
|
world.addParticle(ParticleTypes.LAVA, pos.getX() + 0.5, pos.getY() + 0.1, pos.getZ() + 0.5, 1, 1.5, 1);
|
||||||
world.addParticle(ParticleTypes.LAVA, pos.getX() + 0.5, pos.getY() + 1.0, pos.getZ() + 0.5, 1, 1.5, 1);
|
world.addParticle(ParticleTypes.LAVA, pos.getX() + 0.5, pos.getY() + 1.0, pos.getZ() + 0.5, 1, 1.5, 1);
|
||||||
world.addParticle(ParticleTypes.SMOKE, pos.getX() + 0.5, pos.getY() + 0.1, pos.getZ() + 0.5, 0, 0.3, 0);
|
world.addParticle(ParticleTypes.SMOKE, pos.getX() + 0.5, pos.getY() + 0.1, pos.getZ() + 0.5, 0, 0.3, 0);
|
||||||
|
|||||||
36
src/main/java/eu/midnightdust/motschen/rocks/block/blockentity/OverworldGeyserBlockEntity.java
Normal file → Executable file
36
src/main/java/eu/midnightdust/motschen/rocks/block/blockentity/OverworldGeyserBlockEntity.java
Normal file → Executable file
@@ -8,45 +8,39 @@ import net.minecraft.entity.effect.StatusEffectInstance;
|
|||||||
import net.minecraft.entity.effect.StatusEffects;
|
import net.minecraft.entity.effect.StatusEffects;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.particle.ParticleTypes;
|
import net.minecraft.particle.ParticleTypes;
|
||||||
import net.minecraft.util.Tickable;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.world.World;
|
||||||
|
|
||||||
public class OverworldGeyserBlockEntity extends BlockEntity implements Tickable {
|
public class OverworldGeyserBlockEntity extends BlockEntity {
|
||||||
private int countdown = 0;
|
public int countdown = 0;
|
||||||
|
|
||||||
public OverworldGeyserBlockEntity() {
|
public OverworldGeyserBlockEntity(BlockPos pos, BlockState state) {
|
||||||
super(BlockEntityInit.OVERWORLD_GEYSER_BE);
|
super(BlockEntityInit.OVERWORLD_GEYSER_BE, pos, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public static void tick(World world, BlockPos pos, BlockState state, OverworldGeyserBlockEntity blockEntity) {
|
||||||
public void tick() {
|
assert world != null;
|
||||||
if (world.getBlockState(pos).getBlock() == RocksMain.Geyser) {
|
if (world.getBlockState(pos).getBlock() == RocksMain.Geyser) {
|
||||||
PlayerEntity player = this.world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true);
|
PlayerEntity player = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true);
|
||||||
PlayerEntity player2 = this.world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 8, true);
|
PlayerEntity player2 = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 8, true);
|
||||||
PlayerEntity player3 = null;
|
|
||||||
|
|
||||||
if (player2 != null && player2.getY() >= pos.getY() && (pos.getX() <= player2.getX() && pos.getX() + 1 >= player2.getX()) && (pos.getZ() <= player2.getZ() && pos.getZ() + 1 >= player2.getZ())) {
|
if (player2 != null && player2.getY() >= pos.getY() && (pos.getX() <= player2.getX() && pos.getX() + 1 >= player2.getX()) && (pos.getZ() <= player2.getZ() && pos.getZ() + 1 >= player2.getZ())) {
|
||||||
player3 = player2;
|
player2.addStatusEffect(new StatusEffectInstance(StatusEffects.LEVITATION, 2, 10, true, false, false));
|
||||||
}
|
}
|
||||||
BlockState state = this.getCachedState();
|
|
||||||
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
world.setBlockState(pos, state.with(OverworldGeyser.ACTIVE, true));
|
world.setBlockState(pos, state.with(OverworldGeyser.ACTIVE, true));
|
||||||
|
blockEntity.countdown = 1000;
|
||||||
if (player3 != null) {
|
|
||||||
player3.addStatusEffect(new StatusEffectInstance(StatusEffects.LEVITATION, 2, 12, true, false, false));
|
|
||||||
}
|
|
||||||
countdown = 1000;
|
|
||||||
} else {
|
} else {
|
||||||
if (countdown > 0) {
|
if (blockEntity.countdown > 0) {
|
||||||
countdown = countdown - 1;
|
blockEntity.countdown = blockEntity.countdown - 1;
|
||||||
}
|
}
|
||||||
if (countdown == 0) {
|
if (blockEntity.countdown == 0) {
|
||||||
world.setBlockState(pos, state.with(OverworldGeyser.ACTIVE, false));
|
world.setBlockState(pos, state.with(OverworldGeyser.ACTIVE, false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (world != null && state.get(OverworldGeyser.ACTIVE) == true) {
|
if (state.get(OverworldGeyser.ACTIVE)) {
|
||||||
world.addParticle(ParticleTypes.SPIT, pos.getX() + 0.5, pos.getY() + 0.1, pos.getZ() + 0.5, 0, 1.0, 0);
|
world.addParticle(ParticleTypes.SPIT, pos.getX() + 0.5, pos.getY() + 0.1, pos.getZ() + 0.5, 0, 1.0, 0);
|
||||||
world.addParticle(ParticleTypes.SPIT, pos.getX() + 0.5, pos.getY() + 0.3, pos.getZ() + 0.5, 0, 1.0, 0);
|
world.addParticle(ParticleTypes.SPIT, pos.getX() + 0.5, pos.getY() + 0.3, pos.getZ() + 0.5, 0, 1.0, 0);
|
||||||
world.addParticle(ParticleTypes.SPLASH, pos.getX() + 0.5, pos.getY() + 1.0, pos.getZ() + 0.5, -0.01, 1.5, -0.01);
|
world.addParticle(ParticleTypes.SPLASH, pos.getX() + 0.5, pos.getY() + 1.0, pos.getZ() + 0.5, -0.01, 1.5, -0.01);
|
||||||
|
|||||||
0
src/main/java/eu/midnightdust/motschen/rocks/blockstates/RockVariation.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/blockstates/RockVariation.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/blockstates/SeashellVariation.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/blockstates/SeashellVariation.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/blockstates/StarfishVariation.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/blockstates/StarfishVariation.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/blockstates/StickVariation.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/blockstates/StickVariation.java
Normal file → Executable file
13
src/main/java/eu/midnightdust/motschen/rocks/item/StarfishItem.java
Executable file
13
src/main/java/eu/midnightdust/motschen/rocks/item/StarfishItem.java
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
package eu.midnightdust.motschen.rocks.item;
|
||||||
|
|
||||||
|
import eu.midnightdust.motschen.rocks.blockstates.StarfishVariation;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
|
|
||||||
|
public class StarfishItem extends Item {
|
||||||
|
public final StarfishVariation variation;
|
||||||
|
|
||||||
|
public StarfishItem(Settings settings, StarfishVariation variation) {
|
||||||
|
super(settings);
|
||||||
|
this.variation = variation;
|
||||||
|
}
|
||||||
|
}
|
||||||
0
src/main/java/eu/midnightdust/motschen/rocks/mixin/GenerationSettingsAccessorMixin.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/mixin/GenerationSettingsAccessorMixin.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/mixin/MixinModelElementDeserializer.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/mixin/MixinModelElementDeserializer.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/world/FeatureInjector.java
Normal file → Executable file
0
src/main/java/eu/midnightdust/motschen/rocks/world/FeatureInjector.java
Normal file → Executable file
22
src/main/java/eu/midnightdust/motschen/rocks/world/FeatureRegistry.java
Normal file → Executable file
22
src/main/java/eu/midnightdust/motschen/rocks/world/FeatureRegistry.java
Normal file → Executable file
@@ -5,7 +5,9 @@ import eu.midnightdust.motschen.rocks.blockstates.SeashellVariation;
|
|||||||
import eu.midnightdust.motschen.rocks.blockstates.StarfishVariation;
|
import eu.midnightdust.motschen.rocks.blockstates.StarfishVariation;
|
||||||
import eu.midnightdust.motschen.rocks.world.feature.SnowFeature;
|
import eu.midnightdust.motschen.rocks.world.feature.SnowFeature;
|
||||||
import eu.midnightdust.motschen.rocks.world.feature.UnderwaterFeature;
|
import eu.midnightdust.motschen.rocks.world.feature.UnderwaterFeature;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.state.property.Properties;
|
import net.minecraft.state.property.Properties;
|
||||||
|
import net.minecraft.util.collection.DataPool;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.world.gen.ProbabilityConfig;
|
import net.minecraft.world.gen.ProbabilityConfig;
|
||||||
import net.minecraft.world.gen.feature.Feature;
|
import net.minecraft.world.gen.feature.Feature;
|
||||||
@@ -22,18 +24,18 @@ public class FeatureRegistry<FC extends FeatureConfig> {
|
|||||||
return Registry.register(Registry.FEATURE, name, feature);
|
return Registry.register(Registry.FEATURE, name, feature);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final WeightedBlockStateProvider StarfishStates = new WeightedBlockStateProvider()
|
private static final WeightedBlockStateProvider StarfishStates = new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION, StarfishVariation.RED).with(Properties.WATERLOGGED, true), 6)
|
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION, StarfishVariation.RED).with(Properties.WATERLOGGED, true), 6)
|
||||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK).with(Properties.WATERLOGGED, true), 7)
|
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK).with(Properties.WATERLOGGED, true), 7)
|
||||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE).with(Properties.WATERLOGGED, true), 2);
|
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE).with(Properties.WATERLOGGED, true), 2).build());
|
||||||
|
|
||||||
private static final WeightedBlockStateProvider SeashellStates = new WeightedBlockStateProvider()
|
private static final WeightedBlockStateProvider SeashellStates = new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION, SeashellVariation.YELLOW).with(Properties.WATERLOGGED, true), 7)
|
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION, SeashellVariation.YELLOW).with(Properties.WATERLOGGED, true), 7)
|
||||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK).with(Properties.WATERLOGGED, true), 2)
|
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK).with(Properties.WATERLOGGED, true), 2)
|
||||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE).with(Properties.WATERLOGGED, true), 6);
|
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE).with(Properties.WATERLOGGED, true), 6).build());
|
||||||
|
|
||||||
private static final WeightedBlockStateProvider GeyserStates = new WeightedBlockStateProvider()
|
private static final WeightedBlockStateProvider GeyserStates = new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.Geyser.getDefaultState().with(Properties.SNOWY, true), 1);
|
.add(RocksMain.Geyser.getDefaultState().with(Properties.SNOWY, true), 1).build());
|
||||||
|
|
||||||
static {
|
static {
|
||||||
UNDERWATER_STARFISH_FEATURE = register("underwater_starfish", new UnderwaterFeature(ProbabilityConfig.CODEC, StarfishStates));
|
UNDERWATER_STARFISH_FEATURE = register("underwater_starfish", new UnderwaterFeature(ProbabilityConfig.CODEC, StarfishStates));
|
||||||
|
|||||||
12
src/main/java/eu/midnightdust/motschen/rocks/world/RocksDecorators.java
Executable file
12
src/main/java/eu/midnightdust/motschen/rocks/world/RocksDecorators.java
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
package eu.midnightdust.motschen.rocks.world;
|
||||||
|
|
||||||
|
import net.minecraft.world.gen.YOffset;
|
||||||
|
import net.minecraft.world.gen.decorator.ConfiguredDecorator;
|
||||||
|
import net.minecraft.world.gen.decorator.Decorator;
|
||||||
|
import net.minecraft.world.gen.decorator.RangeDecoratorConfig;
|
||||||
|
import net.minecraft.world.gen.heightprovider.UniformHeightProvider;
|
||||||
|
|
||||||
|
public class RocksDecorators {
|
||||||
|
public static final RangeDecoratorConfig BOTTOM_TO_TOP_OFFSET_4 = new RangeDecoratorConfig(UniformHeightProvider.create(YOffset.aboveBottom(4), YOffset.belowTop(4)));
|
||||||
|
public static final ConfiguredDecorator<?> ROCK = (ConfiguredDecorator)((ConfiguredDecorator)Decorator.RANGE.configure(BOTTOM_TO_TOP_OFFSET_4).spreadHorizontally()).repeatRandomly(5);
|
||||||
|
}
|
||||||
25
src/main/java/eu/midnightdust/motschen/rocks/world/configured_feature/MiscFeatures.java
Normal file → Executable file
25
src/main/java/eu/midnightdust/motschen/rocks/world/configured_feature/MiscFeatures.java
Normal file → Executable file
@@ -5,8 +5,11 @@ import eu.midnightdust.motschen.rocks.RocksMain;
|
|||||||
import eu.midnightdust.motschen.rocks.blockstates.SeashellVariation;
|
import eu.midnightdust.motschen.rocks.blockstates.SeashellVariation;
|
||||||
import eu.midnightdust.motschen.rocks.blockstates.StarfishVariation;
|
import eu.midnightdust.motschen.rocks.blockstates.StarfishVariation;
|
||||||
import eu.midnightdust.motschen.rocks.world.FeatureRegistry;
|
import eu.midnightdust.motschen.rocks.world.FeatureRegistry;
|
||||||
|
import eu.midnightdust.motschen.rocks.world.RocksDecorators;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
import net.minecraft.util.collection.DataPool;
|
||||||
import net.minecraft.util.registry.BuiltinRegistries;
|
import net.minecraft.util.registry.BuiltinRegistries;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.world.gen.ProbabilityConfig;
|
import net.minecraft.world.gen.ProbabilityConfig;
|
||||||
@@ -17,26 +20,26 @@ import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
|||||||
public class MiscFeatures {
|
public class MiscFeatures {
|
||||||
public static ConfiguredFeature<?, ?> SEASHELL_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> SEASHELL_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.YELLOW), 7)
|
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.YELLOW), 7)
|
||||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK), 2)
|
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK), 2)
|
||||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE), 6),
|
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE), 6).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.SAND, Blocks.SANDSTONE, Blocks.RED_SAND, Blocks.RED_SANDSTONE))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.SAND, Blocks.SANDSTONE, Blocks.RED_SAND, Blocks.RED_SANDSTONE))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> STARFISH_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> STARFISH_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.RED), 2)
|
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.RED), 2)
|
||||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK), 6)
|
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK), 6)
|
||||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE), 7),
|
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE), 7).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.SAND, Blocks.SANDSTONE, Blocks.RED_SAND, Blocks.RED_SANDSTONE))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.SAND, Blocks.SANDSTONE, Blocks.RED_SAND, Blocks.RED_SANDSTONE))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
|
|
||||||
public static ConfiguredFeature<?, ?> UNDERWATER_STARFISH_FEATURE = FeatureRegistry.UNDERWATER_STARFISH_FEATURE.configure(new ProbabilityConfig(1));
|
public static ConfiguredFeature<?, ?> UNDERWATER_STARFISH_FEATURE = FeatureRegistry.UNDERWATER_STARFISH_FEATURE.configure(new ProbabilityConfig(1));
|
||||||
public static ConfiguredFeature<?, ?> UNDERWATER_SEASHELL_FEATURE = FeatureRegistry.UNDERWATER_SEASHELL_FEATURE.configure(new ProbabilityConfig(1));
|
public static ConfiguredFeature<?, ?> UNDERWATER_SEASHELL_FEATURE = FeatureRegistry.UNDERWATER_SEASHELL_FEATURE.configure(new ProbabilityConfig(1));
|
||||||
public static ConfiguredFeature<?, ?> SNOWY_GEYSER_FEATURE = FeatureRegistry.SNOWY_GEYSER_FEATURE.configure(new ProbabilityConfig(1)).decorate(ConfiguredFeatures.Decorators.FIRE);
|
public static ConfiguredFeature<?, ?> SNOWY_GEYSER_FEATURE = FeatureRegistry.SNOWY_GEYSER_FEATURE.configure(new ProbabilityConfig(1)).decorate(RocksDecorators.ROCK);
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
Registry<ConfiguredFeature<?, ?>> registry = BuiltinRegistries.CONFIGURED_FEATURE;
|
Registry<ConfiguredFeature<?, ?>> registry = BuiltinRegistries.CONFIGURED_FEATURE;
|
||||||
|
|||||||
46
src/main/java/eu/midnightdust/motschen/rocks/world/configured_feature/NetherFeatures.java
Normal file → Executable file
46
src/main/java/eu/midnightdust/motschen/rocks/world/configured_feature/NetherFeatures.java
Normal file → Executable file
@@ -3,8 +3,11 @@ package eu.midnightdust.motschen.rocks.world.configured_feature;
|
|||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import eu.midnightdust.motschen.rocks.RocksMain;
|
import eu.midnightdust.motschen.rocks.RocksMain;
|
||||||
import eu.midnightdust.motschen.rocks.blockstates.RockVariation;
|
import eu.midnightdust.motschen.rocks.blockstates.RockVariation;
|
||||||
|
import eu.midnightdust.motschen.rocks.world.RocksDecorators;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
import net.minecraft.util.collection.DataPool;
|
||||||
import net.minecraft.util.registry.BuiltinRegistries;
|
import net.minecraft.util.registry.BuiltinRegistries;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||||
@@ -12,47 +15,46 @@ import net.minecraft.world.gen.feature.ConfiguredFeatures;
|
|||||||
import net.minecraft.world.gen.feature.Feature;
|
import net.minecraft.world.gen.feature.Feature;
|
||||||
import net.minecraft.world.gen.feature.RandomPatchFeatureConfig;
|
import net.minecraft.world.gen.feature.RandomPatchFeatureConfig;
|
||||||
import net.minecraft.world.gen.placer.SimpleBlockPlacer;
|
import net.minecraft.world.gen.placer.SimpleBlockPlacer;
|
||||||
|
import net.minecraft.world.gen.stateprovider.SimpleBlockStateProvider;
|
||||||
import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
||||||
|
|
||||||
public class NetherFeatures {
|
public class NetherFeatures {
|
||||||
|
|
||||||
public static ConfiguredFeature<?, ?> NETHERRACK_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> NETHERRACK_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
.add(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.whitelist(ImmutableSet.of(Blocks.NETHERRACK,Blocks.WARPED_NYLIUM,Blocks.CRIMSON_NYLIUM)).cannotProject().build()).decorate(ConfiguredFeatures.Decorators.FIRE).repeat(128);
|
.whitelist(ImmutableSet.of(Blocks.NETHERRACK,Blocks.WARPED_NYLIUM,Blocks.CRIMSON_NYLIUM)).cannotProject().build()).decorate(RocksDecorators.ROCK).repeat(128);
|
||||||
public static ConfiguredFeature<?, ?> SOUL_SOIL_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> SOUL_SOIL_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
.add(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.whitelist(ImmutableSet.of(Blocks.SOUL_SOIL,Blocks.SOUL_SAND)).cannotProject().build()).decorate(ConfiguredFeatures.Decorators.FIRE).repeat(128);
|
.whitelist(ImmutableSet.of(Blocks.SOUL_SOIL,Blocks.SOUL_SAND)).cannotProject().build()).decorate(RocksDecorators.ROCK).repeat(128);
|
||||||
public static ConfiguredFeature<?, ?> NETHER_GRAVEL_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> NETHER_GRAVEL_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.whitelist(ImmutableSet.of(Blocks.GRAVEL)).cannotProject().build()).decorate(ConfiguredFeatures.Decorators.FIRE).repeat(128);
|
.whitelist(ImmutableSet.of(Blocks.GRAVEL)).cannotProject().build()).decorate(RocksDecorators.ROCK).repeat(128);
|
||||||
public static ConfiguredFeature<?, ?> NETHER_GEYSER_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> NETHER_GEYSER_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new SimpleBlockStateProvider(RocksMain.NetherGeyser.getDefaultState()),SimpleBlockPlacer.INSTANCE)
|
||||||
.addState(RocksMain.NetherGeyser.getDefaultState(),1),
|
|
||||||
SimpleBlockPlacer.INSTANCE))
|
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.whitelist(ImmutableSet.of(Blocks.NETHERRACK)).cannotProject().build()).decorate(ConfiguredFeatures.Decorators.FIRE).repeat(16);
|
.whitelist(ImmutableSet.of(Blocks.NETHERRACK)).cannotProject().build())).decorate(RocksDecorators.ROCK).repeat(16);
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
Registry<ConfiguredFeature<?, ?>> registry = BuiltinRegistries.CONFIGURED_FEATURE;
|
Registry<ConfiguredFeature<?, ?>> registry = BuiltinRegistries.CONFIGURED_FEATURE;
|
||||||
|
|||||||
99
src/main/java/eu/midnightdust/motschen/rocks/world/configured_feature/RockFeatures.java
Normal file → Executable file
99
src/main/java/eu/midnightdust/motschen/rocks/world/configured_feature/RockFeatures.java
Normal file → Executable file
@@ -3,8 +3,11 @@ package eu.midnightdust.motschen.rocks.world.configured_feature;
|
|||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import eu.midnightdust.motschen.rocks.RocksMain;
|
import eu.midnightdust.motschen.rocks.RocksMain;
|
||||||
import eu.midnightdust.motschen.rocks.blockstates.RockVariation;
|
import eu.midnightdust.motschen.rocks.blockstates.RockVariation;
|
||||||
|
import eu.midnightdust.motschen.rocks.world.RocksDecorators;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
import net.minecraft.util.collection.DataPool;
|
||||||
import net.minecraft.util.registry.BuiltinRegistries;
|
import net.minecraft.util.registry.BuiltinRegistries;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.world.gen.feature.*;
|
import net.minecraft.world.gen.feature.*;
|
||||||
@@ -14,84 +17,84 @@ import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
|||||||
public class RockFeatures {
|
public class RockFeatures {
|
||||||
public static ConfiguredFeature<?, ?> ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
.add(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).blacklist(ImmutableSet.of(Blocks.ICE.getDefaultState(),Blocks.SAND.getDefaultState(),Blocks.RED_SAND.getDefaultState()))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).blacklist(ImmutableSet.of(Blocks.ICE.getDefaultState(),Blocks.SAND.getDefaultState(),Blocks.RED_SAND.getDefaultState()))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> GRANITE_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> GRANITE_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
.add(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.GRANITE))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.GRANITE))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> DIORITE_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> DIORITE_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
.add(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.DIORITE))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.DIORITE))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> ANDESITE_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> ANDESITE_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
.add(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.ANDESITE))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.ANDESITE))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> SAND_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> SAND_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
.add(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.SAND, Blocks.SANDSTONE))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.SAND, Blocks.SANDSTONE))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> RED_SAND_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> RED_SAND_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
.add(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.RED_SAND, Blocks.RED_SANDSTONE))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.RED_SAND, Blocks.RED_SANDSTONE))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> END_STONE_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> END_STONE_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
.add(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> GRAVEL_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> GRAVEL_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.GRAVEL))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.GRAVEL))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
Registry<ConfiguredFeature<?, ?>> registry = BuiltinRegistries.CONFIGURED_FEATURE;
|
Registry<ConfiguredFeature<?, ?>> registry = BuiltinRegistries.CONFIGURED_FEATURE;
|
||||||
|
|||||||
65
src/main/java/eu/midnightdust/motschen/rocks/world/configured_feature/StickFeatures.java
Normal file → Executable file
65
src/main/java/eu/midnightdust/motschen/rocks/world/configured_feature/StickFeatures.java
Normal file → Executable file
@@ -3,8 +3,11 @@ package eu.midnightdust.motschen.rocks.world.configured_feature;
|
|||||||
import com.google.common.collect.ImmutableSet;
|
import com.google.common.collect.ImmutableSet;
|
||||||
import eu.midnightdust.motschen.rocks.RocksMain;
|
import eu.midnightdust.motschen.rocks.RocksMain;
|
||||||
import eu.midnightdust.motschen.rocks.blockstates.StickVariation;
|
import eu.midnightdust.motschen.rocks.blockstates.StickVariation;
|
||||||
|
import eu.midnightdust.motschen.rocks.world.RocksDecorators;
|
||||||
|
import net.minecraft.block.BlockState;
|
||||||
import net.minecraft.block.Blocks;
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
import net.minecraft.util.collection.DataPool;
|
||||||
import net.minecraft.util.registry.BuiltinRegistries;
|
import net.minecraft.util.registry.BuiltinRegistries;
|
||||||
import net.minecraft.util.registry.Registry;
|
import net.minecraft.util.registry.Registry;
|
||||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||||
@@ -17,59 +20,59 @@ import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
|||||||
public class StickFeatures {
|
public class StickFeatures {
|
||||||
public static ConfiguredFeature<?, ?> OAK_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> OAK_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
.add(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||||
.addState(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
.add(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
.add(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.GRASS_BLOCK))
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0).whitelist(ImmutableSet.of(Blocks.GRASS_BLOCK))
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> SPRUCE_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> SPRUCE_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
.add(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||||
.addState(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
.add(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1)
|
.add(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1)
|
||||||
.addState(RocksMain.Pinecone.getDefaultState(), 1),
|
.add(RocksMain.Pinecone.getDefaultState(), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> BIRCH_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> BIRCH_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
.add(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||||
.addState(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
.add(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
.add(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> ACACIA_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> ACACIA_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
.add(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||||
.addState(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
.add(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
.add(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> JUNGLE_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> JUNGLE_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
.add(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||||
.addState(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
.add(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
.add(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
public static ConfiguredFeature<?, ?> DARK_OAK_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
public static ConfiguredFeature<?, ?> DARK_OAK_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||||
(new RandomPatchFeatureConfig.Builder(
|
(new RandomPatchFeatureConfig.Builder(
|
||||||
new WeightedBlockStateProvider()
|
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||||
.addState(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
.add(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||||
.addState(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
.add(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||||
.addState(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
.add(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||||
SimpleBlockPlacer.INSTANCE))
|
SimpleBlockPlacer.INSTANCE))
|
||||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
.build()).decorate(RocksDecorators.ROCK);
|
||||||
|
|
||||||
public static void init() {
|
public static void init() {
|
||||||
Registry<ConfiguredFeature<?, ?>> registry = BuiltinRegistries.CONFIGURED_FEATURE;
|
Registry<ConfiguredFeature<?, ?>> registry = BuiltinRegistries.CONFIGURED_FEATURE;
|
||||||
|
|||||||
7
src/main/java/eu/midnightdust/motschen/rocks/world/feature/SnowFeature.java
Normal file → Executable file
7
src/main/java/eu/midnightdust/motschen/rocks/world/feature/SnowFeature.java
Normal file → Executable file
@@ -10,6 +10,7 @@ import net.minecraft.world.StructureWorldAccess;
|
|||||||
import net.minecraft.world.gen.ProbabilityConfig;
|
import net.minecraft.world.gen.ProbabilityConfig;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
||||||
import net.minecraft.world.gen.feature.Feature;
|
import net.minecraft.world.gen.feature.Feature;
|
||||||
|
import net.minecraft.world.gen.feature.util.FeatureContext;
|
||||||
import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
@@ -22,7 +23,11 @@ public class SnowFeature extends Feature<ProbabilityConfig> {
|
|||||||
weightedBlockStateProvider1 = weightedBlockStateProvider;
|
weightedBlockStateProvider1 = weightedBlockStateProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean generate(StructureWorldAccess structureWorldAccess, ChunkGenerator chunkGenerator, Random random, BlockPos blockPos, ProbabilityConfig probabilityConfig) {
|
@Override
|
||||||
|
public boolean generate(FeatureContext<ProbabilityConfig> context) {
|
||||||
|
Random random = context.getRandom();
|
||||||
|
StructureWorldAccess structureWorldAccess = context.getWorld();
|
||||||
|
BlockPos blockPos = context.getOrigin();
|
||||||
boolean bl = false;
|
boolean bl = false;
|
||||||
int i = random.nextInt(8) - random.nextInt(8);
|
int i = random.nextInt(8) - random.nextInt(8);
|
||||||
int j = random.nextInt(8) - random.nextInt(8);
|
int j = random.nextInt(8) - random.nextInt(8);
|
||||||
|
|||||||
7
src/main/java/eu/midnightdust/motschen/rocks/world/feature/UnderwaterFeature.java
Normal file → Executable file
7
src/main/java/eu/midnightdust/motschen/rocks/world/feature/UnderwaterFeature.java
Normal file → Executable file
@@ -9,6 +9,7 @@ import net.minecraft.world.StructureWorldAccess;
|
|||||||
import net.minecraft.world.gen.ProbabilityConfig;
|
import net.minecraft.world.gen.ProbabilityConfig;
|
||||||
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
import net.minecraft.world.gen.chunk.ChunkGenerator;
|
||||||
import net.minecraft.world.gen.feature.Feature;
|
import net.minecraft.world.gen.feature.Feature;
|
||||||
|
import net.minecraft.world.gen.feature.util.FeatureContext;
|
||||||
import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
||||||
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
@@ -20,7 +21,11 @@ public class UnderwaterFeature extends Feature<ProbabilityConfig> {
|
|||||||
weightedBlockStateProvider1 = weightedBlockStateProvider;
|
weightedBlockStateProvider1 = weightedBlockStateProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean generate(StructureWorldAccess structureWorldAccess, ChunkGenerator chunkGenerator, Random random, BlockPos blockPos, ProbabilityConfig probabilityConfig) {
|
@Override
|
||||||
|
public boolean generate(FeatureContext<ProbabilityConfig> context) {
|
||||||
|
Random random = context.getRandom();
|
||||||
|
StructureWorldAccess structureWorldAccess = context.getWorld();
|
||||||
|
BlockPos blockPos = context.getOrigin();
|
||||||
boolean bl = false;
|
boolean bl = false;
|
||||||
int i = random.nextInt(8) - random.nextInt(8);
|
int i = random.nextInt(8) - random.nextInt(8);
|
||||||
int j = random.nextInt(8) - random.nextInt(8);
|
int j = random.nextInt(8) - random.nextInt(8);
|
||||||
|
|||||||
0
src/main/resources/assets/rocks/blockstates/acacia_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/acacia_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/andesite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/andesite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/birch_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/birch_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/dark_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/dark_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/diorite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/diorite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/end_stone_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/end_stone_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/geyser.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/geyser.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/granite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/granite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/gravel_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/gravel_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/jungle_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/jungle_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/nether_geyser.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/nether_geyser.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/netherrack_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/netherrack_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/pinecone.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/pinecone.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/red_sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/red_sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/seashell.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/seashell.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/soul_soil_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/soul_soil_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/spruce_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/spruce_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/starfish.json
Normal file → Executable file
0
src/main/resources/assets/rocks/blockstates/starfish.json
Normal file → Executable file
0
src/main/resources/assets/rocks/icon.png
Normal file → Executable file
0
src/main/resources/assets/rocks/icon.png
Normal file → Executable file
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
0
src/main/resources/assets/rocks/lang/de_de.json
Normal file → Executable file
0
src/main/resources/assets/rocks/lang/de_de.json
Normal file → Executable file
0
src/main/resources/assets/rocks/lang/en_us.json
Normal file → Executable file
0
src/main/resources/assets/rocks/lang/en_us.json
Normal file → Executable file
0
src/main/resources/assets/rocks/lang/pl_pl.json
Normal file → Executable file
0
src/main/resources/assets/rocks/lang/pl_pl.json
Normal file → Executable file
0
src/main/resources/assets/rocks/lang/ru_ru.json
Normal file → Executable file
0
src/main/resources/assets/rocks/lang/ru_ru.json
Normal file → Executable file
0
src/main/resources/assets/rocks/lang/zh_cn.json
Normal file → Executable file
0
src/main/resources/assets/rocks/lang/zh_cn.json
Normal file → Executable file
0
src/main/resources/assets/rocks/materialmaps/block/geyser.json
Normal file → Executable file
0
src/main/resources/assets/rocks/materialmaps/block/geyser.json
Normal file → Executable file
0
src/main/resources/assets/rocks/materialmaps/block/nether_geyser.json
Normal file → Executable file
0
src/main/resources/assets/rocks/materialmaps/block/nether_geyser.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/geyser_off.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/geyser_off.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/geyser_on.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/geyser_on.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_acacia_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_acacia_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_andesite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_andesite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_birch_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_birch_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_dark_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_dark_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_diorite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_diorite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_end_stone_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_end_stone_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_granite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_granite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_gravel_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_gravel_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_jungle_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_jungle_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_netherrack_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_netherrack_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_red_sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_red_sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_soul_soil_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_soul_soil_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_spruce_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/large_spruce_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_acacia_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_acacia_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_andesite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_andesite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_birch_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_birch_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_dark_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_dark_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_diorite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_diorite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_end_stone_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_end_stone_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_granite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_granite_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_gravel_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_gravel_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_jungle_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_jungle_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_netherrack_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_netherrack_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_oak_stick.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_red_sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_red_sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_sand_rock.json
Normal file → Executable file
0
src/main/resources/assets/rocks/models/block/medium_sand_rock.json
Normal file → Executable file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user