mirror of
https://github.com/TeamMidnightDust/ThisRocks.git
synced 2025-12-17 11:25: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:
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);
|
||||
|
||||
Reference in New Issue
Block a user