mirror of
https://github.com/TeamMidnightDust/ThisRocks.git
synced 2025-12-13 01:35:09 +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
|
||||
|
||||
build/
|
||||
.gradle/
|
||||
out/
|
||||
classes/
|
||||
@@ -21,4 +21,4 @@ bin/
|
||||
|
||||
# fabric
|
||||
|
||||
run/
|
||||
run/
|
||||
|
||||
61
build.gradle
Normal file → Executable file
61
build.gradle
Normal file → Executable file
@@ -1,66 +1,67 @@
|
||||
plugins {
|
||||
id 'fabric-loom' version '0.4-SNAPSHOT'
|
||||
id 'fabric-loom' version '0.8-SNAPSHOT'
|
||||
id 'maven-publish'
|
||||
}
|
||||
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
sourceCompatibility = JavaVersion.VERSION_16
|
||||
targetCompatibility = JavaVersion.VERSION_16
|
||||
|
||||
archivesBaseName = project.archives_base_name
|
||||
version = project.mod_version
|
||||
group = project.maven_group
|
||||
|
||||
minecraft {
|
||||
accessWidener = file("src/main/resources/thisrocks.accesswidener")
|
||||
}
|
||||
|
||||
repositories {
|
||||
maven { url "https://maven.terraformersmc.com/releases" }
|
||||
maven { url "https://jitpack.io" }
|
||||
maven { url "https://maven.blamejared.com" }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
//to change the versions see the gradle.properties file
|
||||
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
||||
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.
|
||||
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}"
|
||||
include "eu.midnightdust:midnight-hats:${midnighthats_version}"
|
||||
modImplementation "com.github.TeamMidnightDust:MidnightLib:${midnightlib_version}"
|
||||
include "com.github.TeamMidnightDust:MidnightLib:${midnightlib_version}"
|
||||
}
|
||||
|
||||
processResources {
|
||||
inputs.property "version", project.version
|
||||
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
include "fabric.mod.json"
|
||||
filesMatching("fabric.mod.json") {
|
||||
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
|
||||
// this fixes some edge cases with special characters not displaying correctly
|
||||
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
|
||||
tasks.withType(JavaCompile) {
|
||||
options.encoding = "UTF-8"
|
||||
tasks.withType(JavaCompile).configureEach {
|
||||
// ensure that the encoding is set to UTF-8, no matter what the system default is
|
||||
// this fixes some edge cases with special characters not displaying correctly
|
||||
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
|
||||
// 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
|
||||
// if it is present.
|
||||
// If you remove this task, sources will not be generated.
|
||||
task sourcesJar(type: Jar, dependsOn: classes) {
|
||||
classifier = "sources"
|
||||
from sourceSets.main.allSource
|
||||
java {
|
||||
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
|
||||
// if it is present.
|
||||
// If you remove this line, sources will not be generated.
|
||||
withSourcesJar()
|
||||
}
|
||||
|
||||
jar {
|
||||
from "LICENSE"
|
||||
from("LICENSE") {
|
||||
rename { "${it}_${project.archivesBaseName}"}
|
||||
}
|
||||
}
|
||||
|
||||
// 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 {
|
||||
// uncomment to publish to the local maven
|
||||
// mavenLocal()
|
||||
// Add repositories to publish to here.
|
||||
// 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
|
||||
# check these on https://fabricmc.net/use
|
||||
minecraft_version=1.16.4
|
||||
yarn_mappings=1.16.4+build.7
|
||||
loader_version=0.10.8
|
||||
minecraft_version=1.17-pre1
|
||||
yarn_mappings=1.17-pre1+build.9
|
||||
loader_version=0.11.3
|
||||
|
||||
# Mod Properties
|
||||
mod_version = 1.3.1
|
||||
mod_version = 1.4.0
|
||||
maven_group = eu.midnightdust.motschen
|
||||
archives_base_name = rocks
|
||||
|
||||
# Dependencies
|
||||
# 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
|
||||
midnighthats_version=2.0.1
|
||||
fabric_version=0.34.8+1.17
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; 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\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
@@ -154,19 +156,19 @@ if $cygwin ; then
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
i=`expr $i + 1`
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
0) set -- ;;
|
||||
1) set -- "$args0" ;;
|
||||
2) set -- "$args0" "$args1" ;;
|
||||
3) set -- "$args0" "$args1" "$args2" ;;
|
||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
@@ -175,14 +177,9 @@ save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
APP_ARGS=$(save "$@")
|
||||
APP_ARGS=`save "$@"`
|
||||
|
||||
# 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"
|
||||
|
||||
# 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" "$@"
|
||||
|
||||
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_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
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_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
@@ -61,28 +64,14 @@ echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
: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
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
|
||||
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();
|
||||
MiscFeatures.init();
|
||||
NetherFeatures.init();
|
||||
|
||||
FeatureInjector.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;
|
||||
|
||||
import eu.midnightdust.motschen.rocks.block.blockentity.BlockEntityInit;
|
||||
import eu.midnightdust.motschen.rocks.block.blockentity.NetherGeyserBlockEntity;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.block.*;
|
||||
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.sound.BlockSoundGroup;
|
||||
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.shape.VoxelShape;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
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;
|
||||
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));
|
||||
}
|
||||
@Override
|
||||
public BlockEntity createBlockEntity(BlockView view) {
|
||||
return new NetherGeyserBlockEntity();
|
||||
public BlockRenderType getRenderType(BlockState state) {
|
||||
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
|
||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||
return super.getPlacementState(itemPlacementContext)
|
||||
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||
.with(ACTIVE, false);
|
||||
}
|
||||
|
||||
@@ -43,9 +57,7 @@ public class NetherGeyser extends Block implements BlockEntityProvider {
|
||||
return SHAPE;
|
||||
}
|
||||
static {
|
||||
VoxelShape shape = createCuboidShape(5, 0, 5, 11, 1, 11);
|
||||
|
||||
SHAPE = shape;
|
||||
SHAPE = createCuboidShape(5, 0, 5, 11, 1, 11);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
import eu.midnightdust.motschen.rocks.block.blockentity.BlockEntityInit;
|
||||
import eu.midnightdust.motschen.rocks.block.blockentity.OverworldGeyserBlockEntity;
|
||||
import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
|
||||
import net.minecraft.block.*;
|
||||
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.sound.BlockSoundGroup;
|
||||
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.VoxelShapes;
|
||||
import net.minecraft.world.BlockView;
|
||||
import net.minecraft.world.World;
|
||||
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 SNOWY_SHAPE;
|
||||
@@ -28,13 +35,20 @@ public class OverworldGeyser extends Block implements BlockEntityProvider {
|
||||
this.setDefaultState(this.stateManager.getDefaultState().with(ACTIVE, false).with(SNOWY, false));
|
||||
}
|
||||
@Override
|
||||
public BlockEntity createBlockEntity(BlockView view) {
|
||||
return new OverworldGeyserBlockEntity();
|
||||
public BlockRenderType getRenderType(BlockState state) {
|
||||
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
|
||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||
return super.getPlacementState(itemPlacementContext)
|
||||
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||
.with(ACTIVE, false).with(SNOWY, false);
|
||||
}
|
||||
|
||||
@@ -44,7 +58,7 @@ public class OverworldGeyser extends Block implements BlockEntityProvider {
|
||||
}
|
||||
@Override
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
static {
|
||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 3, 16);
|
||||
|
||||
SHAPE = shape;
|
||||
SHAPE = createCuboidShape(0, 0, 0, 16, 3, 16);
|
||||
}
|
||||
|
||||
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.WorldView;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class Rock extends Block {
|
||||
|
||||
private static final VoxelShape SHAPE;
|
||||
@@ -32,7 +34,7 @@ public class Rock extends Block {
|
||||
|
||||
@Override
|
||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||
return super.getPlacementState(itemPlacementContext)
|
||||
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||
.with(ROCK_VARIATION, RockVariation.TINY);
|
||||
}
|
||||
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;
|
||||
}
|
||||
static {
|
||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 3, 16);
|
||||
|
||||
SHAPE = shape;
|
||||
SHAPE = createCuboidShape(0, 0, 0, 16, 3, 16);
|
||||
}
|
||||
|
||||
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.WorldView;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class Seashell extends Block implements Waterloggable {
|
||||
|
||||
private static final VoxelShape SHAPE;
|
||||
@@ -43,7 +45,7 @@ public class Seashell extends Block implements Waterloggable {
|
||||
@Override
|
||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -72,9 +74,7 @@ public class Seashell extends Block implements Waterloggable {
|
||||
return SHAPE;
|
||||
}
|
||||
static {
|
||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 3, 16);
|
||||
|
||||
SHAPE = shape;
|
||||
SHAPE = createCuboidShape(0, 0, 0, 16, 3, 16);
|
||||
}
|
||||
|
||||
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.Fluids;
|
||||
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.state.StateManager;
|
||||
import net.minecraft.state.property.BooleanProperty;
|
||||
@@ -24,6 +28,8 @@ import net.minecraft.world.World;
|
||||
import net.minecraft.world.WorldAccess;
|
||||
import net.minecraft.world.WorldView;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class Starfish extends Block implements Waterloggable {
|
||||
|
||||
private static final VoxelShape SHAPE;
|
||||
@@ -42,9 +48,22 @@ public class Starfish extends Block implements Waterloggable {
|
||||
|
||||
@Override
|
||||
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());
|
||||
return super.getPlacementState(itemPlacementContext)
|
||||
.with(STARFISH_VARIATION, StarfishVariation.RED).with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER);
|
||||
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||
.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) {
|
||||
@@ -72,9 +91,7 @@ public class Starfish extends Block implements Waterloggable {
|
||||
return SHAPE;
|
||||
}
|
||||
static {
|
||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 1, 16);
|
||||
|
||||
SHAPE = shape;
|
||||
SHAPE = createCuboidShape(0, 0, 0, 16, 1, 16);
|
||||
}
|
||||
|
||||
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.WorldView;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
public class Stick extends Block {
|
||||
|
||||
private static final VoxelShape SHAPE;
|
||||
@@ -32,7 +34,7 @@ public class Stick extends Block {
|
||||
|
||||
@Override
|
||||
public BlockState getPlacementState(ItemPlacementContext itemPlacementContext) {
|
||||
return super.getPlacementState(itemPlacementContext)
|
||||
return Objects.requireNonNull(super.getPlacementState(itemPlacementContext))
|
||||
.with(STICK_VARIATION, StickVariation.SMALL);
|
||||
}
|
||||
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;
|
||||
}
|
||||
static {
|
||||
VoxelShape shape = createCuboidShape(0, 0, 0, 16, 1, 16);
|
||||
|
||||
SHAPE = shape;
|
||||
SHAPE = createCuboidShape(0, 0, 0, 16, 1, 16);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
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.util.Identifier;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
@@ -10,7 +11,7 @@ public class BlockEntityInit {
|
||||
public static BlockEntityType<NetherGeyserBlockEntity> NETHER_GEYSER_BE;
|
||||
|
||||
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));
|
||||
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));
|
||||
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"), 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.player.PlayerEntity;
|
||||
import net.minecraft.particle.ParticleTypes;
|
||||
import net.minecraft.util.Tickable;
|
||||
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;
|
||||
|
||||
public NetherGeyserBlockEntity() {
|
||||
super(BlockEntityInit.NETHER_GEYSER_BE);
|
||||
public NetherGeyserBlockEntity(BlockPos pos, BlockState state) {
|
||||
super(BlockEntityInit.NETHER_GEYSER_BE, pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public static void tick(World world, BlockPos pos, BlockState state, NetherGeyserBlockEntity blockEntity) {
|
||||
assert world != null;
|
||||
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 player2 = this.world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 1, true);
|
||||
BlockState state = this.getCachedState();
|
||||
PlayerEntity player = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true);
|
||||
PlayerEntity player2 = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 1, true);
|
||||
|
||||
|
||||
if (player != null) {
|
||||
world.setBlockState(pos, state.with(NetherGeyser.ACTIVE, true));
|
||||
@@ -31,17 +31,17 @@ public class NetherGeyserBlockEntity extends BlockEntity implements Tickable {
|
||||
if (player2 != null) {
|
||||
player2.damage(DamageSource.ON_FIRE, 4);
|
||||
}
|
||||
countdown = 1000;
|
||||
blockEntity.countdown = 1000;
|
||||
} else {
|
||||
if (countdown > 0) {
|
||||
countdown = countdown - 1;
|
||||
if (blockEntity.countdown > 0) {
|
||||
blockEntity.countdown = blockEntity.countdown - 1;
|
||||
}
|
||||
if (countdown == 0) {
|
||||
if (blockEntity.countdown == 0) {
|
||||
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() + 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);
|
||||
|
||||
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.player.PlayerEntity;
|
||||
import net.minecraft.particle.ParticleTypes;
|
||||
import net.minecraft.util.Tickable;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class OverworldGeyserBlockEntity extends BlockEntity implements Tickable {
|
||||
private int countdown = 0;
|
||||
public class OverworldGeyserBlockEntity extends BlockEntity {
|
||||
public int countdown = 0;
|
||||
|
||||
public OverworldGeyserBlockEntity() {
|
||||
super(BlockEntityInit.OVERWORLD_GEYSER_BE);
|
||||
public OverworldGeyserBlockEntity(BlockPos pos, BlockState state) {
|
||||
super(BlockEntityInit.OVERWORLD_GEYSER_BE, pos, state);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tick() {
|
||||
public static void tick(World world, BlockPos pos, BlockState state, OverworldGeyserBlockEntity blockEntity) {
|
||||
assert world != null;
|
||||
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 player2 = this.world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 8, true);
|
||||
PlayerEntity player3 = null;
|
||||
PlayerEntity player = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 3, true);
|
||||
PlayerEntity player2 = world.getClosestPlayer(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 8, true);
|
||||
|
||||
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) {
|
||||
world.setBlockState(pos, state.with(OverworldGeyser.ACTIVE, true));
|
||||
|
||||
if (player3 != null) {
|
||||
player3.addStatusEffect(new StatusEffectInstance(StatusEffects.LEVITATION, 2, 12, true, false, false));
|
||||
}
|
||||
countdown = 1000;
|
||||
blockEntity.countdown = 1000;
|
||||
} else {
|
||||
if (countdown > 0) {
|
||||
countdown = countdown - 1;
|
||||
if (blockEntity.countdown > 0) {
|
||||
blockEntity.countdown = blockEntity.countdown - 1;
|
||||
}
|
||||
if (countdown == 0) {
|
||||
if (blockEntity.countdown == 0) {
|
||||
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.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);
|
||||
|
||||
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.world.feature.SnowFeature;
|
||||
import eu.midnightdust.motschen.rocks.world.feature.UnderwaterFeature;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.state.property.Properties;
|
||||
import net.minecraft.util.collection.DataPool;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.gen.ProbabilityConfig;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
@@ -22,18 +24,18 @@ public class FeatureRegistry<FC extends FeatureConfig> {
|
||||
return Registry.register(Registry.FEATURE, name, feature);
|
||||
}
|
||||
|
||||
private static final WeightedBlockStateProvider StarfishStates = new WeightedBlockStateProvider()
|
||||
.addState(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)
|
||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE).with(Properties.WATERLOGGED, true), 2);
|
||||
private static final WeightedBlockStateProvider StarfishStates = new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION, StarfishVariation.RED).with(Properties.WATERLOGGED, true), 6)
|
||||
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK).with(Properties.WATERLOGGED, true), 7)
|
||||
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE).with(Properties.WATERLOGGED, true), 2).build());
|
||||
|
||||
private static final WeightedBlockStateProvider SeashellStates = new WeightedBlockStateProvider()
|
||||
.addState(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)
|
||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE).with(Properties.WATERLOGGED, true), 6);
|
||||
private static final WeightedBlockStateProvider SeashellStates = new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION, SeashellVariation.YELLOW).with(Properties.WATERLOGGED, true), 7)
|
||||
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK).with(Properties.WATERLOGGED, true), 2)
|
||||
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE).with(Properties.WATERLOGGED, true), 6).build());
|
||||
|
||||
private static final WeightedBlockStateProvider GeyserStates = new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.Geyser.getDefaultState().with(Properties.SNOWY, true), 1);
|
||||
private static final WeightedBlockStateProvider GeyserStates = new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.Geyser.getDefaultState().with(Properties.SNOWY, true), 1).build());
|
||||
|
||||
static {
|
||||
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.StarfishVariation;
|
||||
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.util.Identifier;
|
||||
import net.minecraft.util.collection.DataPool;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.gen.ProbabilityConfig;
|
||||
@@ -17,26 +20,26 @@ import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
||||
public class MiscFeatures {
|
||||
public static ConfiguredFeature<?, ?> SEASHELL_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.YELLOW), 7)
|
||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK), 2)
|
||||
.addState(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE), 6),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.YELLOW), 7)
|
||||
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.PINK), 2)
|
||||
.add(RocksMain.Seashell.getDefaultState().with(RocksMain.SEASHELL_VARIATION,SeashellVariation.WHITE), 6).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.RED), 2)
|
||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK), 6)
|
||||
.addState(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE), 7),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.RED), 2)
|
||||
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.PINK), 6)
|
||||
.add(RocksMain.Starfish.getDefaultState().with(RocksMain.STARFISH_VARIATION,StarfishVariation.ORANGE), 7).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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_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() {
|
||||
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 eu.midnightdust.motschen.rocks.RocksMain;
|
||||
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.util.Identifier;
|
||||
import net.minecraft.util.collection.DataPool;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
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.RandomPatchFeatureConfig;
|
||||
import net.minecraft.world.gen.placer.SimpleBlockPlacer;
|
||||
import net.minecraft.world.gen.stateprovider.SimpleBlockStateProvider;
|
||||
import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
||||
|
||||
public class NetherFeatures {
|
||||
|
||||
public static ConfiguredFeature<?, ?> NETHERRACK_ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
||||
.addState(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
||||
.add(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.NetherrackRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
||||
.addState(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
||||
.add(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.SoulSoilRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION, RockVariation.TINY), 10)
|
||||
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.NetherGeyser.getDefaultState(),1),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
new SimpleBlockStateProvider(RocksMain.NetherGeyser.getDefaultState()),SimpleBlockPlacer.INSTANCE)
|
||||
.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() {
|
||||
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 eu.midnightdust.motschen.rocks.RocksMain;
|
||||
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.util.Identifier;
|
||||
import net.minecraft.util.collection.DataPool;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.gen.feature.*;
|
||||
@@ -14,84 +17,84 @@ import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
||||
public class RockFeatures {
|
||||
public static ConfiguredFeature<?, ?> ROCK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.addState(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.add(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.Rock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.addState(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.add(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.GraniteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.addState(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.add(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.DioriteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.addState(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.add(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.AndesiteRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.addState(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.add(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.SandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.addState(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.add(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.RedSandRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.addState(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.add(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.EndstoneRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.TINY), 10)
|
||||
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.SMALL), 7)
|
||||
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.MEDIUM), 5)
|
||||
.add(RocksMain.GravelRock.getDefaultState().with(RocksMain.ROCK_VARIATION,RockVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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() {
|
||||
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 eu.midnightdust.motschen.rocks.RocksMain;
|
||||
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.util.Identifier;
|
||||
import net.minecraft.util.collection.DataPool;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||
@@ -17,59 +20,59 @@ import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
||||
public class StickFeatures {
|
||||
public static ConfiguredFeature<?, ?> OAK_STICK_FEATURE = Feature.RANDOM_PATCH.configure(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.addState(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.add(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.add(RocksMain.OakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.addState(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1)
|
||||
.addState(RocksMain.Pinecone.getDefaultState(), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.add(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.add(RocksMain.SpruceStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1)
|
||||
.add(RocksMain.Pinecone.getDefaultState(), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.addState(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.add(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.add(RocksMain.BirchStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.addState(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.add(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.add(RocksMain.AcaciaStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.addState(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.add(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.add(RocksMain.JungleStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.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(
|
||||
(new RandomPatchFeatureConfig.Builder(
|
||||
new WeightedBlockStateProvider()
|
||||
.addState(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.addState(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.addState(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1),
|
||||
new WeightedBlockStateProvider(DataPool.<BlockState>builder()
|
||||
.add(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.SMALL), 7)
|
||||
.add(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.MEDIUM), 5)
|
||||
.add(RocksMain.DarkOakStick.getDefaultState().with(RocksMain.STICK_VARIATION,StickVariation.LARGE), 1).build()),
|
||||
SimpleBlockPlacer.INSTANCE))
|
||||
.tries(1).spreadX(0).spreadY(0).spreadZ(0)
|
||||
.build()).decorate(ConfiguredFeatures.Decorators.FIRE);
|
||||
.build()).decorate(RocksDecorators.ROCK);
|
||||
|
||||
public static void init() {
|
||||
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.chunk.ChunkGenerator;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.util.FeatureContext;
|
||||
import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
||||
|
||||
import java.util.Random;
|
||||
@@ -22,7 +23,11 @@ public class SnowFeature extends Feature<ProbabilityConfig> {
|
||||
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;
|
||||
int i = 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.chunk.ChunkGenerator;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.util.FeatureContext;
|
||||
import net.minecraft.world.gen.stateprovider.WeightedBlockStateProvider;
|
||||
|
||||
import java.util.Random;
|
||||
@@ -20,7 +21,11 @@ public class UnderwaterFeature extends Feature<ProbabilityConfig> {
|
||||
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;
|
||||
int i = 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